一、前言
大家好,由于作者本人对Beckhoff系列plc比较感兴趣,决定在CSDN上分享一些成功案例。当然这些代码或者文档有一部分来自于倍福虚拟学院,也有一些来自于Infosys上面的程序案例,我会在文章的末尾把参考的文章进行标注,由于本人代码能力一般,实力有限,后续的文章也只作为抛砖引玉,欢迎各位朋友的批评和指正,十分感谢。
二、物料准备
1.Beckhoff嵌入式PLC:CX8180 ;
(咸鱼上斥巨资买的二手PLC,大家看后觉得可以帮忙点点赞,555)
2.上位机仿真软件 : Modbus Poll ;
3. 485串口转USB线 ;
三、Twincat软件配置与程序编写
3.1 样例程序
样例程序参考前文提到的官方文档《CX1030-N030COMPort作为modbusRTU slave与modscan32通讯》,由于各个PLC的型号不同,接下来会对PLC的软件配置加以描述。
3.2 软件配置
广播扫描到PLC,扫描时需注意:
1.关闭本地电脑的杀毒软件、防火墙、无线网(无线网经过验证无影响);
2.使用twincat3添加路径密码默认“1“;
3.实在扫描不到看可以考虑:通过DVI线连接PLC与显示器(具体看型号);
4.扫描不到PLC注意自己PLC本身型号(如CX9020-112)是否支持Twincat3,网卡是否被添加到Twincat3中(见图二);
图一
图二
接下来,完成系统组态,将PLC设置为Config模式,在IO处进行SCAN,扫描到CX8180自带的串口(由于本次测试485,232串口我暂时给disable掉)。
图三
完成IO映射(由于直接参考了样例程序,这里程序编译结束后会出现变量,这一步操作的意义就是把要通讯变量映射给通讯串口上)
图四
注意,映射结束后最好再编译一下。
3.3样例程序测试
直接开始程序,打开modbus poll,下图为modbus poll读写功能设置。
注意:样例程序中“inputs AT %IW0: ARRAY [1..10] OF WORD;”含义是再I区开辟了变量空间,下一篇文章我会对空间区域地址与变量关系进行进一步描述,本文仅仅做简单测试。
可以看到在程序中我生成了一个名为Test的bool变量,bool占位一个bit我把它放到 ”%IX0.3“ ,看下图可以观察到变量映射是正确的。
四、结束语
本文仅仅对倍福modbus通讯组态做一个简单说明,后续进行实机测试(与Mcgs触摸屏进行通讯测试),由于是第一次写技术性文章,文章结构与描述难免存在问题,欢迎大家提问与指正,感谢。