三菱fx5u系列plc如何实现Modbus TCP服务器,
硬件:三菱fx5u 一个
串口转以太网模块CHNet-FX 一台
CHNet-FX模块太网口它支持8个连接,那么也就是说,当我们plc做ModbusTCP服务器的时候可以有同时8个Modbus TCP客户端。同时和他进行通讯,
我们所需要的一些软件这个以太网调试助手,用来调试这个调试这个plc这个服务器,调试程序,然后我们还会用到这个Modbus poll可以来模拟,ModbusTCP服务器,ModbusRTU主站,以及Modbus ASC主站,接下来我们继续说一下这个三菱FX5U他实现Modbus TCP这个组态过程,下面就是我们做好的一个这个工程,
要实现他这个Modbus TCP他这个过程呢,首先呢第一步用FX5U PLC 与CHNet-FX连接
1. 新建 FX3U/FX3UC 工程,双击导航栏中的连接目标:Connection。
2.跳出的选项板后,在计算机侧选择双击“EthernetBoard”选项,随后提醒中点击“是”;在可编程控制器侧双击“PLC Module”;
3. 在随后的跳出的设置中,点击“搜索网络上的 FXCPU(S)”后,会搜索到 CHNet-FX所连接的 FX3UC。
按图中标号依次选择后,最后点击确认;
4.在上述中选择好 IP 地址后,点击“通信测试”,即可提示与 FX3UCCPU 连接成
5.随后即可“在线”选项栏中,进行 PLC 的读取、写入和监视等操作。
Modbus分配地址
PLC配置
设置的这个参数,通讯手段默认ModbusTCP,可编程IP地址就是前面设置的,192.168.161端口号就是502端口,作为服务器需要设置的参数,
这个逻辑程序D0、D1、D2、D3分别付了初值是K0、K1、K2、K3在初始化的时候我们对D4、D5、D6、D7进行个清零操作
使用了一个特殊标志位,每一分钟我们会对D0、D1、D2、D3作一个加一操作,看看能不能做一个加一操作,然后会实时的判断,当D0、D1、D2、D3各自的值大于6000的时候分别各自清零,也就说d0d1d2d3的值他会每一分钟都会发生改变,并且d0d1d23d3的纸最终它是会在零到6000之间发生一个变化,(包括0和6000)
这么做的目的是为了客户端去读取PLC的寄存器的时候,D0、D1、D2、D3是变化的方便我们观察变化。这就是一小段逻辑程序
进入程序监视
此时D0、D1、D2、D3分别是0、1、2、3;过1分钟就会进行一下+1操作下面就可以测PLC程序了
先用以太网调试助手进行测试
适配器是PLC通过CHNet-FX网线连接到路由器,电脑通过无线网卡连接到路由器
协议模式:客户端 Client
目标IP:CHNet-FX用户自定义IP地址
1.可以去读它的四路保持寄存器
比如说D0-D3的值是3、4、5、6
清空之后发送报文,读取成功
2.写保持寄存器
把PLC D4的值设置为1
我们要发送的命令就是
55 66 00 00 00 06 01 06 00 04 00 01
接收区服务器原样返回,此时D4的值就是1,写入成功
3. 读取PLC的离散输入
比如说要读取X0-X7的状态 02功能码
77 88 00 00 00 06 01 02 00 00 00 08
接收区显示的数据是00
表明X0-X7的状态全部为0的
打开程序监视
PLC返回数据是00 说明Y0-Y7的状态是0
4.读线圈 Y0-Y7的状态 01功能码
PLC返回数据是00 说明Y0-Y7的状态是0
读取成功,
5.执行写操作,把Y0置位,PLC原路返回
看下监控的数值
现在Y0、Y1同时置位
现在Y0、Y1同时置位
二. 下面在用Modbus Poll调试助手测试
1.读取离散输入 1区 用02功能码 从X0开始读起
PLC 从站地址 1
Function:读离散输入
X0开始读 读8位 X0-X7
现在离散输入的状态都为0的状态
2.接着上面开始读线圈 0区 01功能码
Y0、Y1分别都为1
3. 写线圈把Y2线圈的值置位 写线圈
置位成功
可用05(单路)、15(多路线圈)功能码对线圈进行写操作
3. 读保持寄存器 4区 03功能码
以为程序里每分钟数值都是改变的,所以数值不是固定的
5.写保持寄存器 06和16功能码 写D6值
写入成功
用16功能码写多路保持寄存器,吧D0-D6全部复位/置位
另外客户端我们用以太网调试助手,当然这个客户端我们还可以用这个比如说组态软件,触摸屏,或者其他的比如安卓手机组态软件等等都是可以的
楼主最近还看过