Modbus协议将寄存器分成了4个区域,但每一个寄存器都是16位的数据存储器,00000~09999代表线圈(DO)类地址,10000~19999代表触点(DI)类地址、 30000~39999代表输入寄存器(AI)类地址、40000~49999代表输出寄存器(AO)类地址。 当plc主站和变频器、私服驱动器、温控器或其他遵从MODBUS的从站通讯时, 会出现3种情况: (1)比如"台达",它没有能力自己开发专用协议,就用Modbus作为自己的协议,这样的话,它有Modbus指令,只需要设置通讯格式字后,用指令直接读从站寄存器地址就可以了。(台达主站) (2)比如“西门子”,它有自己开发的PPI、MPI、Profibus、工业以太网等专用协议,但为了和支持MODBUS的设备通讯,它就开发了Modbus通讯协议库,我们只需要初始化“通讯格式字”,不需要知道“通讯数据信息帧”的格式,直接读写从站寄存器的地址就可。(西门子主站) (3)比如“三菱”,它有自己开发的"CC-LINK"专用协议,但没有支持和MODBUS设备通讯的协议库,那和支持MODBUS协议的设备通讯就要编写通讯程序了,这就是“自由口通讯”,在保证硬件通讯口连接正确的情况下,遵从“从站的通讯格式字”和“从站的数据信息帧”。在PLC中不但要设置通讯格式字,还要编写数据发送帧的通讯程序,比较长。(三菱主站) PLC通过指令写程序发送帧"01H 03H 21H 02H 00H 02H 6FH F7H"中,03H(功能码)和21H 02H(数据起始地址)就决定对从站4区寄存器中的48451进行处理
当PLC为从站时,上位或组态软件为主站时,软件一般添加了相应PLC的驱动程序,PLC厂家定义了PLC变量地址和MODBUS寄存器的映射关系,读和写相应MODBUS的寄存器地址就可读写plc相应变量的参数。 |