前言
最近接触到很多人咨询PLC与Plant Simulatuon进行连接的问题,如果是只有一个PLC,且PLC支持OPC,Plant直接和PLC链接即可,如果有多个PLC,中间采用OPC Server的方式更加方便。因为手边没有PLC,故直接使用OPC Server进行模拟,本文采用kepserver进行演示。
提示:以下案例相关技术制作的输送线Demo可供参考
Plant Simulation与PLC300虚拟调试Demo
一、OPC
为了应对标准化和跨平台的趋势,为了更好的推广OPC,OPC基金会近些年在之前OPC成功应用的基础上推出了一个新的OPC标准-OPC UA。OPC UA接口协议包含了之前的 A&E, DA,OPC XML DA or HDA,只使用一个地址空间就能访问之前所有的对象,而且不受WINDOWS平台限制,因为它是从传输层Scoket以上来定义的,这点后面会提到,导致了灵活性和安全性比之前的OPC都提升了。
因此,本文只介绍OPC UA接口的使用方法,对于经典OPC接口就不做介绍。
二、使用步骤
1.配置kepserver
首先在kepserver里面定义一个simulator的通道作为数据来源。其中A1111为一个字符串变量,Ramp1和Ramp2为每个100ms自动更新一次的变量。
配置kepserver,端口此处采用的默认端口49320,具体如下:
注意:security politics一定要包括None,不然会报如下错误:
配置好之后,勾选Active,直接Import Items就能把kepserver里面的所有item导入进来。
定义合适的读取间隔,太短容易造成Plant崩溃。
2.读入数据
打开相应的Group,在需要读取的变量上面挂着相应的Method:
代码如下:
param stampName:string, value:integer
print stampName
print value
注意:参数2是根据当前读取的变量类型进行定义,如果变量在kepserver是float类型,此处应该修改为real
3.写入数据
写入数据直接采用setItemValue进行处理,第一个参数为alias,第二个参数为value
OPCUA.setItemValue("A1111", "test111111")
写入后,可以在kepserver的explore里面看到结果,如下:
技术总结
总结:
链接的关键点是OPC Server的服务器路径正确。
读取时间间隔合理即可