PCM开发板模块指令详解--功能指令4

本文详细介绍了MODBUS RTU指令,包括主从初始化、读写操作,并通过实例展示了如何使用这些指令进行数据交互。内容涵盖了MODBUS RTU主指令、从指令以及相关参数设置,适用于单片机和嵌入式硬件的MODBUS通信开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模块推荐:https://item.taobao.com/item.htm?ft=t&id=671629736762

25         MODBUS RTU指令

        编号         指令名          参数1    参数2    参数3   参数4    参数5       说明

        1          modbusrtum       K         K          Sn                               MODBUS RTU主初始化指令

        2        modbusrtumrw     K         K          K          Dn        K         MODBUS RTU主读写指令

                                                 Dn      Dn        Dn         Dn       Dn

        3         modbusrtuc         K         K          K           Sn                  MODBUS RTU从初始化指令

        4       modbusrtuclose                                                                 MODBUS RTU关闭指令

        1         modbusrtum为MODBUS RTU主初始化指令:

                                参数1为串口编号,取值0或者2;

                                参数2为串口波特率;

                                参数3,当串口数据接收完成时会置位Sn;

                例: modbusrtum 0 115200 s0 //初始化串口0,波特率为115200

        2         modbusrtumrw为MODBUS RTU主读写指令:

                                参数1为从机的PLC NO号,取值1-255;

                                参数2为功能码,支持1,3,5,6,16这几个功能码;

                                参数3为从设备的寄存器地址;

                                参数4根据功能码的不同,当为读时,Dn保存读的数据,当为写时,Dn为要写

                        的数据;

                                参数5,为要读写的数据长度,注意modbus一个数据长度有2个字节;但是在功

                        能码1时,数据长度单位是位;

                例: mov 65280 d0 //d0存入65280(16进制FF00),使用功能码5置位输出口时,

                                                //必须写65280

                        modbusrtumrw 1 5 16 d0 1 //1为从机PLC站号,5为位写功能码,16

                                                                //为位地址即Y0,D0=65280,表示把Y0置1;最

                                                                //后的1在功能码为5时不起作用,写个1就可以了

                        mov 0 d0 //d0存入0,使用功能码5复位输出口就写0

                        modbusrtumrw 1 5 16 d0 1 //1为从机PLC站号,5为位写功能码,16

                                                                //为位地址即Y0,D0=0,表示把Y0清0;最后的

                                                                //1在功能码为5时不起作用,写个1就可以了

                        modbusrtumrw 1 1 0 d0 11 //从机站号1,功能码1,读取地址0,读

                                                                //取到D0寄存器,共读取11位;这样就把X0-10

                                                                //一次性全部读取 到D0中,D0的第0-10位依次是

                                                                //输入口X0-10的电平值。

                        modbusrtumrw 1 1 16 d1 13 //从机站号1,功能码1,读取地址16,读

                                                                //取到D1寄存器,共读取13位;这样就把Y0-12一次

                                                                //性全部读取到D1中,D1的第0-12位依次是输出口

                                                                //Y0-10的电平值。

                        modbusrtumrw 1 3 100 d1 2 //从机站号1,功能码3,读取地址100,读

                                                                //取到D1寄存器,长度为2,即读取4个字节,实际

                                                                //就是读取D50的值到D1中;

                        modbusrtumrw 1 16 100 d1 2 //从机站号1,功能码16,写入地址100,

                                                                        //写入数据为D1寄存器,长度为2,即读取4个字节,                                                                         //实际就是把D1的值写到D50中;

                        modbusrtumrw 1 6 100 d1 1 //从机站号1,功能码6,写入地址100,写

                                                                        //入数据为D1寄存器,长度固定为1。实际就是把D1                                                                         //的低2字节值写到D50中;

        3         modbusrtuc为MODBUS RTU从初始化指令:

                                参数1为从PLC NO号,取值1-255;

                                参数2为串口编号,取值0或者2;

                                参数3为串口波特率;

                                参数4,当串口数据接收完成时会置位Sn;

                例: modbusrtuc 0 115200 s0 //初始化串口0,波特率为115200

        4        modbusrtuclose为MODBUS RTU关闭指令:

                                下表列出了IO口及Dn数据寄存器对应的地址及功能码:

IO口

操作

触摸屏对应地址

PLC对应地址

功能码

位读

位写

X0

只读

0x1

0

1

X1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值