虚拟PLC 3分钟构建虚拟PLC,实现同上位机联调,真香!!!

本篇文章针对:刚接触上位机开发和调试的小伙伴们。

长期从事设备采集、设备控制相关的工作,在实际工作中会经常会遇到一些问题,会严重的影响上位机软件开发进度和效率,导致调试周期过长、成本过高。

遇到的问题主要包括:
1、同PLC交互部分的逻辑无法快速的落实;
2、交互逻辑在没有进场、无调试PLC或PLC不具备的情况下,无法开展工作,无法验证逻辑;
3、通知进场后,由于各种条件(设备安装缓慢、设备问题、PLC程序不完善、PLC交互功能未编写完整、PLC交互功能有缺陷等),导致调试一直处于等待状态;
4、现场调试开始后,管理混乱(短路、断电、断气、无调试件)无法集中调试,调试断断续续;一个短路问题,停电查半天。
5、只要设备动起来、条件具备后,恨不得半天时间要求软件所有功能具备SOP上线正常生产的状态。我心里那个苦啊

不知道各位小伙伴有没有遇到过呢?欢迎交流,吐槽。

 

针对上述问题,建议如下:

第一项:可提前同电气工程师沟通,确定好工作流程、交互流程,把交互地址表定下来。
如果电气迟迟定不下来,我们可基于经验梳理一下我们的需求,暂定一个交互地址表和交互流程,发给电气做确认,从而提高效率。

后面的四项:通过各PLC厂家的软件进行仿真,模拟PLC地址和信号发送、接收。这里就不重点介绍了,网上有大把的教程。
这种方式对电气人员比较简单,但是对纯搞上位机的有一定难度,需要学习每种品牌PLC仿真器的配置和使用。

但,这种方式也有缺点,比如:麻烦、安装软件体积过大、有门槛、难度比较大。

如果,你是大牛,上述问题就不存在,勿喷。

 

那么,有没有比较好的方式,能够解决后面四项问题呢?
经过摸索,答案肯定是有的,针对西门子PLC,有较好的解决方案。
其他的PLC还在摸索过程中,如果大家有好方法欢迎推荐。

 

说重点:针对西门子PLC,可以通过代码构建一个PLC模拟器。
本质上是启动了一个HttpServer,通过程序建立多个DB块,DB块的长度可以自定义,对外提供读写服务。

经测试,启动HttpServer后,可通过OPC Server、HSL等第三方工具进行连接和读写。

这样,我们就可以在自己的电脑上虚拟一个PLC或多个PLC(需要不同IP地址),在交互地址确认的情况下,我们可以不受任何限制、愉快的编写和调试上位机程序,验证逻辑了。

另外、我针对常用的使用场景做了一定的抽象和封装,做成了一个小工具。

 


工具的主要功能:
1、加载地址表,支持多种数据类型;
2、分析地址表中的DB块,程序自动构建DB块;
3、启动HttpServer,对外提供服务;
4、实时在界面上监控配置地址表中的值;
5、在调试期间,可在界面上手动模拟(写入)各种信号、数值,满足PLC发信号的需求;
6、除了可以虚拟PLC用于调试,在现场调试(真实PLC)时,可以通过更改IP地址的模式,对真实PLC进行读写。

在现场调试上位机还没有健全的情况下,有时候需要临时给个信号,这样在界面上点一下就OK了。

针对上位机PLC交互逻辑达到的效果,点一个写入,就能进入到data_change事件中,那叫一个丝滑。

爆个照:

 

小伙伴期待的视频教程:https://space.bilibili.com/180985672/channel/seriesdetail?sid=2807145

 

posted @ 2022-04-21 12:55  egreen  阅读(4326)  评论(3编辑  收藏  举报