รู้จัก Scan cycle
การที่ CPU ทำงานเป็นรอบ scan cycle ก็เพื่อให้เกิดความมั่นคงของการดำเนินการโปรแกรม และป้องกันการเปลี่ยนสถานะอย่างรวดเร็วของขาเอาท์พุต ที่อาจจะมีเปลี่ยนแปลงรวดเร็วและหลายครั้งในทุกรอบ scan cycleในรอบ scan cycle จะประกอบด้วย ขั้นตอน การอ่านสถานะจากขาอินพุต การดำเนินการประมวลผลโปรแกรมคำสั่ง และการดำเนินการบำรุงรักษาระบบ ภายใต้เงื่อนไขปกติทุกดิจิตอลและแอนาล็อกอินพุต/เอาท์พุต จะใช้พื้นที่หน่วยความจำภายในที่เรียกว่า โปรเซสอิมเมจ(process image) ซึ่งใช้บันทึกค่าสถานะจากขาอินพุตและเอาท์พุต เรียกว่า หน่วยความจำอินพุต(I memory) และ หน่วยความจำเอาท์พุต (Q memory)
โหมด Startup
A หน่วยความจำอินพุต(I memory) ถูกเคลียร์
B เอาต์พุตทำงานด้วยค่าสุดท้าย
C ลอจิกสตาร์ทอัพ(บรรจุไปด้วยบล็อกคำสั่งพิเศษ) ทำงาน
D สถานะของขาอินพุต ถูกคัดลอกไปที่หน่วยความจำอินพุต (I memory)
E เหตุการณ์อินเตอรัพท์ (interrupt events) ถูกจัดคิวสำหรับประมวผลในช่วง RUN mode
F การเขียนสถานะในหน่วยความจำเอาท์พุต (Q memory) ไปที่ขาเอาท์พุตถูกเปิดใช้งาน
โหมด Run
① สถานะในหน่วยความจำเอาท์พุต (Q memory) ถูกเขียนไปที่ขาเอาท์พุต
② สถานะของขาอินพุต ถูกคัดลอกไปที่หน่วยความจำอินพุต (I memory)
③ โปรแกรมดำเนินการประมวลผล
④ ดำเนินการ การเทสตัวเอง RUN mode
⑤ อินเตอรัพท์(Interrupts) ดำเนินการอยู่ตลอดช่วงของ scan cycle
CPU รุ่น S7-1200 จะไม่มีสวิตช์สำหรับเปลี่ยนโหมดการทำงาน (STOP หรือ RUN) เมื่อผู้ใช้กำหนดค่า(คอนฟิก) CPU ในหน้าต่าง device configuration ผู้ใช้สามารถกำหนดรูปแบบการสตาร์อัพใน properties ของ CPU ในซอฟแวร์ The STEP 7 Basic จะมีหน้าต่างสำหรับเปลี่ยนโหมดการทำงานด้วยการ Online CPU
สีของสถานะ RUN/STOP แสดงสถานะโหมดการทำงานของ CPU ณ ขณะนั้น
สีเหลือง : อยู่ในโหมด STOP
สีเขียว : อยู่ในโหมด RUN
ไฟกระพริบ : โหมด STARTUP
การเก็บข้อมูลดิจิดอลใน bits, bytes, words, Double word
หน่วยข้อมูลที่เล็กที่สุดของระบบดิจิตอลที่เรารู้จักกันดีคือ บิต(bit) ในหนึ่งบิตจะบรรจุตัวเลข 1 หลัก ที่เป็นได้เพียง 2 ค่า คือ 0 และ 1 (เรียกว่าเลขฐานสอง) เลข 0 แทนสถานะลอจิกเท็จ(false หรือ not true) และเลข 1 แทนสถานะจริง(true) ตัวอย่างที่เห็นง่ายๆ ของระบบเลขฐาน 2 คือ สวิตช์ไฟที่มีเพียง 2 สถานะคือ สถานะเปิดและสถานะปิด ค่าดิจิตอลคือคำตอบของลอจิก "สวิตช์ On อยู่หรือเปล่า?" ถ้าสวิตช์ on ("จริง") แทนค่าด้วย 1 ถ้าสวิตช์ off ("ไม่จริง") แทนค่าด้วย 0CPU จัดการจัด bits ข้อมูลรวมเป็นกลุ่ม กลุ่มละ 8 บิต เราจะเรียกว่า ไบต์(Bite) ทุกบิตในไบต์จะได้รับการกำหนดแอดเดรสโดยเฉพาะของมันเอง โดยจะมีไบต์แอดเดรสและบิตแอดเดรสตั้งแต่ 0 to 7.
กลุ่มข้อมูล 2 ไบต์จะถูกเรียกว่า เวิร์ด(word) และ 2 เวิร์ด เราจะเรียกว่า ดับเบิ้ลเวิร์ด (double word) ซึ่งมี 4 ไบต์
ชึ่ง CPU จะใช้ระบบเลขฐานสองสำหรับการคำนวน 1 เวิร์ด สามารถแทนค่า จำนวนเต็มได้ตั้งแต่ -32768 to +32767 โดยบิตที่ 15 จะใช้ในการบอกเครื่องหมายของตัวเลข บิตที่ 15 มีค่าเป็น 1 แสดงว่าค่าของเวิร์ดนี้มีค่าเป็นลบ
ชนิดข้อมูลที่ใช้ได้กับ S7-1200
ชนิดข้อมูลไม่ใช่แค่ระบุขนาดของข้อมูลเท่านั้น แต่ยังหมายถึงรูปแบบที่แตกต่างกันของข้อมูลแต่ละชนิดด้วย โดย CPU รุ่น S7-1200 จะรองรับชนิดข้อมูลต่างๆ ดังนี้Note ข้อมูลชนิด DTL เป็นโครงสร้าง 12 ไบท์ที่บันทึกข้อมูล วัน เดือน ปี และเวลา ผู้ใช้สามารถกำหนด DTL ในหน่วยความจำชั่วคราว(Temp memory ) ของทั้ง Program block และใน Data block
พื้นที่หน่วยความจำของ S7-1200
Note การใช้ symbolic addresses แทน absolute addressesซอฟท์แวร์ STEP7 ช่วยอำนวยความสะดวกในการเขียนโปรแกรมเชิงสัญลักษณ์(symbolic programming) ผู้ใช้สามารถสร้างชื่อของสัญลักณ์ (symbolic names) หรือที่เราเรียกว่า tag
I (Process image input )
CPU จะคัดลอกสถานะของขาอินพุตไปยัง I memory ในตอนเริ่มต้นของ scan cycle หากต้องการเข้าถึงแบบทันที หรือ force ขาอินพุต ให้ต่อท้ายแท็กหรือแอดเดรสด้วย ":P" (เช่น "Start:P" หรือ I0.3:P)
Q (Process image output)
CPU จะคัดลอกสถานะของ Q memory ขาอินพุตไปยังขาเอาท์พุต ในตอนเริ่มต้นของ scan cycle หากต้องการเข้าถึงแบบทันที หรือ force ขาอินพุต ให้ต่อท้ายแท็กหรือแอดเดรสด้วย ":P" (เช่น "Stop:P" หรือ Q0.3:P)
M (Bit memory)
user program อ่านและเขียนข้อมูลที่เก็บอยู่ใน M memory หลายโค๊ดบล็อกสามารถเข้าถึง M memory ผู้ใช้สามารถกำหนดให้แอดเดรสภายใน M memory รักษาค่าไว้หากไม่มีไฟจ่ายได้ด้วย
L "Temp" memory
เมื่อใดก็ตามที่โค๊ดบล็อกถูกเรียกใช้งาน CPU จะจัดสรรหน่วยความจำชั่วคราวหรือโลคอล Local memory (L) จะถูกใช้ระหว่างการทำงานของโค๊ดบลอค เมื่อโค๊ดบล็อคนั้นๆ ทำงานเสร็จ CPU ก็จะจัดสรรคืนหน่วยความจำส่วนนี้ไปใช้ที่โค๊ดบล็อคอื่น
DB Data block
DB Data หรือ DB memory มีไว้สำหรับจัดเก็บหลายชิดข้อมูล รวมถึงสถานะที่เป็นสื่อกลางของการดำเนินการ หรือพารามิเตอร์การควบคุมอื่น ๆ สำหรับฟังชันก์บล็อค(FB) และโครงสร้างข้อมูลที่หลายคำสั่งต้องใช้ เช่น timers และ counters ผู้ใช้สามารถกำหนด data block ให้เป็นได้ทั้ง read/write หรือ read อย่างเดียว และสามารถเข้าถึงหน่วยความจำ data block ทั้งบิต ไบต์ เวิร์ด และดับเบิ้ลเวิร์ด
Note ไม่ว่าจะใช้แท็ก เช่น"Start" or "Stop" หรือ แอดเดรสจริง(absolute address) เช่น "I0.3" or "Q1.7" การอ้างอิงถึงอินพุต (I) หรือเอาท์พุต (Q) การเข้าถึงหน่วยความจำก็เป็นการเข้าถึงที่โปรเซสอิมเมจ ไม่ใช่ขาอินพุตและเอาท์พุตโดยตรง หากต้องการเข้าถึงแบบทันที หรือ force ขาอินพุต ให้ต่อท้ายแท็กหรือแอดเดรสด้วย ":P" (เช่น "Stop:P" หรือ Q0.3:P)