วิธีการ Swap 16-bit หน้าหลัง
สลับ 16-bit หน้ากับ 16-bit หลังของข้อมูล 32-bit บนหน้าจอ HMI Samkoon ด้วย Script ใน SKTool สร้างตัวแปร LW0 และ LW100 แบบ 32-Bit Unsigned Int เขียน LW100 = SWAPW(LW0); แล้วตั้งให้ Global Script รันตลอด
ข้อมูล 32-bit ที่อ่านจากเซ็นเซอร์หรือ PLC อาจเรียง Word ไม่ตรงกับที่ต้องการ ให้ใช้ Script บนหน้าจอ เขียน LW100 = SWAPW(LW0); เพื่อสลับ 16-bit หน้ากับ 16-bit หลังของ LW0 ไปเก็บที่ LW100 แล้วตั้งใน Global Script ให้รันตลอด
อัพเดทล่าสุด: 26 ตุลาคม 2569
โจทย์
หน้าจอ HMI อ่านข้อมูลแบบ 32-bit หรือ Double Word มาจากอุปกรณ์อื่น เช่น เซ็นเซอร์หรือ PLC แต่ข้อมูลที่ส่งมาอาจไม่ได้เรียงแบบที่ต้องการ ถ้าต้องการสลับ 16-bit หน้ากับ 16-bit หลัง ต้องใช้การเขียน Script บนหน้าจอเป็นตัวช่วย
ในคลิปใช้หน้าจอ SK-070QS-G โดยมีหน้าจอแสดง Original Data และ Swap Data ทั้งแบบตัวเลขและแบบ Binary ให้เทียบกัน
ขั้นตอนที่ 1: สร้าง Script ใหม่
- ในแผง Project ของ SKTool เปิด Script > Script Editor
- กดสร้าง Script ใหม่ แล้วตั้งชื่อ ในคลิปตั้งชื่อว่า
Swap
ขั้นตอนที่ 2: สร้างตัวแปร
ในแท็บ Variable settings ด้านล่าง ดับเบิลคลิกเพื่อสร้างตัวแปร ชื่อตัวแปรตัวเล็กตัวใหญ่มีความสำคัญ ต้องใช้ให้ตรงกันในโค้ด
| Name | Data type | Address | หน้าที่ |
|---|---|---|---|
LW0 | 32-Bit Unsigned Int | LW0 | แหล่งที่มาของข้อมูล 32-bit |
LW100 | 32-Bit Unsigned Int | LW100 | ปลายทางที่เก็บค่าหลัง Swap |
ขั้นตอนที่ 3: เขียนคำสั่ง
ในบรรทัด //ToDo เขียนคำสั่ง (ภาษา C)
LW100 = SWAPW(LW0);
ในวงเล็บของ SWAPW ใส่ชื่อตัวแปรที่เป็นแหล่งที่มา ตรงกับชื่อที่ตั้งไว้ใน Variable settings อย่าลืมใส่ ; ปิดท้ายเพราะเป็นภาษา C จากนั้นกด Compile
ขั้นตอนที่ 4: ให้ Script รันตลอดด้วย Global Script
Global Script คือ Script ที่รันตลอด
- ดับเบิลคลิก Global Script แล้วกด New
- เลือก Script Name เป็น
Swapที่สร้างไว้ (ในคลิป Frequency เป็น 50 ms และไม่ได้ติ๊ก By Bit Control) - กด OK
เพียงเท่านี้เวลาที่หน้าจอทำงานอยู่ ก็จะรัน Script สลับข้อมูลให้เสมอ
บทถัดไป
ดูข้อมูล Datalog ย้อนหลังบนหน้าจอ HMI ด้วย Historic Trend และ Historical Data
มีคำถาม? ติดต่อทีมงาน
