บทที่ 5 ระบบหน่วยความจำ
เขียนและเรียบเรียงโดย อ.นัครินทร์ คฤหาสสุวรรณ์
5.1 ภาพรวมของหน่วยความจำ
5.1 ภาพรวมของหน่วยความจำ
ลักษณะที่สำคัญมากของอุปกรณ์ควบคุมที่สามารถโปรแกรมได้
คือการที่ผู้ใช้สามารถที่จะเปลี่ยนโปรแกรมควบคุมได้รวดเร็วและได้ง่าย
ซึ่งสถาปัตยกรรมของ PLC
ก็มีลักษณะเช่นนี้ ระบบหน่วยความจำในพื้นที่ของ CPU ที่อยู่ใน PLC เป็นที่รวมของลำดับคำสั่งต่างๆหรือที่เรียกว่าโปรแกรม
ซึ่งถูกจัดเก็บและดำเนินการด้วยโปรเซสเซอร์
เพื่อจัดเตรียมให้สำหรับการควบคุมอุปกรณ์ต่างๆ
ในส่วนของหน่วยความจำประกอบด้วยโปรแกรมควบคุมซึ่งสามารถที่จะเปลี่ยนแปลงได้
หรือ ทำการโปรแกรมใหม่ได้ เมื่อมีการเปลี่ยนแปลงสายงานผลิตหรือมีความจำเป็นในที่ต้องเริ่มโปรแกรมใหม่
5.1.1 ส่วนของหน่วยความจำ
หน่วยความจำทั้งหมดใน
PLC จะประกอบด้วยหน่วยความจำ 2 ประเภท
1.หน่วยความจำสำหรับดำเนินงาน (Executive
Memory)
2.หน่วยความจำประยุกต์ใช้งาน (Application
Memory)
1.หน่วยความจำสำหรับดำเนินงาน (Executive
Memory) เป็นหน่วยความจำที่เก็บโปรแกรมถาวรซึ่งถูกพิจารณาว่าเป็นส่วนหนึ่งของ
PLC ซึ่งเป็นโปรแกรมดูแลกิจกรรมต่างๆของระบบ
ทำหน้าที่จัดการเกี่ยวกับโปรแกรมการควบคุมและระบบการสื่อสารกับพอร์ตการสื่อสารต่างๆ
และส่วนนี้จะเก็บชุดคำสั่งต่างๆของ PLC
เช่น คำสั่งเกี่ยวกับรีเลย์ คำสั่งการโอนย้าย
และคำสั่งทางคณิตศาสตร์
โดยปกติพื้นที่ส่วนนี้จะไม่ให้ผู้ใช้เข้าไปทำการเปลี่ยนแปลง
2.หน่วยความจำประยุกต์ใช้งาน (Application
Memory) เป็นส่วนที่เตรียมไว้ให้ผู้ใช้เขียนคำสั่งควบคุม ในรูปแบบของโปรแกรมประยุกต์
5.1.2 ประเภทของหน่วยความจำ
เนื่องจากโปรแกรมแต่ละประเภทมีความต้องการพื้นที่จัดเก็บไม่เหมือนกัน
อาทิเช่น โปรแกรมสำหรับระบบ
จะต้องการพื้นที่จัดเก็บที่เป็นแบบถาวรโดยที่ไม่สามารถถูกลบหรือสูญเสียไปโดยกระแสไฟฟ้าหรือผู้ใช้
เป็นต้น
หน่วยความจำสามารถจำแนกได้เป็น 2
หมวดหมู่ใหญ่ๆตามลักษณะการจัดเก็บโปรแกรม คือ
1.หน่วยความจำแบบชั่วคราว (Volatile
Memory)
โปรแกรมที่อยู่ในหน่วยความจำนี้ จะสูญเสียหากขาดกระแสไฟฟ้า
เป็นหน่วยความจำที่ง่ายต่อการเปลี่ยนแปลง และเหมาะสมกับการใช้งานประยุกต์ต่างๆที่มีแบตเตอรี่สำรอง
หรือ ไฟฟ้าสำรองรองรับตลอดเวลา
2.หน่วยความจำแบบไม่ชั่วคราว (Nonvolatile
Memory)
โปรแกรมที่อยู่ในหน่วยความจำนี้ จะไม่สูญเสียหากขาดกระแสไฟฟ้า จึงไม่จำเป็นต้องมีแบตเตอรี่สำรองหน่วยความจำประเภทนี้โดยปกติจะแก้ไขโปรแกรมไม่ได้
ในปัจจุบันนี้ระบบ PLC จะประกอบด้วยหน่วยความจำแบบไม่ชั่วคราว
หน่วยความจำแบบชั่วคราวและมีแบตเตอรี่สำรอง
นอกจากนี้หน่วยความจำสามารถที่จะจำแนกย่อยได้อีก 6 ประเภท คือ
1.Read Only
Memory (ROM)
ถูกออกแบบมาให้เก็บโปรแกรมอย่างถาวร
ไม่สามารถที่เปลี่ยนแปลงตัวโปรแกรมที่อยู่ใน ROM ที่เขียนครั้งแรกได้ภายใต้สภาวะปกติ
ROM มีความสามารถในการต้านทานการสูญเสียข้อมูลจากสัญญาณรบกวนทางไฟฟ้าหรือขาดกระแสไฟฟ้า
PLC จะไม่ค่อยใช้หน่วยความจำประเภทนี้เป็นหน่วยความจำสำหรับประยุกต์การใช้งาน
แต่อย่างไรก็ตามถ้างานประยุกต์มีข้อมูลหรือโปรแกรมที่ตายตัว ROM จะมีความได้เปรียบทางด้านอัตราเร็ว ราคา และความน่าเชื่อถือ ซึ่งปัจจุบันมีการนำ
ROM มากับ PLC ขนาดเล็กเท่านั้น
โดยทั่วไป ROM ที่อยู่ใน PLC จะถูกโปรแกรมมาตั้งแต่อยู่ที่โรงงาน
เมื่อผู้ผลิตทำการใส่โปรแกรมหรือข้อมูลลงไปใน ROM แล้ว
ผู้ใช้จะไม่สามารถเปลี่ยนแปลงข้อมูลหรือโปรแกรมได้
ในการเขียนโปรแกรมควบคุมบนตัวควบคุมที่มี
ROM
เป็นฐาน เมื่อจะบรรจุโปรแกรมหรือข้อมูลลงใน ROM จะต้องทำการดีบั๊ก (Debug) ก่อน ซึ่งการดีบั๊กจะทำใน
RAM หรือ คอมพิวเตอร์ส่วนบุคคล
2.Random Acess Memory (RAM)
บางครั้งอาจจะเรียกว่า หน่วยความจำแบบ
อ่าน / เขียน (Read
/ Write) หรือ R/W ถูกออกแบบเพื่อให้ข้อมูลสามารถเขียนลงไปในพื้นที่หน่วยความจำได้
และสามารถอ่านหน่วยความจำที่เขียนแล้วได้ แต่ข้อมูลและโปรแกรมที่เขียนใน RAM
จะไม่สามารถอยู่ได้เมื่อขาดกระแสไฟฟ้า ดังนั้น RAM จึงเป็นหน่วยความจำแบบชั่วคราว ปกติ RAM จะมีแบตเตอรี่สำรองตลอดเวลาเพื่อรักษาข้อมูลและโปรแกรมที่อยู่ใน
RAM
ปัจจุบัน
PLC
จะใช้ RAM กับแบตเตอรี่เพื่อมาประยุกต์ใช้งาน RAM
เป็นหน่วยความจำที่ง่ายต่อการสร้างและเปลี่ยนแปลงโปรแกรม เหมือนกับการนำเข้าข้อมูล
เมื่อเปรียบเทียบกับหน่วยความจำประเภทอื่น RAM เป็นหน่วยความจำที่ทำงานเร็วที่สุด
แต่มีข้อด้อยเพียงเมื่อขาดไฟฟ้าจะทำให้ข้อมูลและโปรแกรมภายใน RAM สูญหายไป ถึงแม้ว่าโปรเซสเซอร์ยังคงมอนิเตอร์สถานะของแบตเตอรี่
ดังนั้นแบตเตอรี่สำรองจึงมีความสำคัญมากจึงต้องเตรียมให้เพียงพอกับ PLC ที่ใช้งาน แต่ถ้าแบตเตอรี่สำรองไม่สามารถทำงานได้ PLC ซึ่งมีหน่วยความจำแบบไม่ชั่วคราว เช่น EPROM จะถูกนำมาใช้รวมกับ RAM โดยที่ EPROM เป็นหน่วยความจำ ที่มีข้อดีของ
หน่วยความจำแบบชั่วคราว และแบบไม่ชั่วคราว
รูปที่ 5.2
แสดงซิปหน่วยความจำแบบ RAM
ชนิด 4K words by 8 bits
3.Programmable
Read Only Memory (PROM)
เป็นหน่วยความจำแบบ ROM ชนิดพิเศษ เพราะว่ามันสามารถที่จะโปรแกรมได้ เมื่อนำ PROM มาใช้ จะนำมาใช้เก็บข้อมูลสำรองของ RAM บางชนิดแบบถาวร
ถึงแม้ว่าจะมีข้อได้เปรียบจากการที่เขียนโปรแกรมใหม่ได้
แต่ก็มีข้อเสียคือต้องการอุปกรณ์การเขียนโปรแกรมชนิดพิเศษ ดังนั้นเมื่อ PROM
ถูกบรรจุข้อมูลหรือโปรแกรมครั้งแรกแล้ว
เมื่อทำการลบโปรแกรมหรือเขียนโปรแกรมใหม่จึงทำได้ยาก
ดังนั้นเมื่อต้องการเขียนโปรแกรมใหม่จึงนิยมใช้ ชิบ PROM ตัวใหม่
ดังนั้น PROM เป็นหน่วยความจำที่เหมาะสมในการเก็บโปรแกรมซึ่งตรวจสอบอย่างดีแล้วใน
RAM และไม่ต้องการเปลี่ยนแปลงเพิ่มเติมอีก หรือ
บรรจุข้อมูลแบบออนไลน์
4. Erasable
Programmable Read Only Memory (EPROM)
เป็นหน่วยความจำ PROM ที่ถูกออกแบบมาเป็นพิเศษ
โดยสามารถเขียนโปรแกรมใหม่ได้หลังจากโปรแกรมเดิมถูกลบด้วยรังสีอัลตร้าไวโอเล็ท (UV) เพื่อการลบโปรแกรมที่สมบูรณ์จึงจำเป็นต้องมีหน้าต่างเล็กๆบนชิป
(ดูรูปที่ 5.3) เพื่อเปิดรับแสง UV ประมาณ 20 นาที EPROM
ถือได้ว่าเป็นอุปกรณ์เก็บโปรแกรมแบบกึ่งถาวร เพราะว่ามันจะเก็บโปรแกรมตลอดไปจนกว่าจะพร้อมให้เปลี่ยนโปรแกรมใหม่
EPROM เป็นหน่วยความจำที่สามารถเก็บโปรแกรมที่ต้องการแบบถาวร
แต่ไม่ต้องการที่จะเก็บโปรแกรมที่ต้องการเปลี่ยนแปลงข้อมูลหรือแบบบรรจุข้อมูลแบบออนไลน์ได้
มี OEMs หลายรายที่ใช้ตัวควบคุมกับ EPROM เพื่อจัดเก็บข้อมูลแบบถาวรของโปรแกรมควบคุมเครื่องจักรที่ได้รับการดีบั๊กเป็นที่เรียบร้อยแล้ว
สาเหตุที่ OEMs ใช้ EPROM เนื่องจากว่าไม่ต้องการให้ผู้ใช้เปลี่ยนแปลงโปรแกรมหรือบรรจุข้อมูลเพิ่มเติมในเครื่องจักร
รูปที่ 5.3 แสดงรูปชิบหน่วยความจำ
EPROM
ชนิด 4K by 8 bits
ตัวควบคุมหลายชนิดได้ใช้ EPROM ทำงานร่วมกันหน่วยความจำแบบ RAM กับแบตเตอรี่สำรอง โดยจะใช้
EPROM เป็นต้วสำรองโปรแกรมของหน่วยความจำแบบ RAM ซึ่ง EPROM มีคุณสมบัติที่เก็บโปรแกรมได้ถาวรขณะเดียวกัน
RAM ก็มีคุณสมบัติง่ายในการเปลี่ยนแปลงโปรแกรม
ซึ่งจะทำเป็นชุดของหน่วยความจำเพื่อนำไปใช้ประยุกต์งานในด้านต่างๆ
5.Electrically
Alterable Read Only Memory (EAROM)
เป็นหน่วยความจำที่มีความคล้ายคลึงกับ
EPROM
แต่แทนที่จะลบโปรแกรมด้วยรังสี UV แต่มาใช้แรงดันไฟฟ้าทำการลบแทน โดยการจ่ายแรงดันเข้าไปที่ขาลบโปรแกรมของซิบ EAROM
ซึ่งขานี้สามารถตัดออกไปได้ ส่วนการประยุกต์ใช้งานก็เหมือนกับ EPROM
ซี่งเป็นหน่วยความจำแบบไม่ชั่วคราว โดยจะช่วยสำรองข้อมูลของหน่วยความจำ
RAM
6.Electrically Erasable Programmable Read Only Memory (EEPROM)
เป็นหน่วยความจำที่ประกอบด้วยวงจรรวม (Integrated Circuit) ได้ถูกพัฒนาตั้งแต่ปี 1970 มีคุณสมบัติคล้ายกับ ROM และ
EPROM คือเป็นหน่วยความจำแบบไม่ชั่วคราว
แต่เพื่อความยืดหยุ่นในการบรรจุและลบโปรแกรมเหมือนกับหน่วยความจำ RAM
ในปัจจุบันตัวควบคุมขนาดเล็กและขนาดกลางจะนิยมใช้
EEPROM
เป็นหน่วยความจำภายในระบบ เนื่องจากสามารถเก็บโปรแกรมได้แบบถาวรและง่ายในการลบโปรแกรมและบรรจุลงโปรแกรมใหม่
โดยใช้อุปกรณ์ช่วยในการลบและบรรจุโปรแกรม เช่น เครื่องคอมพิวเตอร์ส่วนบุคคล หรือ
อุปกรณ์ป้อนโปรแกรมแบบ Manual โดยอุปกรณ์ที่กล่าวมาแล้วจะช่วยลดเวลาในการลบและบรรจุโปรแกรมใหม่
EEPROM มีข้อด้อยคือ
1.เป็น ROM ที่ถูกลบโปรแกรมได้ด้วยกระแสไฟฟ้า
2.การที่จะบรรจุโปรแกรมใหม่จะต้องลบโปรแกรมเดิมเสียก่อน
(ไม่เหมือนกับ RAM)
ทำให้ล่าช้าในการบรรจุโปรแกรมใหม่
การดีเลย์นี้จะเห็นได้ชัดเมื่อทำการเปลี่ยนแปลงโปรแกรมแบบออนไลน์
3.
การลบและการบรรจุลงโปรแกรมใหม่ไม่สามารถทำได้ตลอดไป
คือมีขีดจำกัดในการเปลี่ยนแปลงโปรแกรมนั่นเอง (ประมาณ 10,000 ครั้ง)
แต่ทั้งหมดเป็นข้อด้อยที่เล็กน้อยถ้าเปรียบเทียบกับข้อได้เปรียบของ
EEPROM
5.3 โครงสร้างและความจุของหน่วยความจำ
5.3.1 โครงสร้างพื้นฐานของหน่วยความจำ
หน่วยความจำของ PLC จะแบ่งเป็นช่องๆ หรือเป็นเซลล์ โดยแต่ละเซลล์จะเก็บข้อมูลที่เป็น 0 หรือ 1
(ระบบไบนารี่) เพราะว่าแต่ละเซลล์จะเก็บข้อมูลเลขไบนารี่เพียงแค่ 1 ตัวหรือ 1 บิต จึงเรียกแต่ละเซลล์ว่า
บิต และจำนวน 1 บิตนี้เองเป็นโครงสร้างหน่วยย่อยที่สุดของหน่วยความจำ
ถึงแม้ว่าแต่ละบิตจะประกอบด้วยข้อมูล 1 หรือ 0 แต่ไม่ใช่เก็บข้อมูลที่มีค่าเป็น 1
หรือ 0 จริงๆ แต่หมายความว่าถ้าเซลล์นั้นมีแรงดันตกคร่อมจะทำให้มีข้อมูลเป็น 1
แต่เซลล์นั้นไม่มีแรงดันตกคร่อมจะทำให้มีข้อมูลเป็น 0
ดังนั้นบิตที่อยู่ในเซลล์จะถูกพิจารณาว่ามีสถานะ
ON
ถ้ามีข้อมูลเป็น 1 (มีแรงดันไฟฟ้าตกคร่อม)และมีสถานะ OFF ถ้าข้อมูลเป็น 0 (ไม่มีแรงดันไฟฟ้าตกคร่อม) และจะเรียกข้อมูลที่อยู่ในบิตเดี่ยวว่า
สถานะของบิต (Bit Status )
บางที่
ตัวโปรเซสเซอร์จะต้องใช้บิตมากกว่า 1 บิตในเวลาเดียวกัน ตัวอย่างเช่น
โปรเซสเซอร์จะใช้กลุ่มของบิตทำการถ่ายโอนข้อมูลระหว่างหน่วยความจำ
และการจัดเก็บตัวเลข การเข้ารหัส ก็ใช้กลุ่มของบิตเหมือนกัน กลุ่มของบิตจะจับตัวรวมกันจำนวน 8 บิตจะเรียกว่า
ไบต์ (Byte) และ 2 ไบต์ก็จะเรียกว่า เวิร์ด (Word) ดังที่กล่าวมาแล้วในบทก่อนๆ
5.3.2
ความจุและอรรถประโยชน์ของหน่วยความจำ
ความจุของหน่วยความจำมีความจำเป็นที่จะต้องพิจารณา
เมื่อนำ PLC
ไปใช้งาน
การใช้หน่วยความจำที่เหมาะสมจะสามารถช่วยประหยัดต้นทุนของฮาร์ดแวร์และต้นทุนจากการซื้อหน่วยความจำมาใส่เพิ่มเติมทีหลัง
ความรู้เรื่องหน่วยความจำจะช่วยหลีกเลี่ยงการชื้อคอนโทรลเลอร์ที่มีหน่วยความจำที่ไม่เหมาะสมหรือการไม่อาจจะขยายได้
ในปัจจุบันสำหรับ PLC ขนาดเล็ก (ขนาดน้อยกว่า 64 I/O) จะมีหน่วยความจำที่ขยายไม่ได้
เนื่องจากว่าผู้ผลิตได้ใส่หน่วยความจำที่เพียงพอต่อการทำงานขนาดเล็ก ส่วน PLC
ขนาดใหญ่จะมีหน่วยความจำที่ขยายได้เพราะมีขอบเขตของการใช้งานมากมาย
ขนาดของหน่วยความจำประยุกต์จะมีหน่วยเป็น
กิโล (K)
โดยที่ 1 K จะมีจำนวน 1024 โลเคชั่น (Location) ถ้า 2 K จะมีจำนวน 2048 โลเคชั่น และขนาด 4 K
จะประกอบด้วย 4096 โลเคชั่น รูปที่ 5.5 แสดงหน่วยความจำ 2
อาร์เรย์ที่มีขนาด 4 K แต่มีโครงสร้างที่แตกต่างกันโดยหน่วยความจำตัวแรกมีขนาด
1 ไบต์ และหน่วยความจำตัวที่ 2 ไบต์
รูปที่ 5.5 บล็อกแสดงตัวอย่างของ (a) โลเคชั่นของหน่วยความจำขนาด 4K by 8 bits
และ (b) โลเคชั่นของหน่วยความจำขนาด
4K by 16 bits
ความจุของหน่วยความจำของ PLC ในหน่วย K เป็นการชี้บอกจำนวนของโลเคชั่นของหน่วยความจำว่ามีจำนวนสูงสุดเท่าใด
ซึ่งข้อมูลเพียงเท่านี้ยังไม่เพียงพอที่จะตัดสินใจว่าต้องการหน่วยความจำเท่าใด
ซึ่งข้อมูลเพื่มเติมที่ควรจะทราบคือ
ตำแหน่งของคำสั่งโปรแกรมที่ถูกเก็บจะช่วยให้เราทำการตัดสินใจได้ดีขึ้น
อรรถประโยชน์ของหน่วยความจำ (Memory
Utilization) หมายถึง จำนวนหน่วยความจำที่ต้องการในการเก็บชุดคำสั่งแต่ละคำสั่ง
ซึ่งเป็นข้อมูลที่ผู้ผลิตต้องให้กับผู้ใช้ โดยอาจจะมาเป็นในรูปแบบของคู่มือการใช้งาน
เพื่อแสดงตัวอย่างความจุของหน่วยความจำ
จากรูปที่ 5.5 สมมุติว่าคำสั่งหน้าสัมผัสที่เป็นปกติเปิด หรือ ปกติปิด
แต่ละคำสั่งต้องการพื้นที่ในการจัดเก็บ 16 บิต เนื่องจากพื้นที่ของหน่วยความจำอาร์เรย์แรกมีขนาดเป็นครึ่งหนึ่งของอาร์เรย์ที่สอง
นั่นหมายความว่าเมื่อเก็บขนาดโปรแกรมที่เท่ากัน ระบบในรูปที่ 5.5 a จะต้องการพื้นที่หน่วยความจำ 8 K ในขณะที่ระบบในรูปที่
5.6 b จะต้องการพื้นที่หน่วยความจำเพียงแค่ 4 K
ผู้ใช้งาน PLC สามารถเริ่มต้นพิจารณาหาหน่วยความจำสูงสุดที่ต้องการโดยพิจารณาวิธีจากตัวอย่างต่อไปนี้
ตัวอย่างที่ 5.1
ให้หาปริมาณหน่วยความจำที่ต้องการสำหรับการประยุกต์ใช้งานต่อไปนี้
1.มี 70
เอ้าท์พุต โดยแต่ละเอ้าท์พุตต้องใช้คำสั่งที่มีหน้าสัมผัสเป็นส่วนประกอบ 10 องค์ประกอบ (Elements)
2.มีไทม์เมอร์ 11 ตัว และเคาท์เตอร์ 3
ตัว ซึ่งแต่ละประเภทมี 8 และ 5 องค์ประกอบตามลำดับ
3.มีการใช้คำสั่ง 20 คำสั่ง
โดยมีคำสั่งบวก คำสั่งลบ คำสั่งเปรียบเทียบ
โดยแต่ละคำสั่งถูกกระตุ้นด้วยหน้าสัมผัส 5 องค์ประกอบ
ตารางที่ 5.1
แสดงความต้องการของหน่วยความที่ต้องการแต่ละคำสั่ง (จากผู้ผลิต PLC )
วิธีทำ
จากข้อมูลที่ให้มา
เราสามารถที่จะประมาณความจุของหน่วยความจำที่ต้องใช้ได้ดังต่อไปนี้
1.
ตัวควบคุมทางลอจิก = 10 หน้าสัมผัส ต่อ 1 รั้งเอ้าท์พุต
ดังนั้นจำนวนเอ้าท์พุตรั้ง = 70
2.
ตัวควบคุมทางลอจิก = 8 หน้าสัมผัส ต่อ 1 ไทม์เมอร์
ดังนั้นจำนวนไทม์เมอร์ = 11
3.
ตัวควบคุมทางลอจิก = 5 หน้าสัมผัส ต่อ 1 เค้าท์เตอร์
ดังนั้นจำนวนเค้าท์เตอร์ = 3
4.
ตัวควบคุมทางลอจิก = 5 หน้าสัมผัส ต่อ การดำเนินการทางคณิตศาสตร์ และ การเปรียบเทียบ
ดังนั้นจำนวนของคณิตศาสตร์และการเปรียบเทียบ
=
3
จากตารางที่ 5.1
ดังนั้นเราสามารถหาจำนวนเวิร์ดที่ต้องการใช้ได้ดังต่อไปนี้
1.
จำนวนหน้าสัมผัส (70x10) 700
จำนวนเอ้าท์พุต (70x1)
70
จำนวนเวิร์ดทั้งหมด 770 770
2.
จำนวนหน้าสัมผัส (11x8) 88
จำนวนไทม์เมอร์ (11x3)
33
จำนวนเวิร์ดทั้งหมด 121 121
3.
จำนวนหน้าสัมผัส (3x5) 15
จำนวนเค้าท์เตอร์ (3x3) 9
จำนวนเวิร์ดทั้งหมด 24 24
4.
จำนวนหน้าสัมผัส (20x5) 100
จำนวนคณิตศาสตร์และการเปรียบเทียบ(20x1) 20
จำนวนเวิร์ดทั้งหมด 120
120
จำนวนเวิร์ดทั้งหมดที่ต้องใช้เพื่อเก็บคำสั่ง 1035
ซึ่งผลการหาพบว่าหน่วยความจำที่ต้องการคือ
1035 ซึ่งมากกว่า 1K
(1024)จากการคำนวณตัวอย่างข้างต้น เป็นการประมาณการขั้นต้น
แต่อย่างไรก็ตาม ต้องเผื่อสำหรับการประยุกต์ใช้งานที่เพิ่มขึ้นในอนาคตด้วย
ซึ่งโดยปกติจะขยายไปประมาณ 25 -50 % เพื่อให้ยืดหยุ่นต่อการเปลี่ยนแปลง
ปรับปรุง และขยายงานต่อไปในอนาคต
ผู้ใช้งานควรที่จะพึงระลึกเสมอว่า
เมื่อมีการเปลี่ยนโปรแกรมควบคุมการทำงานจะมีผลกระทบต่อพื้นที่ของหน่วยความจำด้วย
และงานที่เกี่ยวข้องกับการจัดการข้อมูลและการจัดเก็บข้อมูล ยิ่งมีความจำเป็นที่ต้องการหน่วยความจำเพิ่มขึ้นอีก
และถ้าโปรแกรมที่ประกอบด้วยคำสั่งในรูปของคณิตศาสตร์และการดำเนินการจัดการข้อมูลจะมีความต้องการหน่วยความจำที่มากยิ่งขึ้น
ข้อมูลที่เกี่ยวข้องกับหน่วยความจำประยุกต์
(Application
Memory) จะถูกรวมมาให้กับคู่มือ พร้อมกับตารางข้อมูล (Data
Table) และ ตารางอินพุตและเอ้าท์พุต (I/O Table) จากผู้ผลิต PLC และในความเป็นจริงพื้นที่ของหน่วยความจำประยุกต์จริงๆที่ผู้ใช้จะได้ใช้งานจะน้อยกว่าที่ระบุไว้กับคู่มือ
5.4 การจัดการหน่วยความจำและการทำงานร่วมกับระบบอินพุตและเอ้าท์พุต
ดังที่ได้กล่าวมาแล้วนั้น
ระบบหน่วยความจำจะแบ่งเป็น 2 ส่วนใหญ่ คือ ส่วนที่เป็นหน่วยความจำของระบบ (System
Memory) และหน่วยความจำประยุกต์ (Application Memory) ซึ่งจะคนละพื้นที่กัน รูปที่ 5.6 จะแสดงตัวอย่างของการจัดการหน่วยความจำ
ซึ่งจะรู้จักกันในชื่อ “แผนที่หน่วยความจำ” (Memory Map)
Memory Map ไม่ได้แสดงแค่ว่าอะไรอยู่ในหน่วยความจำเท่านั้น
แต่ยังแสดงว่าข้อมูลได้ถูกเก็บไว้ที่ใด ตำแหน่งใดของหน่วยความจำ
และตำแหน่งต่างๆที่อยู่ใน
Memory Map จะถูกเรียกว่า
“ที่อยู่ในหน่วยความจำ” (Memory Address) การทำความเข้าใจเกี่ยวกับ
Memory Map จะเป็นประโยชน์อย่างมากในการสร้างโปรแกรมใน PLC
และการกำหนดตารางข้อมูล (Table Data)
รูปที่ 5.6
แสดงแผนที่หน่วยความจำ (Memory
Map) อย่างง่าย
โดยทั่วๆไป PLC ทุกตัวจะจัดสรรพื้นที่หน่วยความจำเป็น 4 ส่วนดังต่อไปนี้ (ดูรูปที่ 5.6 )
1.Executive
Memory Area
เป็นส่วนที่เก็บโปรแกรมแบบถาวรและถือว่าเป็นส่วนหนึ่งของระบบ PLC
โปรแกรมที่เก็บในส่วนนี้
เป็นโปรแกรมที่เกี่ยวข้องกับการจัดการกิจกรรมต่างๆในระบบ เช่น
การสั่งให้ดำเนินการตามโปรแกรมควบคุมที่ผู้ใช้เขียน การสื่อสารกับระบบต่างๆ
และกิจกรรมภายในระบบอื่นๆ
2.Scratch Pad
Area หรือ System Work Area เป็นพื้นที่ในการจัดเก็บชั่วคราว
ซึ่งเป็นพื้นที่ที่ถูกใช้โดย CPU เพื่อเก็บกลุ่มของข้อมูลที่มีขนาดเล็กๆ
ระหว่าง ดำเนินการคำนวณและควบคุม เนื่องจาก CPU มีความจำเป็นต้องเก็บข้อมูลบางประเภทอย่างรวดเร็วในพื้นที่ส่วนนี้
เพื่อหลีกเลี่ยงการใช้เวลามากในการรับข้อมูลจากหน่วยความจำหลัก
3.Data Table
Area เป็นพื้นที่ในการจัดเก็บข้อมูล (Data) ทุกประเภทที่เกี่ยวข้องกับโปรแกรมควบคุม เช่น
ค่าเวลาสำหรับไทม์เมอร์ ค่าตัวนับของเค้าท์เตอร์ และค่าคงที่อื่นๆของตัวแปรที่ต้องใช้ในโปรแกรมควบคุมหรือ
CPU และ Data Table Area นี้ก็ยังคงสถานะข้อมูลสำหรับอินพุตระบบ
(ครั้งหนึ่งที่อ่าน)และเอ้าท์พุตระบบ (ซึ่งครั้งหนึ่งที่ถูกเซ็ทให้ ON /OFF)
4.User Program Area เป็นพื้นที่ที่เก็บคำสั่งโปรแกรมควบคุมที่ผู้ใช้บรรจุเข้าไป
และพื้นที่หน่วยความจำส่วนนี้ยังบรรจุโปรแกรมควบคุมอีกด้วย
พื้นที่หน่วยความจำในส่วนที่เป็น Executive
Memory Area และ ในส่วนที่เป็น Scratch Pad Area เป็นที่พื้นที่ถูกซ่อนไว้จากผู้ใช้และถูกพิจารณาให้พื้นที่ทั้งสองส่วนนี้รวมกันที่เรียกว่า
หน่วยความจำของระบบ (System Memory)
ในกรณีเดียวกันในส่วนที่เป็น Data Table
Area และ User Table Area เป็นส่วนที่ผู้ใช้สามารถเข้าถึงได้ง่าย
และผู้ใช้สามารถกำหนดค่าเพื่อใช้ควบคุมในต่างๆได้ ทั้งสองส่วนถูกพิจารณารวมกัน
เรียกว่า หน่วยความจำสำหรับประยุกต์ใช้งาน (Application Memory)
ดังนั้นพื้นที่ของหน่วยความจำรวมที่ถูกระบุมากับตัว
PLC
จะประกอบด้วย หน่วยความจำของระบบ และ หน่วยความจำประยุกต์ใช้งาน
ตัวอย่างเช่น
ถ้า PLC
ระบุว่ามีหน่วยความจำสูงสุด 64 K อาจจะมีพื้นที่ในส่วนที่
Executive Memory Area เท่ากับ 32 K ถูกแบ่ง 0.25 K ให้เป็น Scratch
Pad Area และเหลือสำหรับหน่วยความจำประยุกต์ใช้งานซึ่งประกอบด้วย Data
Table Area และ User Program Area เท่ากับ 31.75
K แต่ก็มี PLC
บางรุ่นที่หน่วยความจำสูงสุดระบุไว้เป็นหน่วยความจำประยุกต์ และบางรุ่นก็บอกแค่ความจุของหน่วยความจำในส่วนที่เป็น
User Program Area
5.4.1หน่วยความจำสำหรับประยุกต์ใช้งาน (Application
Memory)
เป็นหน่วยความจำที่จะเก็บคำสั่งโปรแกรมและข้อมูลที่โปรเซสเซอร์จะใช้ในการควบคุม
รูปที่ 5.7 จะแสดงแมปปิ้งขององค์ประกอบพื้นฐานในพื้นที่ส่วนนี้ โดยแต่ละ PLC จะมีหน่วยความจำส่วนนี้สูงสุดขึ้นกับขนาดของตัวควบคุมของ
PLC
ตัวควบคุมจะเก็บข้อมูลทั้งหมดในส่วนที่เป็น Data Table
Area และจะเก็บคำสั่งโปรแกรมในส่วนที่เป็น User Program
Area ซึ่งทั้งสองส่วนจะอยู่ในส่วนหน่วยความจำสำหรับประยุกต์ใช้งาน
1.Data Table
Section เป็นที่อยู่ในหน่วยความจำประยุกต์ซื่งประกอบดัวยพื้นที่ส่วนต่างๆดังต่อไปนี้ (ดูรูปที่ 5.7)
-
ตารางอินพุต (Input Table)
-
ตารางเอ้าท์พุต (Output Table)
-
พื้นที่สำหรับจัดเก็บสำหรับบิตและรีจิสเตอร์
(Storage)
พื้นที่จัดเก็บส่วนนี้จะประกอบข้อมูลที่เป็นไบนารี่เพื่อแสดงสถานะของอินพุตและเอ้าท์พุต
(เปิดหรือปิด) แสดงจำนวนและรหัส
ตารางอินพุต (Input
Table) เป็นอาร์เรย์ของบิตที่จัดเก็บสถานะของดิจิตอลอินพุตที่ต่อกับตัวเชื่อมต่อของอินพุต
หรือ อินพุตอินเตอร์เฟส (Input
Interface) ของ PLC ดังนั้นจำนวนบิตสูงสุดของตารางอินพุตจะเท่ากับจำนวนอินพุตที่ต่อเข้ากับ
PLC ตัวอย่างเช่น ถ้า PLC รุ่นหนึ่งสามารถต่อกับอินพุตภายนอกได้มากที่สุด
64 อินพุต ดังนั้น PLC ตัวนั้นจะต้องการตารางอินพุต 64 บิต
ดังนั้นอาจจะอุปมาได้ว่า อุปกรณ์ภายนอกต่อเข้ากับบิตของตารางอินพุต นั่นเอง
ตัวอย่างเช่น
ถ้ามีลิมิตสวิทช์ต่อเข้ากับอินพุตอินเตอร์เฟส ตาม รูปที่ 5.8 ที่มีแอดเดรส 130078
ซึ่งสอดคล้องกับบิตในตารางอินพุต ซึ่งเมื่อดูที่ตารางอินพุตจะพบว่าอยู่ในตำแหน่งเวิร์ดที่
1308 และตำแหน่งบิตที่ 078 ถ้าลิมิตสวิทช์อยู่ในตำแหน่งเปิดหน้าสัมผัส
(OFF) จะทำให้บิตที่ 130078 มีสถานะเป็น 0 (ดูรูปที่ 5.8
a)แต่ถ้าลิมิตสวิทช์อยู่ในตำแหน่งปิดหน้าสัมผัส (ON) จะทำให้บิตที่ 130078 มีสถานะเป็น
1 (ดูรูปที่ 5.8 b)
ระหว่างที่ PLC
ทำงานอยู่นั้น ตัวโปรเซสเซอร์จะอ่านสถานะของแต่ละอินพุตในโมดูลอินพุตและจะใส่ค่า
0 หรือ 1 ในบิตของตารางอินพุตที่มีแอดเดรสที่สอดคล้องกับอินพุตอินเตอร์เฟส
ถ้าโมดูลอินพุตที่ต่อกับอุปกรณ์อินพุตมีการเปลี่ยนแปลง ค่าในตารางอินพุตก็มีการเปลี่ยนแปลงด้วย
แต่จะเปลี่ยนแปลงระหว่างทำการอ่านในช่วงกระบวนการปรับปรุงค่าอินพุตและเอ้าท์พุต (I/O
update) เท่านั้น
(a)
ลิมิตสวิตช์ที่ยังไม่ทำงาน
(หน้าสัมผัสเปิด) จะทำให้สถานะบิตที่ 130078
มีสถานะเป็น 0
(b) ลิมิตสวิตช์ที่ทำงาน
(หน้าสัมผัสปิด) จะทำให้สถานะบิตที่ 130078
มีสถานะเป็น 1
ตารางเอ้าท์พุต
(Output Table) เป็นอาร์เรย์บิทซึ่งควบคุมสถานะของอุปกรณ์ดิจิตอลอินพุตที่ต่อเข้ากับเอ้าท์พุตอินเตอร์เฟส
(Output
Interface) ของ PLC ดังนั้นจำนวนบิตสูงสุดที่มีอยู่ในตารางเอ้าท์พุตจะเท่ากับจำนวนเอ้าท์พุตสูงสุดของ
PLC ที่จะต่อเข้ากับอุปกรณ์ภายนอก ตัวอย่างเช่น PLC ที่มีเอ้าท์พุตสูงสุด 128 เอ้าท์พุตมีความต้องการตารางเอ้าท์พุต 128 บิต
เช่นเดียวกับตารางอินพุต
อุปกรณ์ภายนอกที่ต่อเข้ากับโมดูลเอ้าท์พุต อาจจะอุปมาได้ว่า
อุปกรณ์ภายนอกต่อเข้ากับบิตของตารางเอ้าท์พุต นั่นเอง โดยที่ตัวโปรเซสเซอร์จะควบคุมบิตในตารางเอ้าท์พุตให้เป็นไปตามโปรแกรมที่ถูกเขียนโดยผู้ใช้งาน
ระหว่างที่ CPU
ทำการสแกนโปรแกรม โมดูลเอ้าท์พุตจะถูกปรับให้มีสถานะเปิดหรือปิด (ON/OFF) ในขั้นตอนทำการปรับปรุงค่าเอ้าท์พุต (Output Update) ถ้าบิตในตารางเอ้าท์พุตมีสถานะเปิด (1 ,Turn On) ดังนั้นเอ้าท์พุตที่ต่อก็จะมีสถานะเปิดด้วย
(ดูที่รูป 5.9 a) แต่ถ้าบิตในตารางเอ้าท์พุตมีสถานะปิด (0,
Turn Off) ดังนั้นเอ้าท์พุตที่ต่อก็จะมีสถานะเปิดด้วย
(ดูที่รูป 5.9 b) ซึ่งการเปิด
หรือ ปิด ของอุปกรณ์กับโมดูลเอ้าท์พุตจะเกิดขึ้นระหว่าง CPU ทำการปรับปรุงค่าเอ้าท์พุต
ภายหลังจากการสิ้นสุดการสแกน
รูปที่ 5.9 แสดงอุปกรณ์เอ้าท์พุตต่อเข้าถึงบิตในตารางเอ้าท์พุต (เวิร์ดที่ 0518 แอดเดรสที่ 051058) ซึ่งถูกควบคุมด้วยโปรเซสเซอร์ในสภาวะต่างๆคือ
(a)
ถ้าตารางเอ้าท์พุตมีค่าเป็น
1 อุปกรณ์เอ้าท์พุตที่ต่อก็จะเปิด
(b) ถ้าตารางเอ้าท์พุตมีค่าเป็น
0 อุปกรณ์เอ้าท์พุตที่ต่อก็จะปิด
Storage Area พื้นที่ส่วนนี้เป็นส่วนหนึ่งของพื้นที่
Data Table Area โดยมีหน้าที่สำหรับจัดเก็บข้อมูลที่สามารถเปลี่ยนแปลงได้
ซึ่งข้อมูลที่จัดเก็บอาจจะมีขนาดต่างๆเช่น เป็น บิต ไบต์ หรือ เวิร์ด เป็นต้น
พื้นที่ในการจัดเก็บส่วนนี้จะแบ่งเป็น
2 ส่วน คือส่วนที่เป็นพื้นที่จัดเก็บสำหรับบิตที่อยู่ภายใน (Internal
Bit Storage Area) และพื้นที่สำหรับจัดเก็บ เวิร์ดและรีจิสเตอร์ต่างๆ
(Register / Word Storage Area) (ให้ดูรูปที่ 5.10 ประกอบ)
- Internal Bit Storage Area
จะเก็บบิตต่างๆไว้
โดยบิตเหล่านั้นจะอ้างอิงถึง เอ้าท์พุตภายใน (Internal Output) , คอยด์ที่อยู่ภายใน (Internal Coil) ,รีเลย์ที่อยู่ภายใน
(Internal Control Relays หรือ Internal) ซึ่งพวก อินเทอร์นอล เหล่านี้จะเตรียมให้สำหรับจัดการทางเอ้าท์พุตต่างๆเช่น
1.การทำอินเตอร์ล็อค
(Interlock, Self
Latching)
2.เพื่อสำหรับสั่งให้ทำงานแบบลำดับขั้นของวงจรแลดเดอร์ในโปรแกรมควบคุม
อินเทอร์นอล
เหล่านี้ไม่ได้ไปควบคุมอุปกรณ์ภายนอกโดยตรง
เนื่องจากมันถูกเก็บอยู่ในตำแหน่งของหน่วยความจำที่ไม่ได้อยู่ในส่วนที่เป็น
ตารางเอ้าท์พุต (Output Table)
เมื่อโปรเซสเซอร์ดำเนินการตามโปรแกรมที่เขียน
เมื่อ บิตภายใน (Internal Bit) ถูกกระตุ้น
(สถานะเป็น 1) บิตนั้นจะไปอ้างอิงหน้าสัมผัสซึ่งหน้าสัมผัสมีแอดเดรสเดียวกับแอดเดรสของบิตภายใน
แล้วจะเปลี่ยนสถานะของหน้าสัมผัส โดยถ้าหน้าสัมผัสนั้นเป็นแบบปกติเปิด (Normally
Open) เมื่อถูกกระตุ้นก็จะปิด (Close)
แต่ถ้าหน้าสัมผัสนั้นเป็นแบบปกติปิด (Normally Close) เมื่อถูกกระตุ้นก็จะเปิด
(Open) โดยหน้าสัมผัสเหล่านี้เองไปต่อกับตัวอินเทอร์นอลอื่นๆ
หรือ หน้าสัมผัสของอินพุตจริงๆเพื่อเข้าสู่กระบวนลำดับขั้นอินเตอร์ล็อก ก็ได้
หรือจะไปขับเอ้าท์พุตจริงๆ (แต่ต้องอ้างอิงไปที่ หน่วยความจำในส่วน Output
Table)
- Register
/ Word Storage Area จะทำหน้าที่เก็บกลุ่มบิต เช่น
ไบต์ (Bytes) หรือ เวิร์ด (Word) ซึ่งข้อมูลที่จัดเก็บจะอยู่ในรูปของตัวเลขไบนารี่และจะแสดงปริมาณหรือรหัส
ถ้าปริมาณเลขฐานสิบถูกจัดเก็บก็จะจัดเก็บในรูปแบบของตัวเลขไบนารี่ที่เทียบเท่ากับตัวเลขฐานสิบที่จัดเก็บ แต่ถ้าเป็นการจัดเก็บรหัสต่างๆเช่น
รหัส ASCII หรือรหัส BCD เป็นต้น
ก็จะจัดเก็บในรูปแบบของตัวเลขในระบบเลขฐานสอง
ค่าต่างๆที่ถูกวางไว้ใน
Register / Word Storage Area จะแสดงข้อมูลอินพุตจากอุปกรณ์ต่างๆเช่น จากทัมวิลสวิทช์ (Thumbwheel
Switch) อินพุตที่เป็นแอนาล็อก และอุปกรณ์อื่นๆ
เช่นเดียวกับข้อมูลจากอุปกรณ์อินพุตต่างๆ
รีจิสเตอร์นี้ยังสามารถจัดเก็บค่าต่างๆของเอ้าท์พุต และจะส่งออกไปทางโมดูลเอ้าท์พุตอินเตอร์เฟสที่ต่อกับอุปกรณ์ภายนอกอีกทีหนึ่ง
อุปกรณ์ภายนอกได้แก่ พวกมิเตอร์ที่เป็นอะนาล็อก พวก 7 ‘s
Segment ที่เป็น LED หรือ BCD วาล์วควบคุม และตัวควบคุมอัตราเร็ว (Speed Controller)
พื้นที่ส่วนนี้ยังจัดเก็บ
ค่าคงที่ต่างๆเช่น ค่าพรีเซ็ท (Preset) ของไทม์เมอร์และเค้าท์เตอร์ ขึ้นอยู่กับว่าจะใช้กับอะไร และตัว Register
/ Word Storage Area นี้อาจจะใช้อ้างอิงไปที่ รีจิสเตอร์ของอินพุตต่างๆ
(Input Registers) รีจิสเตอร์ของเอ้าท์พุตต่างๆ (Output
Registers) หรือ Holding Registers ซึ่งตารางที่
5.2 จะแสดงค่าคงที่มาตรฐานและตัวแปรที่ถูกเก็บไว้ในรีจิสเตอร์ต่างๆ
ตารางที่ 5.2
แสดงค่าคงที่และตัวแปรที่เก็บในรีจิสเตอร์ Register
/Word Area
ค่าคงที่
|
ตัวแปร
|
ค่าพรีเซ็ทของไทม์เมอร์
|
ค่าของเวลาที่เพิ่มขึ้น
|
ค่าพรีเซ็ทของเค้าท์เตอร์
|
ค่าของตัวนับที่เพิ่มขึ้น
|
ค่า Set
Point ของระบบควบคุมแบบวนลูป
|
ค่าของผลลัพธ์จากการดำเนินการทางคณิตศาสตร์
|
ค่า Set
Point ของตัวเปรียบเทียง
|
ค่าอินพุตที่เป็นอานาล็อก
|
ตารางที่แสดงเลขฐานสิบ
|
ค่าเอ้าท์พุตที่เป็นอานาล็อก
|
ตัวอักษรที่เป็นรหัส ASCII
|
ค่าอินพุตที่เป็น BCD
|
ข้อความที่เป็นรหัส ASCII
|
ค่าเอ้าท์พุตที่เป็น BCD
|
ตัวอย่างที่
5.2 จากรูปที่ 5.11
เมื่อลิมิตสวิทช์ที่ต่อกับอินพุตเทอร์มินอลที่ 10 ถูกกระตุ้นให้มีหน้าสัมผัสปิด อะไรจะเกิดขึ้นกับอินเตอร์นอลที่
2301 (เวิร์ดที่ 23 บิตที่ 01)
รูปที่ 5.11
แสดงลิมิตสวิตช์ที่เปิดหน้าสัมผัสต่อกับเอ้าท์พุตที่อยู่ภายใน
เฉลย
เมื่อ LS1 ถูกเปิด (ดูรูปที่ 5.12) หน้าสัมผัสที่ 10 ก็จะทำงาน
ซึ่งก็จะไปกระตุ้นให้เอ้าท์พุตภายใน (Internal Output) ที่
2301 เปิด (บิตที่ 01 ของเวิร์ดที่ 23) ทำงาน ทำให้เปลี่ยนสถานะหน้าสัมผัส 2301 ให้ปิดหน้าสัมผัส ทำให้ไปกระตุ้นให้เอ้าท์พุต
อินเตอร์เฟสตำแหน่งที่ 20 ทำงานเป็นผลให้ดวงไฟฟ้าส่องสว่าง PL ทำงานเมื่อ PLC สิ้นสุดการสแกน
ตัวอย่างที่
5.3
สำหรับแผนที่หน่วยความจำที่แสดงในรูปที่ 5.13 ซึ่งจะแสดงจำนวนต่างๆที่อยู่ใน Storage Area
(a)
ตัวเลขรหัส BCD ที่มีค่า 9876
(b)
ตัวอักษร A ซึ่งเป็นรหัส ASCII ที่ 1018
(c)
จำนวน 225710 (1000110100012)
ซึ่งเป็นค่าอานาล็อก
จงแสดงค่าเหล่านี้ใน
Storage
Area ตั้งแต่รีจิสเตอร์ที่ 400
เฉลย
จากรูปที่ 5.14
จะแสดงข้อมูลในรีจิสเตอร์ที่ประกอบด้วยเลข BCD 9876 ,ตัวอักษร A
ซึ่งเป็นรหัส ASCII ที่ 1018 และ จำนวน 225,710 (1000110100012) ซึ่งเป็นค่าอานาล็อก
2.User Program
Section
เป็นส่วนหนึ่งของหน่วยความจำประยุกต์ ซึ่งถูกสงวนไว้สำหรับงานควบคุมทางลอจิก
โดยที่คำสั่งควบคุมเครื่องจักรและกระบวนการผลิตทั้งหมดจะเก็บที่พื้นที่ส่วนนี้ และภาษาจัดการต่างๆในซอฟต์แวร์ของโปรเซสเซอร์
ซึ่งจะแสดงแต่ละชุดคำสั่งของ PLC ก็จะถูกเก็บไว้ในพื้นที่ในส่วนนี้
ด้วย
เมื่อ PLC ดำเนินการทำตามคำสั่งของโปรแกรม
ตัวโปรเซสเซอร์จะทำการแปลข้อมูลใน User Program Memory และทำการควบคุมบิตใน
Data Table ที่สอดคล้องกับอินพุตหรือเอ้าท์พุตภายใน หรือ
อินพุตหรือเอ้าท์พุตจริงๆ
ขนาดสูงสุดของหน่วยความจำส่วนนี้จะมีให้ขึ้นอยู่กับขนาดของ
PLC
(ขนาดของ I/O) สำหรับ PLC ขนาดกลางและขนาดใหญ่ หน่วยความจำส่วนนี้จะมีความยืดหยุ่นโดยการเปลี่ยนแปลงขนาดของ
Data Table ซึ่งขึ้นอยู่กับว่าผู้ใช้จะต้องการปริมาณเท่าใด
แต่สำหรับ PLC ขนาดเล็กหน่วยความจำส่วนนี้จะถูกกำหนดขนาดมาให้เลย
ไม่สามารถเปลี่ยนแปลงได้ ซึ่งจะรองรับคำสั่งได้จำกัด ส่วนวิธีการประมาณขนาดของ
User Program Memory ได้อธิบายไปแล้วในหัวข้อที่ 5.3
5.5 การกำหนดโครงสร้างของหน่วยความจำและแอดเดรสของอินพุตและเอ้าท์พุตของ PLC
การทำความเข้าใจเกี่ยวกับการจัดการหน่วยความจำ
โดยเฉพาะการปฏิสัมพันธ์กับอินพุตและเอ้าท์พุตของ Data Table กับ Storage
Area จะช่วยในการดำเนินการกับฟังก์ชั่นที่ซับซ้อนของ PLC ได้อย่างสะดวก ถึงแม้ว่าแผนที่หน่วยความจำจะมีให้สำหรับผู้ใช้ PLC แต่การทำความเข้าใจจากสิ่งที่ PLC ให้มาอย่างละเอียดจะทำให้ที่จะเขียนโปรแกรมควบคุมได้ดีและสามารถที่จะปรับปรุงโครงสร้างของโปรแกรมได้ในอนาคต
5.5.1 การจัดการ Data Table
ซึ่งบางทีจะเรียกว่า
การกำหนดโครงสร้างของ Data
Table ซึ่งเป็นสิ่งที่สำคัญมาก
เพราะการกำหนดโครงสร้างจะไม่ทำเฉพาะแค่แอดเดรสอุปกรณ์พวกดิสครีสเท่านั้น แต่ยังรวมถึงพวกรีจิสเตอร์ที่ใช้ในการควบคุมตัวเลขและอานาล็อก
เช่นในกระบวนการจับเวลา การนับ ของ PLC เป็นต้น
ก่อนอื่นเรามาพิจารณาตัวอย่าง
ของแผนที่หน่วยความจำประยุกต์สำหรับ PLC ซึ่งตัวควบคุมมีหน่วยความจำ
อินพุตและเอ้าท์พุต และระบบตัวเลขดังต่อไปนี้
(a)
มีหน่วยความจำประยุกต์ทั้งหมด 4K Word กับ 16 บิต
(b)
มีความสามารถในการต่อกับ
256 I/O (128 อินพุตและ128 เอ้าท์พุต
(c)
มีเอ้าท์พุตภายใน
128 บิต
(d)
เพิ่มรีจิสเตอร์ได้สูงสุดทั้งหมด
256 รีจิสเตอร์ โดยมีรีจิสเตอร์ขั้นต่ำได้ 8 รีจิสเตอร์ และสามารถเพิ่มได้ทีละ 8
รีจิสเตอร์ จนกระทั่งสูงสุดได้ที่ 256 รีจิสเตอร์ (มีทั้งหมด 32 กลุ่ม)
(e)
เป็นอาร์เรย์ที่ใช้ระบบเลขฐานแปด
กับ ความยาวเวิร์ดเท่ากับ 2 ไบต์
จากข้อมูลเราสามารถแสดงแผนที่ของหน่วยความจำประยุกต์ได้ดังต่อไปนี้
รูปที่ 5.16 แสดงผังรีจิสเตอร์ที่เพิ่มสูงสุด
โดยสามารถเพิ่มได้ที่ละ 8 รีจิสเตอร์ และการแบ่งรีจิสเตอร์ออกเป็นกลุ่มๆละ 8
รีจิสเตอร์
5.5.2
การระบุตำแหน่งแอดเดรสอินพุตเอ้าท์พุตของหน่วยความจำ
สมมุติว่า เรามีวงจรง่ายๆวงจรหนึ่ง
วงจรนั้นประกอบด้วยลิมิตสวิตช์เพื่อจะไปขับหลอดไฟส่องสว่างให้ทำงาน (ดูในรูป 5.17)
วงจรนี้สามารถต่อเข้ากับโมดูลอินพุตและโมดูลเอ้าท์พุตของ
PLC
ที่แสดงในรูป 5.18
สังเกตได้ว่า
ในการเขียนโปรแกรมนั้นเราไม่จำเป็นต้องนำหน้าสัมผัสของแอดเดรสที่ 000005
(จากตารางอินพุต) มาต่อตรงกับกับเอ้าท์พุตคอยด์ของแอดเดรสที่ 002017
(จากตารางเอ้าท์พุต) แต่อาจจะนำหน้าสัมผัสของแอดเดรสที่ 000005 มาต่อเข้ากับอินเทอร์นอลเอ้าท์พุตของแอดเดรสที่
001006 แล้วไปขับแอดเดรสที่ 002017 อีกที
5.6
สรุปการทำงานของ PLC
สำหรับในตัวอย่างนี้
เราจะสมมุติว่ามีหน่วยความจำของ PLC อย่างง่าย
ซึ่งมีการจัดการดังที่แสดงในรูปที่ 5.20 และวงจรอย่างง่ายดังรูปที่ 5.21
ซึ่งเป็นการต่ออุปกรณ์ภายนอกเข้ากับ PLC ทางอินพุตเอ้าท์พุตอินเตอร์เฟส
(I/O Interface)
ส่วนการนำเสนอในครั้งนี้จะใช้โปรแกรมควบคุมอย่างง่าย
ที่แสดงในรูป 5.22 ซึ่งโปรแกรมนี้จะถูกเก็บไว้ในส่วนที่เป็น User Memory
Area ซึ่งจะเป็นตัวเลขระบบไบนารี่เพื่อแสดงสถานะของคำสั่งด้วยค่า 1
(On) และค่า 0 (Off)
(ตัวอย่างคำสั่งเช่น ) ระหว่างที่ PLC ทำการสแกนจะมีกิจกรรมต่างๆตามลำดับต่อไปนี้
1.ทำการอ่านค่าของสถานะของอินพุต
2.ใส่ค่าสถานะที่ได้ลงใน Input Data Table
3.PLC ทำการสแกนโปรแกรมที่ป้อนเข้ามาที่หน่วยความจำที่เป็น
User Program Area โดยทำการแปลชุดคำสั่งที่อยู่ในนั้น โดยจะปฏิบัติตามลอจิกแบบ
รั้งต่อรั้ง (Rung by Rung) ตามสถานะของระบบอินพุตและเอ้าท์พุตใน
Data Table
4.ผลลัพธ์ที่ได้จากข้อ 3
จะถูกเก็บไว้ที่ Output
Data Table และ Storage Bit Table (ถ้ามีการใช้อินเทอร์นอล)
5.หลังจากที่ทำการสแกนโปรแกรมเสร็จ
โปรแกรมของระบบ (Executive
Program) จะทำการปรับปรุงค่าต่างๆและเก็บไปไว้ในตารางเอ้าท์พุต
6.ส่งคำสั่งออกทางโมดูลเอ้าท์พุตว่าจะให้
เปิด หรือ ปิด อุปกรณ์ที่ต่อกับ เอ้าท์พุตอินเตอร์เฟส
จากรูปที่
5.23 เราสามารถอธิบายการทำงานของ PLC ได้ดังต่อไปนี้
ขั้นตอนที่ 1 โปรเซสเซอร์จะทำการอ่านสถานะของอินพุตที่
10 เนื่องจากว่าอยู่ในสถานะปิด (OFF) จึงใส่ค่า 0 เข้าไปที่บิตที่ 10
ของ เวิร์ดที่ 0 ทำให้เอ้าท์พุตของ 0407 ยังคงปิด (OFF) อยู่
ขั้นตอนที่ 2
โปรเซสเซอร์จะทำการอ่านสถานะเปิด (ON) ของอินพุตที่ 10
จึงใส่ค่า 1 เข้าไปที่บิตที่ 10 ของเวิร์ดที่ 0 แต่ในตอนนี้บิตที่ 7 ของเวิร์ดที่
04 ยังคงมีค่าเป็น 0 อยู่
ขั้นตอนที่ 3 ระหว่างปฏิบัติตามโปรแกรมที่ถูกบรรจุภายใน
User
Memory โปรแกรมของระบบจะใส่ค่า 1 เข้าไปที่บิต 07 ของเวิร์ด 04
ขั้นตอนที่ 4 เมื่อทำตามโปรแกรมที่ถูกบรรจุลงใน
User
Memory แล้ว โปรแกรมของระบบจะเปิด เอ้าท์พุตที่ 20 คือ
ซึ่งจะไปเปิดเอ้าท์พุตที่ตำแหน่งเวิร์ดที่ 04 บิตที่ 07 ของตารางเอ้าท์พุต
ดังนั้นหลอดไฟฟ้า ก็ สว่าง
ความคิดเห็น