欢迎使用OPCDA协议
简介
OPC(Object Linking and Embedding(OLE) for Process Control)是微软公司的对象连接和嵌入技术在过程控制方面的应用。OPC规范从OLE/COM/DCOM的技术基础上发展而来,并以C/S模式为面向对象的工业自动化软件的开发建立了统一标准,该标准中定义了在基于PC的客户机之间进行自动化数据实时交换的方法。采用OPC标准后,驱动程序不再由软件开发商开发,而是由硬件开发商根据硬件的特征,将各个硬件设备驱动程序和通讯程序封装成可独立运行或嵌入式运行的数据服务器。
Windows环境搭建
这里将OPCDA分为三个角色,服务端,客户端(Windows代理)和算盘端。服务端运行着OPCDA的服务器,客户端运行着OPCDA的算盘代理,算盘端运行着OPCDA的组件代码。其中客户端和服务端的连接因为Windows DCOM的权限问题,需要特殊的设置才能生效。
+--------------+ +--------------------+ +---------------------+
| | | | | |
| | | | | |
| OPCDA 服务器 | DCOM 连接 | OPCDA 客户端 | | 算 盘 |
| +<----------+ Windows代理 +<-----+ |
| | | | | |
| | | | | |
| | | | | |
+--------------+ +--------------------+ +---------------------+
在环境搭建之前需要确保:
• OPCDA服务器和OPCDA客户端在一个局域网内,可以互相ping通
• OPCDA服务器和OPCDA客户端需要都关闭防火墙
• OPCDA服务器和OPCDA客户端主机的账号密码需要相同。
OPCDA服务端环境搭建
服务端需要进行DCOM的权限的设置,这里完成了了一个桌面客户端的软件。用户在使用此设置软件之前,需要预先安装OPCDA服务器。 点此下载此服务端设置软件,然后打开opcda_server_setting.exe:
首先点击刷新,然后选择需要设置的服务器,最后点击应用设置即可。
OPCDA客户端环境搭建
客户端除了设置DCOM的权限,还提供了OPCDA的代理。这里提供了一个安装包点此下载,用户点击此安装包然后一直点击下一步即可安装,安装的时候会设置好DCOM的权限。用户安装完成之后桌面上会提供一个OPCDA客户端的链接,用户打开此程序即可完成环境的搭建。
OPCDA小工具下载使用
请点击链接下载此小工具,OPCDA小工具,此工具运行在windows电脑上,此工具在辅助得到OPCDA的服务器名称,服务器上面的变量都是有帮助的。
用户界面使用
添加通道
这里插件指的是opcda的windows代理。添加通道的时候需要填入插件的连接方式,目前支持客户端的方式,插件的IP地址可以在windows电脑上输入ipconfig命令查看。插件的端口默认是12000,不用去修改。
添加设备
添加设备的时候需要填入OPC服务器的地址和名称。如果OPCDA服务器和OPCDA windows代理在同一台设备上面,那么填写localhost即可。然后需要得到OPCDA的服务器名称。通过OPCDA小工具来获取此名称。
添加点位
点位的数据项地址可以使用OPCDA小工具来查看,数据项的类型可以根据实际情况查看或者填写默认。
点位表编辑
点位表导出之后,编辑导出的点位表再进行导入。编辑的时候,需要填写下述打勾的字段。
名称 | 是否填写 | 含义 |
---|---|---|
appid | √ | 数据项唯一的id |
name | √ | 数据项名称 |
desc | √ | 数据项描述 |
freq | √ | 数据项更新频率(毫秒为单位) |
value | × | |
updatetime | × | |
quality | × | |
compute_func | √ | 值运算函数,有n,+,-,*,/ |
compute_para | √ | 值运算参数 |
readonly | √ | 是否只读,只读写1,否则写0 |
report | √ | 是否上报数据,上报写1,否则写0 |
report_change | √ | 是否变化才上报的数据,数据变化才上报写1,否则写0 |
value_old | × | |
address | √ | 地址,根据OPCDA小工具来确定 |
server_timestamp | × | |
type | √ | 数据项类型,默认填写default,内部会自动确认 |
组件输入输出格式
当作为算盘的组件使用时,输入输出格式如下。可以在转发字段定义这个功能来修改字段名或者去掉不要的字段。
组件输出
{
"type":"report",
"device_name":"device_lrrbrQKI8A",
"driver":"opcda",
"channel":"channel_Hp88RapAL5",
"timestamp":"2020-11-24 09:20:04",
"values":[
{
"id":"3",
"name":"test1",
"desc":"测试1",
"freq":"1000",
"compute":"no;",
"value":"8729",
"updatetime":"2020-11-24 09:20:03",
"quality":"Good",
"address":"Random.Int4",
"server_timestamp":"2020\/11\/24 17:20:05",
"type":"default"
},
{
"id":"4",
"name":"test2",
"desc":"测试2",
"freq":"1000",
"compute":"no;",
"value":"9984",
"updatetime":"2020-11-24 09:20:03",
"quality":"Good",
"address":"Random.Int2",
"server_timestamp":"2020\/11\/24 17:20:05",
"type":"default"
}
]
}
组件输入
请查看入门这一节