modbus里功能码的意义。

2019-08-23 14:19发布

ModBus常用功能码 (功能码为10进制)  
01 READ COIL STATUS                       读线圈寄存器   
02 READ INPUT STATUS           读状态寄存器
03 READ HOLDING REGISTER      读保持寄存器
04 READ INPUT REGISTER                  读输入寄存器   
05 WRITE SINGLE COIL                        写单线圈寄存器  
06 WRITE SINGLE REGISTER       写单保持寄存器
15 WRITE MULTIPLE COIL          写多线圈寄存器
16 WRITE MULTIPLE REGISTER           写多保持寄存器void ModBus(void)
{
     switch(Function)
     {   
          case 0x01:
                    ReadCoil();     
                    break;
          case 0x02:         
                    break;
          case 0x03:
                    ReadReg();   
                    break;
          case 0x04:
                    break;   
          case 0x05:
                    SetCoil();
                    break;
          case 0x06:
                    SetReg();
                    break;
          case 0x0f:
                    SetNCoil();
                    break;
          case 0x10:
                    SetNReg();
          default: ;
     }      
}
哪位大虾帮忙解释下什么意思?这个是接受到一个字节后执行的程序。阅读线圈,设置线圈是什么意思啊?只有一个站号01  麻烦大虾说的通俗点,小弟没搞过PLC ,用的STM32f103vct6芯片。(公司程序里面的)


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
mchoose
2019-08-23 23:16
功能码表示要读或者写的数据类型。数据类型总共就是4种:DI,DO,AI,AO。DI也就是数字量输入,在这里叫做状态寄存器;DO是数字量输出,叫做线圈寄存器;AI是模拟量输入,这里叫做输入寄存器;AO是数字量输出,也就是保持寄存器。数字量占一个bit,模拟量占2个字节。功能码指示了要读单个、写单个寄存器,或者读多个写多个寄存器。要想详细了解可以去看看Modbus协议的资料。

一周热门 更多>