หน้าแรกคู่มือPLCเทคนิคขั้นสูงสูตรเลขยกกำลังใน PLC - วิธีคำนวณและสร้าง Function Block

บทที่ 5 จาก 17 ใน เทคนิคขั้นสูง

PLCปานกลาง · Intermediate3 นาที

สูตรเลขยกกำลังใน PLC - วิธีคำนวณและสร้าง Function Block

คำนวณสูตรยกกำลังสิบ P = 10^((U−C)/1.286) ของเซนเซอร์แรงดันใน SamSoar2022 ด้วย Function Block ภาษา C ที่ใช้ pow() แล้วเรียกจาก Ladder ด้วยคำสั่ง CALLM

PLC Samkoon คำนวณเลขยกกำลังได้ ทั้งด้วยคำสั่ง POW ในหมวด Float Calculation หรือเขียน Function Block ภาษา C ที่ใช้ pow() ซึ่งเขียนสูตรยาวๆ ได้ง่ายกว่า แล้วเรียกใช้จาก Ladder ด้วยคำสั่ง CALLM

อัพเดทล่าสุด: 26 ตุลาคม 2569

โจทย์จากลูกค้า

ลูกค้าถามว่า PLC มีสูตรเลขยกกำลังสิบไหม จะเอามาเข้าสูตรของเซนเซอร์แรงดัน ซึ่งเอกสารของเซนเซอร์ให้ความสัมพันธ์ระหว่างแรงดันไฟฟ้ากับแรงดัน (Pressure) ไว้ว่า

P = 10^((U - C) / 1.286)
  • P = Pressure
  • U = Voltage (V) ที่เซนเซอร์ส่งออกมา
  • C = ค่าคงที่ ขึ้นกับหน่วยของ Pressure ตามตารางในเอกสาร: Pa = 3.572, mBar = 6.143, Torr = 6.304

ต้องหาค่า (U − C) / 1.286 ก่อน แล้วจึงยก 10 กำลังค่านั้นได้เป็นค่า Pressure

ทำได้ 2 ทาง

  • ใช้คำสั่งในหมวด Float Calculation ซึ่งมี POW Power อยู่
  • เขียน Function Block ซึ่งในคลิปมองว่าง่ายกว่าสำหรับสูตรแบบนี้

ขั้นตอนเขียน Function Block

1. เพิ่ม Function Block

ใน Project Tree คลิกขวาที่ Funcblock แล้วเลือก Add เพื่อเพิ่ม Function Block (ในคลิปเป็นไฟล์ชื่อ Exponential)

2. เขียนฟังก์ชัน FindP

สร้างฟังก์ชันชื่อ FindP (หาค่า P) มี 3 Input คือ u, c, p ทั้งหมดเป็น FLOAT แล้วเขียนสูตรด้วย pow() ซึ่งเป็นฟังก์ชันในภาษา C สำหรับเลขยกกำลัง

void FindP(FLOAT u, FLOAT c, FLOAT p)
{
    *p = pow(10, (*u - *c) / 1.286);
}

3. เรียกใช้จาก Ladder

  • ใช้คำสั่ง CALLM เรียก Function Block FindP แล้วระบุ 3 ค่า: u มาจาก D0, c มาจาก D2 และคำตอบ p ออกที่ D4
  • ค่าที่ต้อง Initialize ใช้ M8151 (ON ตลอดขณะ PLC ทำงาน) ในคลิปตั้งค่า C ที่ D2 เป็น 6.143 ตามค่าที่ลูกค้าให้มา ค่าที่เปลี่ยนจริงๆ จึงมีแค่ D0 ส่วน D2 ไม่ต้องเปลี่ยน
เรียก FindP ด้วย CALLM
u = D0, c = D2, p = D4 (FLOAT ทั้งหมด)
N0
ตั้งค่าคงที่ C = 6.143 ที่ D2
M8151MOVFK6.143, D2
M0 ON → คำนวณ P = 10^((U - C) / 1.286) เก็บที่ D4
M0CALLMFindP, D0, D2, D4
นำเข้าไฟล์ใน SamSoar2022: File → Import → เลือกไฟล์ .csv

ทดสอบด้วย Simulation

สั่ง Simulate แล้วให้ CALLM ทำงาน ใน Monitor อย่าลืมเปลี่ยน Data Type ของ D0, D2, D4 เป็น FLOAT

D0 (U)D2 (C)D4 (P)
06.1430.000017
56.1430.129181
106.143998.210876
206.1435.960354E+10

ค่า P เปลี่ยนเยอะมากเพราะเป็นเลขยกกำลัง แต่วิธีนี้คำนวณส่วนยกกำลังได้ถูกต้อง

บทถัดไป

การใช้งาน Index และ Offset ใน PLC HMI - Data Sampling

12 นาทีปานกลาง · Intermediate