การใช้งาน Analog Input/Output

การใช้งาน Analog Input/Output

ปกติ S7-1200 จะมี Analog Input 2 channel ติดมาให้อยู่แล้ว แต่เราก็สามารถเลือกโมดูล analog มาติดเพิ่มอีกก็ได้ โดยการอ่านค่าจาก analog input หรือส่งค่าออกไปยัง analog output นั้นสามารถทำได้ง่ายมาก เพราะ S7-1200 ระบุ analog input เป็น %IWxx และ analog output เป็น %QWxx ซึ่งสามารถนำมาใช้งานตรงๆได้เลย

วิธีการดู address ของ Analog Input / Analog Output

ตัวอย่างนี้ เราทำการเพิ่มโมดูล AI4/AQ2 คือมี analog input 4 channel และ analog output 2 channel  เมื่อเราเลือกที่ตัว analog module แล้วไปที่ Properties -> IO tags เราจะเห็นได้ทันทีว่า %IW และ %QW ตัวไหนถูกกำหนดให้เราใช้งานได้Analog_01.png

ตัวอย่างนี้เราจะเห็นได้ว่า %IW96, %IW98, %IW100 และ %IW102 เป็น address เพื่อใช้งาน analog input ทั้ง 4 channel

ส่วน %QW96 กับ %QW98 เป็น address เพื่อใช้งาน analog output ทั้ง 2 channel

สำหรับ analog input นั้น เราสามารถอ่านค่าจาก %IW96 – %IW102 ได้โดยตรงและนำไปใช้งานในโปรแกรมได้เลย ส่วน analog output ก็เช่นเดียวกัน เราสามารถสั่งค่าไปยัง %QW96 – %QW98 เพื่อส่งค่าออกไปยัง analog output ได้ทันที

สิ่งที่ต้องรู้เกี่ยวกับการอ่าน/เขียนค่าให้ analog

การอ่านและเขียนค่าให้ analog input/output ของทาง Siemens นั้นมีความแตกต่างจากยี่ห้ออื่นๆบ้างก็ตรงที่

  • ไม่ว่า resolution ของ analog จะเป็นเท่าไหร่ก็ตาม ค่า maximum ของ analog จะอยู่ที่ 27648 เสมอทั้งการใช้งาน analog input และ analog output
    • ตัวอย่างเช่น ถ้าเราใช้งาน analog input 0-10V นั่นหมายความว่าเมื่อ analog input เป็น 0V ค่า %IWxx จะอ่านได้ 0 และุถ้าanalog input เป็น 10V ค่า %IWxx จะอ่านได้ 27648 เป็นต้น
    • หรือสมมติว่าเราใช้งาน analog output 4-20mA นั่นหมายความว่าหากค่าจาก %QWxx เป็น 0 ค่าจริงๆที่ออกไปยัง analog output จะเท่ากับ 4mA และถ้าค่าจาก %QWxx เป็น 27648 ค่าจริงๆที่ออกไปยัง analog output จะเท่ากับ 20mA เป็นต้น
  • ดังนั้นตัวเลข 27648 เป็นตัวเลขที่ต้องจำให้ขึ้นใจเมื่อใช้งาน Analog ของ Siemens
  • ส่วนค่าอื่นๆที่เกิน 27648 นั้น เป็นค่าที่เผื่อเอาไว้สำหรับกรณี Overrange/Underrange และ Overflow/Underflow ซึ่งสามารถดูช่วงของค่าต่างๆได้ดังรูป
Analog_02.png
ลักษณะการทำงานของ Analog
Analog_03
ลักษณะการทำงานของช่วง Analog Output

 

การอ่านค่าจาก Analog Input

การอ่านค่าจาก Analog Input นั้น เราสามารถอ่านจาก %IWxx ได้ตรงๆเลย แต่ค่าที่อ่านได้ก็จะเป็นค่าตั้งแต่ 0-27648 ซึ่งนำไปใช้งานต่อไม่ได้ ดังนั้นเราจึงต้องแปลงค่านี้ให้เป็นค่าของช่วงที่เราเข้าใจได้โดยใช้คำสั่ง NORM_X และ SCALE_X คู่กัน

โดยคำสั่ง NORM_X จะแปลงค่าที่เข้ามาตั้งแต่ 0-27648 ให้เป็นค่าที่อยู่ระหว่าง 0-1.0
และคำสั่ง SCALE_X จะแปลงค่าตั้งแต่ 0-1.0 ให้เป็นค่าของช่วงที่เราต้องการอีกที

Analog_05             Analog_06

เมื่อนำ  NORM_X และ SCALE_X มาใช้คู่กัน เราก็จะได้ค่าที่ออกมาเป็นช่วงของค่า Analog Input จริงๆเช่นดังตัวอย่างด้านล่างนี้

ตัวอย่าง: สมมติว่าสัญญาณ Analog Input 0-10V นั้นหมายถึงค่าอุณหภูมิ 100-200 องศา จะมีวิธีการทำดังนี้

Analog_04.png
ตัวอย่างการรับค่าจาก Analog Input

การเขียนค่าไปยัง Analog Output

การส่งค่าไปยังจาก Analog Output นั้น มีหลักการคล้ายการใช้งาน Analog Input คือเราสามารถเขียนค่าไปยัง %QWxx ได้ตรงๆเลย แต่ค่าที่สามารถเขียนลงไปได้ก็จะเป็นค่าตั้งแต่ 0-27648 ดังนั้นเราจึงต้องเแปลงค่าที่ต้องการส่งไปนั้น ให้เป็นค่าที่อยู่ระหว่าง 0-27648 เสียก่อนโดยใช้คำสั่ง NORM_X และ SCALE_X เช่นเดียวัน

ตัวอย่าง: สมมติว่าอุณหภูมิจริง 100-200 องศา ต้องการให้ถูกแปลงเป็นสัญญาณ Analog Output 0-10Vจะมีวิธีการทำดังนี้

Analog_07.png
ตัวอย่างการส่งค่าออก Analog Output

 

 

 

 

 

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s