最近一个项目,因为种种限制,不能使用常规的触摸屏+PLC结构,只能选择那种小尺寸的电脑充当触摸屏与PLC进行通讯。
考虑了一番 还是决定自己写了,不用组态软件。
三菱MX Component可以简单理解为是一个OPC,专门针对三菱PLC产品的一种接口软件。因为三菱系列的产品太多了,串口232
485,本体网口,外接模块网口,USB接口各种各样,于是官方做了一个这个软件,让这个软件先去和下面的PLC建立通讯,
然后统一在和上位机进行通讯,之前用过力控的产品也是要和MX Component搭配使用的。
网上搜了一圈资料吧,发现干货比较少。主要都是介绍了一些连接函数,寄存器函数读取,写入这些基本功能。但是实际应用做起来的时候发现
问题很多。举例子 比如里面有个连接open函数,这个函数你只能open一次,如果你已经连接成功了,再open就会卡UI,再有如果你已经建立连接了,
但是PLC掉电了,你在执行你的读取函数,写入函数的时候也会卡UI。这算是第一个问题断线重连,后来我用了一个心跳机制+异步解决了这个事情。
就是PLC程序里面D0数值一直+1,我检测这个值变化来确保当前的连接状态。
第二个问题,D区变量,现有的库文件里面的函数只是单纯的读了D0 D1 D2这些数值,但是D2 D3组合成浮点数这种的解析和写入,没有,
于是我补充写了几个方法,因为这次项目我只用到浮点数所以只写了浮点数的方法。
第三个问题,M区变量读取,M变量是bool量,但是他那个读取函数读上来是按照16位整数,并不是M0本身的0或者1,你需要把这个整数2进制,在找到你是对应的第几位,
才是你真正的M变量。这也写了一个方法
MX Component这个软件啊,我个人觉得不是太完善,但是毕竟是免费的嘛,也就挑不出来那么多理了。然后补充一下,这个软件不光能和三菱PLC通讯,也能和那些仿三菱PLC使用,
深圳顾美,石家庄陆杰,仿FX3G FX3U我都测试过了没问题。
三菱家现在高端一些的PLC 5U Q系列这些,还可以走MC通讯协议,跳过这个MX Component,网上也有相应的库文件。具体搭配使用呢还是看实际情况和个人喜好。
最后附上一些资料,我的软件是VS2019编的,如果你们运行的时候报错,那是因为电脑没有安装MX Component,装一下就好了,我部署的时候发现的这个事情。
PLC程序仿真跑起来,MX Component建立仿真驱动,就能无硬件情况下运行我这个软件了。里面的CX3G类就是我封装的上面说的核心的东西
楼主最近还看过