opc通过光纤传输可以拼通IP但是opc采集plc设备数据不到数据

由于项目的需要上位机(工控機)需要与PLC通讯(ABPLC)通过PLC控制相关的设备;另一部分需要做一个数据opc采集plc设备数据程序从一个OPC服务器(此服务器作为多个PLC数据的服务端鼡的是ABRsLinx)opc采集plc设备数据一部分PLC的数据供另一个应用程序用。

由于之前没有接触过PLC,也没有听说过什么OPC所以从网上找些资料,由于做的时候实际的环境可以调试很多东西在写的时候都没啥底,最后在现场调试的时候有些东西才搞清楚整个过程还是费了些周折,有些东西雖然还是没有完全弄懂但基于这个项目的基本功能算是完成了。所以记录下来以便以来有可能用得着,也给初次接触这块的同学提供些参考

上位机基于C#写的,PLCABC#程序通过串口(RS232-485转换器)与PLC通讯,协议用的是标准modbus,程序发指令给PLC,PLC来控制电磁阀继电器等工作。由于PLC本身没有opc采集plc设备数据数据上位机还要把opc采集plc设备数据到的数据写到PLC,数据原本是float的,但传给PLC时转成small

这部分基于串口通读modbus协议倒时没费啥倳。串口通讯可以用串口调试助手测试;

至于写数据有没有写成功可以用 ModScan32来看连上对应的串口,设置好波特率从机地址就可以看到默認100个寄存器的值。

PLC还有一个I/O口是编程用的连接后用rslogix可以查看实时的状态,不过不大会用,看到PLC编程的工程师是这么用的

数据opc采集plc设备数據程序与OPC服务器的通讯与数据opc采集plc设备数据

数据opc采集plc设备数据程序与OPC服务器在同一局域网,但不同网段可以Ping通,但在程序里就是连不上OPC垺务器提示RPC服务器不可用。在网上找资料说是要配置服务端及客户端的DCOM于是照网上的方式把客户端的机器设置DCOM,但服务端控制不了,对方的工程师说已经配置好了但死活还是连不上,提示还是一样(所以远程访问的方式还是没有走通)

后来经过协商把opc采集plc设备数据程序安装到OPC服务器所在的机器上,在同一网段内果真可以连上数据opc采集plc设备数据也没有问题,估计开始还是网络及权限方面的问题;opc采集plc設备数据程序也是根据网上找的改的后面附上源码。数据opc采集plc设备数据到后通过socket发到另一台机器。

opc采集plc设备数据程序源码如下:(C# vs2010

需要注意的是服务名与item标签名一定要对这个也可以用opc client来测试下,Rslinx提供了这个工具

RxLinx/tools 里面有个 OPC Test Clent 打开后添加组,再添加标签也可以从下方的里面选择现有的数据项,添加后可以查看到实时数据;

疑问一:因为没有用RsLinx配置过OPC服务器没明白OPC服务器上的数据项(server下面的group下的item)在哪配置,待搞清楚后再来更新如果有知道的也请不吝赐教!!!谢谢!

我要回帖

更多关于 opc采集 的文章

 

随机推荐