GENESIS64 SCADA: สร้างWorkflowคุมการทำงานHardware/Data

รู้ไหมครับว่าเราใช้GENESIS SCADAคุมการทำงานของPLC/Controller/Database/Datasourceที่ต่ออยู่กับSCADAได้ ในGENESIS32ทำได้ผ่านUDM ในGENESIS64ทำได้ทั้งUDMและในฟีเจอร์ใหม่ที่เพิ่มเข้ามาคือWorkflowหน้าตาเป็นดังรูป ใช้แค่การลากเครื่องมือด้านซ้ายที่เป็นBlockเข้ามาในDiagramจากนั้นเข้าไปกำหนดพารามิเตอร์ในแต่ละBlockไม่ต้องเขียนโปรแกรม

image

ข้อดีคือสามารถทำงานเป็นWork flow คือรับอินพุต/เช็คเงื่อนไข/รอ/ไปขั้นตอนต่อไปได้ แทนที่จะเปรียบเทียบเงื่อนไขและได้ผลลัพธ์ออกไปสั่งการOutputทันทีอย่างUDM ดังนั้นถ้าต้องการการทำงานเป็นขั้นเป็นตอนให้ใช้Workflow

 

ผมจะยกตัวอย่างตัวอย่างWorkflowที่มีมาให้ในGENESIS64(ลองสร้างดูเองได้นะครับ) เมื่อเราเปิดโปรแกรมWorkbenchขึ้นมาจะพบกิ่งActions > Workflows > Configurations > ดับเบิ้ลคลิ้กเปิดSimple Loop Example

image

ถ้าต้องการแสดงเฉพาะDiagramของWorkflowให้คลิ้กลูกศรชี้ขึ้นข้างบนตามรูปล่าง พื้นที่Diagramจะขยายเต็มจอคอมพิวเตอร์

image

ถ้าต้องการกลับหน้าWorkbenchก็คลิ้กลูกศรชี้ลงimageตรงตำแหน่งด้านขวาบนของจอ

อธิบายตัวอย่าง

ในตัวอย่างนี้จะเป็นการอ่านค่าจากOPC tag(ซึ่งอาจเป็นสัญญาณจากPLC/Controllerที่เราใช้งาน)มาหนึ่งตัว ถ้าค่านี้น้อยกว่า100ก็ให้ทำการบวก1เพิ่มเข้าไปแล้วส่งค่าที่บวกแล้วไปที่OPC tagตัวเดิมนี้ แล้วรอ 500msecก่อนวนลูปทำเช่นเดิมนี้

Diagramจะเริ่มด้วยStartและสิ้นสุดที่Stopซึ่งจะข้ามไปไม่กล่าวถึง (เวลาเราสร้างDiagramก็จะมีBlock 2 ตัวนี้มาให้เลย)

Blockimageถูกลากมาวางและตั้งชื่อเป็น “ReadValue” และเรากำหนดOPC tagหรือData Sourceอื่นๆที่ต้องการอ่านค่าได้

image

สามารถกำหนดSampling RateของOPC tagหรือDataSourceที่อ่านเข้ามาได้ และมีData Schema (รูปแบบข้อมูล)เบื้องต้นเริ่มจากPoint name, Value, Quality, Timestamp เพื่อให้ใช้อ้างอิงในDiagramได้ เช่นถ้าเราต้องการอ้างถึงค่าของOPC tagตัวแรกของBlockชื่อReadValue(ชื่อActivity) ก็จะอ้างถึงData Source แถวที่ 0 (OPC tagลำดับแรก/รูปบน) และคอลัมน์Data Schemaที่1 (Value/รูปล่าง กรอบสอง)

image

ถัดมาBlockชื่อLoop Checkเป็นBlockเงื่อนไข(Condition)ที่ลากมาวาง แล้วกำหนดเงื่อนไขการเปรียบเทียบ คลิ้กEdit Expressionเข้าไปจัดการเงื่อนไข

image

จะพบเงื่อนไขเอาOPC tagตัวแรก มาตรวจสอบว่ายังน้อยกว่า100หรือไม่

image

คลิ้กOKออกมา

ขั้นต่อไปบวก1เพิ่มเข้าไป(ถ้าเงื่อนไขเป็นจริง) ที่”Increment” เลือกOutputและค่าที่จะส่งให้Output โดยOutputในที่นี้ก็คือOPC tagตัวเดิมของ”ReadValue” ส่วนค่าที่จะส่งให้Outputก็เป็นการบวก1เพิ่มเข้าไป

image

ลองคลิ้กค่าในคอลัมน์Output Expressionเพื่อเข้าไปดูรูปแบบExpressionกันครับimage จะเห็นว่าเป็นการเอาค่าOPC tagตัวแรกของActivity “ReadValue”มาบวก1

image

คลิ้กOKออกมาครับ

สุดท้ายเป็นการรอ 500msec ก่อนวนลูปกลับไปอ่านค่าOPC tagในรอบต่อไป

image

 

ก่อนจบบทความมีการบ้านให้คิดว่า ถ้าหากต้องการเปลี่ยนจากการบวก1กลับเข้าไป ให้เป็นการสั่งให้OPC tagอีกตัวหนึ่ง(เลือกมาเองจากOPC Simulatorก็ได้ครับ)ให้ ON ถ้าOPC tag ตัวแรกมีค่า > 100 แต่ถ้าไม่ ก็ให้เป็นOFF จะทำอย่างไร นอกจากนี้ลองเพิ่มFlowให้ยาวกว่านี้ดู(มีขั้นตอนเพิ่มขึ้น) เช่นงานที่มีการตรวจจับว่ามีOrder(จากDatabase)เข้ามาใหม่หรือไม่ถ้าใช่ให้รับข้อมูลส่งให้PLCเป็นต้น(ซึ่งต้องไปหาอ่านหรือชมVDOที่เกี่ยวข้องกับGridWorX Severที่เป็นส่วนติดต่อDatabaseเพื่อนำมาใช้งานในWorkflow)

บทความโดย สุทธิพงษ์ เสนาถี

Advertisements
This entry was posted in Uncategorized. Bookmark the permalink.

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 )

Google+ photo

You are commenting using your Google+ 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 )

w

Connecting to %s