การควบคุมแบบ pid โดยใช้ plc

การใช้งาน PID บน TIA Portal นั้น เป็นการใช้งานด้วย Technology objects ซึ่งช่วยให้การตั้งค่าต่างๆทำได้รวดเร็วและง่ายยิ่งขึ้นเพราะแม้กระทั่งการทำ Tuning ก็แสดงผลด้วยกราฟ ทำให้เรามองผลของ process ได้ชัดเจนยิ่งขึ้น

โดยตัวอย่างนี้เราจะทำตัวอย่างชุด demo เพื่อใช้งาน PID อย่างง่ายๆ ซึ่งทำให้เรามองเห็นภาพการใช้งาน PID ได้ง่ายยิ่งขึ้นด้วย

ตัวอย่างชุด demo นี้ เราจะใช้ตัวต้านทาน 560 โอห์มต่อที่ขา %Q0.7 แล้วเราจะใช้ PID มาสั่ง %Q0.7 เป็นแบบ PWM เพื่อจ่ายไฟให้กับตัวต้านทานนี้ ซึ่งก็จะทำให้อุณหภูมิของตัวต้านทานสูงขึ้นนั่นเอง  จากนั้นเราจะใช้ Thermocouple ต่อที่ module SM1231 เพื่อวัดอุณหภูมิบนตัวความต้านทานโดยตรงเลย (Thermocouple ที่ใช้เป็นแบบ spot welding จึงใช้เทปแปะติดที่ตัวต้านทานได้เลย)

จากนั้นเราจะทำการตั้งค่า SM1231 เพื่อตั้งค่าชนิดของ Thermocouple ที่ใช้ได้ถูกต้องว่าเป็นชนิดใด

กรณีนี้เราใช้ Thermocouple type K ที่ Channel2

ทำการตั้งชื่อ tag ให้กับ Channel2 ของ SM1231

ทำการตั้งชื่อ tag ให้กับ %Q0.7 ที่เราจะใช้ PID มาสั่งให้ทำงานแบบ PWM

การทำโปรแกรม

1. ทำการ Add new block เพื่อสร้าง Cyclic interrupt ขึ้นมา กรณีนี้เราจะตั้งค่าให้ทำงานทุกๆ 200ms

2. สร้าง block PID_Compact มาไว้ยัง Cyclic interrupt ที่เราได้สร้างขึ้นมา

3. ใส่ขาสัญญาณที่จำเป็นต้องใช้ คือ Setpoint, Input และ Output

โดย

  • Setpoint : เป็นค่าแบบ Real
  • Input     : เป็นค่าแบบ Real คือใช้ค่า engineering จริงๆ
  • Input_PER : เป็นค่าแบบ Word หรือก็คือค่าข้อมูลดิบที่วัดได้จากสัญญาณ analog โดยตรง
  • Output : เป็นค่าแบบ Real คือใช้ค่า engineering จริงๆ
  • Output_PER : เป็นค่าแบบ Word หรือก็คือค่าข้อมูลดิบที่ออกมาจากช่องสัญญาณ analog โดยตรง
  • Output_PWM : เป็นค่าแบบ Boolean เพื่อส่ง pulse แบบ PWM

ดังนั้นในกรณีของเรา เราใช้ Thermocouple ต่อผ่าน SM1231 เพื่อรับค่าอุณหภูมิเข้ามา ดังนั้นค่าที่ได้จะเป็นค่าแท้ของ analog (การรับค่า Thermocouple ถือเป็น analog แบบหนึ่ง ซึ่งที่ค่าเท่าไหร่บ้างต้องเปิดจาก manual ว่าใช้ Thermocouple ชนิดใด) เราจึงนำสัญญาณนี้มาเข้าที่ขา Input_PER

ส่วนฝั่ง Output เราต้องการใช้ PWM จึงเอา tag ของ %Q0.7 ไปใส่ในขา Output_PWM

ส่วน Setpoint นั้น เป็นค่าที่เราต้องใส่เองอยู่แล้ว เนื่องจากข้อมูลเป็น Real เราสามารถใส่ค่า engineering ได้เลย

4. สังเกตว่าเมื่อเราได้วางคำสั่ง PID_Compact แล้ว Technology objects ของ PID จะถูกสร้างให้อัตโนมัติ

5. ตั้งค่า PID Configuration โดยเริ่มจาก Controller type ก่อนคือ เลือกว่าต้องใช้หน่วยใดในการวัดค่าต่างๆ กรณีนี้เลือกเป็น Temperature เพราะต้องต้องการวัดอุณหภูมิ และ Set Mode to Automatic mode หากมีการ restart CPU

6. เลือกรูปแบบการใช้งาน Input และ Output ให้สอดคล้องกับที่เราใช้ใน block PID_Compact

7. ตั้งค่า Process value limits ว่าให้ค่าอุณหภูมิควรวิ่งอยู่ในช่วงไหน

8. ตั้ง Process value scaling เพื่อบอกความสัมพันธ์ของค่าข้อมูลดิบจาก analog input นั้นถูกแปลงไปเป็นค่าฝั่ง engineering อย่างไร  (เนื่องจากเราใช้ Thermocouple type K จาก manual บอกว่าจะสามารถวัดอุณหภูมิได้ที่ -270 ∼1372ºC โดยมีค่า analog ระหว่าง -2700 ∼ 13720)

9. ปกติ Process value monitoring กับ PWM limits เราไม่ค่อยได้แก้ไขอยู่แล้ว

10. ตั้งค่า Output value limits ว่าต้องการใช้ PWM ออกได้มากสุดน้อยสุดเท่าไหร่

11. ในส่วนของ PID Parameters ยังไม่ต้องทำอะไรตอนนี้

การทำ Tuning

1. ที่ Commissioning ในส่วน PID_Compact ของ Technology objects ให้เราทำการ online และ Start Sampling time ของ PID  จะทำให้ตัวกราฟวิ่งเพื่อ update ค่าตามเวลา Sampling time ที่กำหนด

2. ให้ทดสอบการทำงานของ PID ด้วยการเปลี่ยนเป็น Manual mode ก่อน

3. จากนั้นลองใส่ค่า Output แล้วกดปุ่มรูปสายฟ้า เพื่อบังคับค่า Output ออกมา (แนะนำให้ลองใส่ค่า Output น้อยๆดูก่อนว่า PID สามารถทำงานได้ถูกต้องหรือไม่)

4. ใส่ค่า Setpoint จากโปรแกรมที่เราได้สร้างไว้ เพื่อเตรียมทำ Pretuning

การทำ Pretuning นั้น ไม่ใช่ว่าจะใส่ค่า Setpoint อะไรก็ได้แล้วจะสามารถทำ Pretuning ได้ การทำ Pretuning นั้นค่า Setpoint ต้องมีระยะห่างจากค่าอุณหภูมิปัจจุบันประมาณหนึ่ง โดยมีเงื่อนไขดังนี้

  • Setpoint – Process value  > 30% of (high limit – low limit process value)
  • Setpoint – Process value  > 50% of the setpoint

5. เราตั้ง Tuning mode เป็น Pretuning แล้วกดปุ่ม Start

6. เมื่อทำ Pretuning เสร็จแล้ว จะขึ้นสถานะว่า System tuned และเปลี่ยน Controller state เป็น Enabled – automatic mode

7. จากนั้นให้เราทำ Fine tuning ต่อเพื่อปรับ PID parameter แบบละเอียด และเมื่อ Fine tuning เสร็จแล้วจะขึ้นสถานะว่า System tuned และเปลี่ยน Controller state เป็น Enabled – automatic mode

8. สังเกตภาพการทำงานและความแตกต่างของการทำ Tuning แต่ละแบบ

9. ให้ทำการ Upload PID parameters จาก CPU ไปที่ตัว Project

10. กดปุ่ม Go to PID parameters


จะสังเกตได้ว่า PID parameter ที่เราได้มาจากการทำ Tuning แล้วโหลดมาที่ project เราจะยังแตกต่างจากการ online PLC จริง

11. ให้ download project ลง PLC อีกครั้ง

12. จะเห็นได้ว่า parameter ที่ project เราตรงกับการ online ใน PLC แล้ว

เพียงเท่านี้ เราเพียงแค่ทำการตั้งค่า Setpoint ที่ต้องการเท่านั้น PID ก็จะทำงานเพื่อ PWM ให้ทำงานให้ได้ค่าอุณหภูมิวิ่งไปยังค่า Setpoint ด้วย PID parameter ที่เราได้ทำการ Tuning แล้ว

เพิ่มเติม

หากเราตั้ง Setpoint ใกล้เคียงกับค่าอุณหภูมิปัจจุบันมากเกินไป เราจะไม่สามารถทำ Pretuning ได้โดยขึ้น Error ดังรูป (Error starting pretuning. The process value is too close to the setpoint.)

จะเห็นได้ว่าการตั้งค่า Setpoint ที่ 60ºC ในขณะที่อุณหภูมิปัจจุบันมีค่าประมาณ 32ºC จะไม่เข้าเงื่อนไข Pretuning ที่เราได้กล่าวไว้ก่อนหน้าคือ

  • Setpoint – Process value > 30% of (high limit – low limit)
    • 60 – 32 > 30% (120-0)
    • 28 > 36   ===========> ไม่เข้าเงื่อนไข
  • Setpoint – Process value > 50% of Setpoint
    • 60 – 32 > 50%(60)
    • 28 > 30   ===========> ไม่เข้าเงื่อนไข

Toplist

โพสต์ล่าสุด

แท็ก