今天是2020年2月28号,因“新冠病炎”在家办公的第一个月。
事情的起因是公司突然交我给一个任务,给电机车做个雷达扫描图,用于显示机车前方所有障碍物的信息,如下图所示。c#开发,解析硬件通过can通讯传过来的数据,因为之前给电机车做过触摸屏程序,感兴趣的可以看我的另一篇博客:触摸屏下的MFC程序,涉及到can解析,所以开发很顺利,因为现场有十几台电机车,每台机车的前方障碍物又不同,数据量很大!
数据的传输路径:
从一开始的can解析,
到后来换成can转以太网,
然后又变成读取数据库的数据,
到最后要读取wincc里opcserver服务里的数据,
真是一波多折,以前没接触过,所以网上查了很多资料,花费了一个星期的时间终于解决。
(以前是在电机车里放个触摸屏,用来显示一些参数,如速度,牵引,阀门,所以才用到can解析,而现在是矿山自动化无人驾驶,在地面的总控制室通过wincc系统控制plc设备进行运转,此次通过opc协议读取wincc里是最好的解决方法。wincc在安装时自带opcserver服务。)
网上的例子很多,也有很多坑,都是一个一个去试的,借鉴了很多大神的资料
也不用大家再去搜了,我已经全部总结如下:
1.C#通过OPC连接PLC读写功能案例
2.OPC通讯实例(C#通过OPC连接PLC读写数据)
3.PLC通讯实现-C#访问OpcServer实现读写PLC(九)
4.C#通过KepServer采用DA、UA两种方式访问PLC
5.KepServer官方学习文档
6.kepserver 作为opc server 连接西门子PLC 配置
7.KEPServer EX6的配置
8.C#利用自动化接口编写OPC客户端,OPC Client,
特别说明:
以上的无非就是2种:
1.C#编写客户端,wincc的OpcServer自带服务作为“中转站”,连接Plc设备。
c#客户端<-------数据------->wincc(opcserver)<------数据------>现场plc
2.C#编写客户端,KEPServer 一种辅助软件为“中转站”,连接plc设备
c#客户端<-------数据------->KEPServer<------数据------>现场plc
以下是本人测试成功的截图,非常非常感谢以上的博客大大的分享,感谢,感谢,感谢!重要的事说三遍。
最后,是我整理的相关所有所有资料:汇总大全,有需要的可自行下载,有问题的可在下方留言探讨。
来源:CSDN
作者:井队Tell
链接:https://blog.csdn.net/JingDuiTell/article/details/104557380