วิธีการทำให้กระบวนการอุตสาหกรรมเป็นอัตโนมัติด้วย Python และข้อมูลจาก PLC

ในระบบอัตโนมัติอุตสาหกรรมสมัยใหม่ PLC (Programmable Logic Controller) เป็นที่นิยมใช้กันอย่างแพร่หลายเพื่อควบคุมและเฝ้าระวังกระบวนการผลิต อย่างไรก็ตาม การรวมข้อมูลจาก PLC เข้ากับ Python สามารถเพิ่มประสิทธิภาพ ช่วยให้มีการบำรุงรักษาเชิงพยากรณ์ และเพิ่มประสิทธิภาพของกระบวนการทำงานได้

บทความนี้จะอธิบายถึง วิธีใช้ Python เพื่อทำให้กระบวนการอุตสาหกรรมเป็นอัตโนมัติ โดยการอ่าน วิเคราะห์ และดำเนินการตามข้อมูลจาก PLC


ภาพรวมของกระบวนการทำงาน

แผนภาพต่อไปนี้แสดงให้เห็นถึงกระบวนการทำงานของระบบอัตโนมัติ:

flowchart TD;
    A["เชื่อมต่อกับ PLC"] -->|Modbus/OPC UA| B["อ่านข้อมูลจาก PLC"];
    B --> C["วิเคราะห์ข้อมูล"];
    C -->|"แจ้งเตือน"| D["ส่งการแจ้งเตือน"];
    C -->|"ปรับแต่งค่าการทำงาน"| E["เขียนค่ากลับไปยัง PLC"];
    C -->|"บันทึกข้อมูล"| F["จัดเก็บลงฐานข้อมูล"];
    F --> G["แสดงผลข้อมูล"];
    G --> H["สร้างรายงาน"];
    D --> I["ตรวจสอบระยะไกล"];
    E --> I;
    H --> I;

ขั้นตอนที่ 1: การเชื่อมต่อ Python กับระบบ PLC

ตัวเลือกที่ 1: ใช้ Modbus สำหรับการสื่อสารกับ PLC

PLC หลายรุ่นรองรับ Modbus (TCP/RTU) สำหรับการรับส่งข้อมูล Python สามารถใช้ไลบรารี pymodbus เพื่ออ่านและเขียนข้อมูลจาก PLC ได้

from pymodbus.client.sync import ModbusTcpClient

# เชื่อมต่อกับ PLC
client = ModbusTcpClient('192.168.1.10', port=502)
client.connect()

# อ่านค่าจากรีจิสเตอร์ 100
response = client.read_holding_registers(100, count=1, unit=1)
print("ค่าจาก PLC:", response.registers[0])

client.close()

ตัวเลือกที่ 2: ใช้ OPC UA สำหรับการรวมระบบ PLC ที่ซับซ้อน

OPC UA เป็นมาตรฐานสำหรับการเชื่อมต่อในอุตสาหกรรม Python สามารถใช้ไลบรารี opcua เพื่อดึงข้อมูลจาก PLC ได้

from opcua import Client

client = Client("opc.tcp://192.168.1.20:4840")
client.connect()

# อ่านค่าจากเซ็นเซอร์ใน PLC
node = client.get_node("ns=2;s=TemperatureSensor")
value = node.get_value()
print("อุณหภูมิ:", value)

client.disconnect()

ขั้นตอนที่ 2: การตอบสนองอัตโนมัติตามข้อมูลจาก PLC

เมื่อได้รับข้อมูลแล้ว Python สามารถวิเคราะห์และดำเนินการตอบสนองอัตโนมัติ เช่น การแจ้งเตือน การปรับแต่งค่าเครื่องจักร หรือการเพิ่มประสิทธิภาพของกระบวนการ

ตัวอย่าง: ส่งการแจ้งเตือนเมื่ออุณหภูมิสูงเกินกำหนด

threshold_temp = 80  # ตั้งค่าอุณหภูมิสูงสุด

if value > threshold_temp:
    print(f"⚠️ แจ้งเตือน: ตรวจพบอุณหภูมิสูง ({value}°C)")
    # ส่งอีเมลหรือเปิดระบบระบายความร้อน

ตัวอย่าง: ปรับแต่งค่าการทำงานของ PLC อัตโนมัติ

Python สามารถเขียนค่ากลับไปยัง PLC เพื่อปรับปรุงกระบวนการอัตโนมัติ

new_setpoint = 50  # ปรับค่าพารามิเตอร์
client.write_register(200, new_setpoint, unit=1)  # เขียนค่าไปยังรีจิสเตอร์ 200

ขั้นตอนที่ 3: การแสดงผลและบันทึกข้อมูลจาก PLC

1. แสดงข้อมูลแบบเรียลไทม์ด้วย Matplotlib

import matplotlib.pyplot as plt
import time

temperatures = []
timestamps = []

for _ in range(10):  # เก็บข้อมูล 10 ค่า
    value = node.get_value()
    temperatures.append(value)
    timestamps.append(time.strftime('%H:%M:%S'))
    time.sleep(2)  # อ่านค่าทุก ๆ 2 วินาที

plt.plot(timestamps, temperatures, marker='o')
plt.xlabel('เวลา')
plt.ylabel('อุณหภูมิ (°C)')
plt.title('ข้อมูลอุณหภูมิจาก PLC')
plt.show()

2. จัดเก็บข้อมูล PLC ลงฐานข้อมูลเพื่อใช้ในอนาคต

import pymysql

conn = pymysql.connect(host='localhost', user='root', password='password', database='plc_data')
cursor = conn.cursor()

# บันทึกข้อมูลอุณหภูมิลงฐานข้อมูล
sql = "INSERT INTO sensor_logs (timestamp, temperature) VALUES (NOW(), %s)"
cursor.execute(sql, (value,))
conn.commit()
conn.close()

ขั้นตอนที่ 4: ทำให้การประมวลผลข้อมูล PLC เป็นอัตโนมัติ

สามารถใช้ไลบรารี schedule เพื่อตั้งเวลาทำงานอัตโนมัติ เช่น การเก็บข้อมูลหรือการแจ้งเตือน

import schedule

def check_temperature():
    value = node.get_value()
    print("กำลังตรวจสอบอุณหภูมิ:", value)
    if value > threshold_temp:
        print("⚠️ อุณหภูมิสูงผิดปกติ!")

schedule.every(10).seconds.do(check_temperature)  # ทำงานทุก 10 วินาที

while True:
    schedule.run_pending()

สรุป

การรวม Python กับข้อมูลจาก PLC สามารถช่วยทำให้กระบวนการผลิต อัตโนมัติ, มีประสิทธิภาพ และสามารถติดตามได้แบบเรียลไทม์

เชื่อมต่อ Python กับ PLC ด้วย Modbus และ OPC UA
แจ้งเตือนและปรับแต่งค่าเครื่องจักรโดยอัตโนมัติ
แสดงผลข้อมูลจาก PLC แบบเรียลไทม์
บันทึกข้อมูลลงฐานข้อมูลเพื่อการวิเคราะห์ในอนาคต
รวม Python กับระบบ IoT และหุ่นยนต์

🚀 เริ่มต้นทำให้กระบวนการอุตสาหกรรมของคุณเป็นอัตโนมัติด้วย Python และ PLC วันนี้!

Related Posts

Articles

Our Products


Related Posts

Articles

Our Products


Get in Touch with us

Speak to Us or Whatsapp(+66) 83001 0222

Chat with Us on LINEiiitum1984

Our HeadquartersChanthaburi, Thailand