Thread Content
สถานีบำบัดน้ำเสียของบริษัทใช้ PLC รุ่น Siemens PLC300 ในการสื่อสารกับ DCS เพื่อแสดงค่าต่างๆ มีพารามิเตอร์ความดันอยู่ที่ -0.1MPA ถึง -0.2MPA แต่ความดันจริงที่ใช้งานอยู่คือ -0.05MPA โดยหน้าจอ DCS จะแสดงค่าเป็น 0 ตลอดเวลา เมื่อตรวจสอบโปรแกรมการตั้งค่าของ PLC พบว่าค่าที่วัดได้จะถูกคูณด้วย 10 ก่อน แล้วจึงแสดงค่าเป็น -0.5 จากนั้นจึงนำค่านั้นไปประมวลผลด้วย TRUNC เพื่อให้ได้ค่าเป็นจำนวนเต็ม ซึ่งก็จะได้ค่า 0 ดังนั้นจึงมีการคูณค่าที่วัดได้ด้วย 100 แทน แล้วจึงแสดงค่าเป็น -5 แต่เมื่อส่งค่านี้ไปยัง DCS กลับแสดงค่าเป็น 65535 ทำไมกัน? มีใครรู้บ้างไหม
65535 ดูเหมือนว่าค่านี้จะมากเกินไปนะ ในเมื่อมันเป็น TRUC ไปแล้ว ก็น่าจะเป็นชนิดข้อมูลจำนวนเต็ม 16 บิตสิ แล้ว DW นี่มันยังไงกันล่ะ? ควรจะส่งภาพหน้าจอของโปรแกรมมาด้วยจะดีที่สุดครับ.
นี่คือการส่งค่า 300 ไปยัง DCS โดยเพื่อให้การส่งค่าที่เป็นลบทำได้ง่ายขึ้น จึงใช้ค่า -0.1MPA ถึง -0.2MPA ซึ่งควรคูณด้วย 10,000 เพื่อให้ค่าอยู่ในช่วง -1000 ถึง +2000 จากนั้นบวก 1,000 เข้าไปอีก เพื่อให้ค่าอยู่ในช่วง 0 ถึง 3,000 จากนั้นจึงแปลงตัวแปรแบบ real เป็นแบบ dint และควรแปลงเป็นแบบ int อีกที ก่อนจะส่งข้อมูลไปยัง DCS แล้วค่อยแปลงค่ากลับมาอีกครั้ง
แบบนี้ หากส่งค่าดิบจาก PLC AI มา แล้วนำไปทำการแปลงใน DCS อีกที จะดีกว่า!
น่าจะเป็นเพราะข้อมูลมีปริมาณมากเกินไป แต่ไม่แน่ใจว่าทำไมถึงเป็นเช่นนั้น
นั่นก็เป็นวิธีหนึ่งนะ ไว้ค่อยไปแก้ไขดูกันตอนนั้นแล้วกัน
แบบนั้นก็ยังต้องดึงสายอยู่ดี ค่อนข้างยุ่งยาก.
คุณก็เป็นผู้สื่อสารมาตั้งแต่แรกอยู่แล้วไม่ใช่เหรอ นี่ก็ถือเป็นการสื่อสารเหมือนกัน แค่เป็นการส่งค่าเริ่มต้นของ AI ไปเท่านั้น ไม่จำเป็นต้องใช้สายเชื่อมต่อเลย
หมายความว่าจะส่งค่าที่ป้อนเข้าไปใน AI (ค่าระหว่าง 0-27648) ไปโดยตรงเลยเหรอ?
ใช่ ควรแปลงค่าตามช่วงการวัดอีกครั้ง