近期在研究通过外部通信指令读写三菱FX5U内部软元件的功能,现把研究过程中遇到的一些问题及解决方法分享出来。根据三菱官方的手册《MELSEC iQ-F FX5 用户手册(SLMP篇)》,用户可以通过以太网连接,使用3E帧或1E帧对PLC进行远程操作,这里使用的是3E帧。
1、报文的格式
3E帧报文格式如下:
使用ASCII码或16进制都是可以的
如果出现错误,PLC会回复错误码
2、PLC内部设置
在创建新工程之前,一定要先关闭<安全性强化模式>!!!
在上方标签栏的<视图>下,点击<安全性强化模式切换>,选择【禁用】!!!
然后关闭GX WORKS 3,再重新打开。
如果在新建工程前不禁用<安全性强化模式>,那么在每次打开在线监视和下载程序到PLC时,都会强制输入用户认证的口令和密码。
而且,在打开了<安全性强化模式>下,好像PLC与外部的通信会失效???PLC始终都只会返回错误码 !
想要使用SLMP通信,就必须先在PLC工程配置以太网相关信息。
首先新建一个FX5U空白工程,在<参数><模块参数><以太网端口>页面下,配置好IP地址与通信数据代码。
再双击<对象设备连接配置设置>,打开配置页面。在右边的<以太网设备(通用)>列表中找到SLMP设备,按住鼠标左键将其拖入左边的表格里。
这时,左下方的连接示意图里就会多出一个SLMP设备。
在上方的表格里,将协议选择为TCP,端口号自由设置,但是要避免三菱官方已经占用的特殊端口号。
设置完成后,点击上方的<反映设置并关闭>,然后会回到刚才的<以太网端口>页面,点击右下角的<应用>。
到此,有关以太网的设置已经完成了,点击<在线><写入>,将当前程序写入PLC,注意写入时要点击<全选>。
3、通信测试
以下是读写内部软元件的报文格式
以下是通信助手的实测截图
也可以使用PLC的在线批量监视软元件功能来验证。
读取:
ASCII发送:500000FF03FF000018000004010000D*0001000003
ASCII接收:D00000FF03FF0000100000000100010001
写入:
ASCII发送:500000FF03FF000024000014010000D*0001000003000100010001
ASCII接收:D00000FF03FF0000040000
这里写入和读取到的数据都是16进制,占4位,表示16位2进制数。
写入的位数,也是从左往右,从低到高。
如果ERR亮红灯,原因是发送了错误的命,此时PLC会回复错误代码。但红灯亮起似乎也不影响SLMP通信。
D200后的寄存器默认掉电保持!但可以修改设置。
4、结束语
以上就是我测试FX5U的SLMP通信的信过,这个通信方式还是比较方便的,省去了额外的PLC编程。
因为时间仓促的原因,写的比较简陋,希望对大家有帮助。如有疏漏,请大家批评指正。
版权声明:本文内容来源于网络搜集无法获知原创作者,仅供个人学习用途,若侵犯到您的权益请联系我们及时删除。邮箱:1370723259@qq.com