HOLLiASMACS-FMFM0201FM020Modbus通讯模块使用说明书概述FM020模块是Modbus通讯模块,支持Profibus-DP总线协议与Modbus协议,通过Profibus-DP总线与控制器进行参数与数据交换实现DP从站功能,同时通过Modbus通讯协议获取或下发Modbus数据,支持功能码01、02、03、04、05、06、0F、10。FM020模块在Profibus-DP一侧只能做Profibus-DP从站;在Modbus一侧既可以做Modbus主站,也可以做Modbus从站。FM020模块支持的最大从站数必须同时满足I/O数据长度小于等于152byte和从站数目小于等于18的约束条件,因此规定FM020作为主站时最多可连接18个Modbus从站。Modbus通讯采用应答方式。应答方式是主站向某个从站发出命令,然后等待从站的应答,从站接到主站命令后,执行命令,并将执行结果返回给主站作为应答,然后等待下一个命令。主站发出命令到从站应答命令之间的时间间隔成为超时时间,用户可通过模块组态参数“TimeofReplay”进行设置。Modbus物理层采用RS485和RS232(2选1),传输速率可达115.2kbps,支持RTU模式和ACSII模式(2选1)。FM020模块由功能模板和壳体组成,采用DIN35导轨或平面独立安装,模块面板上提供Profibus-DP及Modbus通讯接口、电源输入接口、模块站地址拨码开关、Profibus-DP和Modbus终端匹配拨码开关。FM020Modbus通讯模块的外观结构如图1所示。DPBDPTRDPA+24V-24VRS485+RS485-MBGNDSGNDRUNCOMRXDTXDNM020-24VNCPROFIBUSDP/MODBUSMODBUSTRRS232DPSlaveAdd图1FM020模块外观示意图FM020HOLLiASMACS-FM2原理说明FM020在数据存储RAM中建立了Profibus-DP到Modbus的映射数据区,由软件实现Profibus-DP和Modbus协议转换及数据交换。FM020模块的硬件原理框图如图2所示。FM020(Master)的协议转换原理首先,在FM020(Master)的数据存储器中建立“Modbus报文队列”,即Modbus报文序列。它是用户依据应用的要求,在Profibus-DP主站配置FM020(Master)时,组态配置选择后自动形成,并在Profibus-DP主站与FM020(Master)建立连接通讯时初始化并传送到数据存储器中。关于如何依据应用要求,在组态配置时选择Modbus通信功能,详见“产品应用实例”一节。DPA(DB9)DPB(DB9)SRAMCPLDSPC3MCUDP站地址拨码开关485收发器485收发器状态显示复位电路485收发器232MODBUS(DB9)232收发器485MODBUS(凤凰端子)磁耦防护磁耦防护图2FM020模块硬件原理框图HOLLiASMACS-FMFM0203FM020(Master)在数据存储器中建立Profibus-DP数据区和Modbus数据区,Profibus-DP主站与FM020(Master)的通信数据都存储在Profibus-DP数据区中,Profibus-DP通信数据分为输入和输出数据。Modbus主站与Modbus从站的通信数据都存储在Modbus数据区中,Modbus通信数据分为输入和输出数据,写入(如05H、06H、0FH、10H功能)Modbus从站的数据为输出数据,与Profibus-DP的输出数据对应;读取(如01H、02H、03H、04H功能)Modbus从站的数据为输入数据,与Profibus-DP的输入数据对应。Modbus输入数据区存放需要上报的数据,模块每轮询一遍Modbus从站,做一次Modbus输入数据区和Profibus-DP输入数据区的数据交换,然后SPC3就可以把Modbus上报的数据报给主控;Modbus输出数据区存放需要下发的数据,模块下发完数据,做一次Profibus-DP输出数据区和Modbus输出数据区的数据交换。FM020(Master)模块的协议转换原理如图3所示。FM020(Slave)的协议转换原理与FM020(Master)一样在数据存储器中建立Profibus-DP数据区和Modbus数据区,通过Profibus-DP输入/输出与对应的Modbus存储区交换数据,实现Modbus到Profibus-DP的数据通信。FM020(Slave)接收Modbus报文,并根据Modbus主站的指令读写Modbus数据区,同时发送Profibus只写数据区%QBxProfibus只读数据区%IBxProfibus只读数据区%IWxProfibus只写数据区%QWxModbus读/写数据区0xxxxModbus只读数据区1xxxxModbus只读数据区3xxxxModbus读/写数据区4xxxxFM020模块(Master)Profibus主站Modbus从站Modbus从站Modbus从站图3FM020(Master)模块协议转换原理图示FM020HOLLiASMACS-FM4Modbus回答报文。每完成一次Profibus-DP数据通信,按照用户配置的Profibus-DP的I/O地址和Modbus地址的对应关系,进行一次两个数据存储区的数据交换。FM020(Slave)模块的协议转换原理如图4所示。使用说明FM020的冗余配置由于FM系列硬件设备为单DP总线结构,并且FM020只提供单Modbus总线接口,因此,此处所述的FM020模块的冗余配置是针对于Modbus总线而言的,也即采用双FM020模块在DP总线物理主、备配置环境下,提供双Modbus总线接口(仅支持RS485方式,不支持RS232方式冗余),用于实现Modbus总线的冗余。此时需要注意的是,FM系列硬件设备的单DP总线只需连接到FM020模块DPA或DPB任意一个接口即可,同时,在物理上主、备配置的FM020模块除DP从站地址外,组态时参数设置必须相同,即或者全为Modbus主站,或者全为Modbus从站,否则会造成通讯故障。详细配置图示由图5所示。图4FM020(Slave)模块协议转换原理图示HOLLiASMACS-FMFM0205图5FM020模块冗余配置图示FM020HOLLiASMACS-FM6状态指示灯说明FM020上电后,其面板上的状态及通讯指示灯显示当前的工作和通讯状态。具体组合状态及含义由表1给出。FM020模块与FM系列主控模块通过Profibus-DP总线进行数据交换。模块面板上有四个状态指示灯分别代表模块运行和通信状态,可以方便地对模块的工作及运行状态进行监测。表1状态指示灯组合及含义RUN(绿)COM(黄)TXD(黄)RXD(黄)含义亮亮闪闪模块运行正常,通讯数据收发正常,同时模块作为ModBus主站时运行在工作状态。亮亮灭闪ModBus主或从站发送数据亮亮闪灭ModBus主或从站接收数据闪亮灭灭模块没有配置ModBus从站;或ModBus通信故障;或模块作为ModBus主站时运行在备用状态闪亮灭闪模块作为ModBus从站时运行在备用状态闪灭灭灭模块等待初始化或未得到正确的初始化数据;DP通讯未建立或DP通讯线路故障。灭灭灭灭模块掉电或其它严重故障其它组合未定义通讯接口定义FM020模块Profibus-DP冗余通讯接口位于模块面板的左侧上方,其引脚定义由表2给出。表2Profibus-DPDB9连接器信号定义DB9孔座定义Profibus-DPA网3DPA+8DPA-5GNDProfibus-DPB网3DPB+8DPB-5GNDDPBDPAHOLLiASMACS-FMFM0207注:FM系列硬件系统的Profibus-DP为单总线结构,因此,使用时DPA/DPB接口任选一个连接即可。FM020模块Modbus通讯接口位于模块面板的右侧,其引脚定义由表3给出。表3Modbus双连接器信号定义序号定义ModbusRS485方式凤凰端子A1RS485+A2RS485-A3MBGNDA4SGNDModbusRS232方式DB9孔座2TXD3RXD5GND电源接口定义FM020模块的电源接口说明见表4所示。表4电源供电端子信号定义端子序号定义A1NCA224V-A324V-A424V+终端匹配拨码开关的设置FM020模块面板上有两个终端匹配拨码开关(DPTR、MODBUSTR),通过拨码开关选择是否为Profibus-DP总线和Modbus总线的RS485接口连接有源匹配电阻网络。DPTR:用于设置Profibus-DP总线的RS485接口是否连接终端匹配电阻,默认连接。MODBUSTR:用于设置Modbus总线的RS485接口是否连接终端匹配电阻,默认不接。每个拨码开关的全部键位要拨成一致。同时拨-24VNC-24V+24VRS485RS232MBGNDSGNDRS485-RS485+Profibus-DP终端匹配拨码开关OFF表示断开TRON表示接通TR1234ONDIPModbus终端匹配拨码开关12ONDIPFM020HOLLiASMACS-FM8向“ON”为接通终端匹配电阻;同时拨向“OFF”为断开终端匹配电阻。模块站地址拨码开关的设置FM020模块面板上有一个8位站地址拨码开关“DPSlaveadds”用于设置FM020模块的Profibus-DP从站地址。拨向“ON”,该位二进制数值为“0”;拨向“OFF”,该位二进制数值为“1”。主控站号=20×K1+21×K2+22×K3+23×K4+24×K5+25×K6+26×K7+27×K8(其中Ki=0(i=1~8)表示第i位拨码的二进制数值)例如:33号站的拨码开关从高位到低位依次设定为“10000100”,对应的十进制数值33就是FM020模块的DP从站地址号。Modbus通讯信息说明Modbus通讯协议是主/从通信协议。主站发送报文,只有与主站发送报文中呼叫地址相同的从站才向主站发送回答报文。FM020模块的从站地址范围1~247,协议中的0地址为广播报文发送模式,FM020模块未使用0地址功能。Modbus协议传送方式Modbus通讯协议有两种传送方式:RTU(二进制)方式和ASCII方式,两种传输模式不能混用;FM020支持上述两种方式(2选1,组态设定)。两种方式如表5所示:表5Modbus协议传送方式说明特性ASCII(7位)RTU(8位)编码系统十六进制(ASCII码)二进制开始位1位1位数据位(最低有效位第一位)7位8位奇偶校验(任选)1位(此位用于奇偶校验,无校验则无该位)1位(此位用于奇偶校验,无校验则无该位)停止位1位或2位1位或2位每一个字符的位数错误校验LRC(即纵向冗余校验)CRC(即循环冗余校验)DPSlaveadds模块站地址拨码开关1234ONDIP5678OFF=1ON=0最高位最低位HOLLiASMACS-FMFM0209Modbus存储区Modbus涉及到的设备存储区以0xxxx、1xxxx、3xxxx、4xxxx为标识,如表6所示。表6Modbus存储区说明Modbus存储区标识符类型读/写名称存储单元地址0xxxx位读写线圈00001~0xxxx1xxxx位只读离散量输入10001~1xxxx3xxxx字只读输入寄存器30001~3xxxx4xxxx字读写保持寄存器40001~4xxxx功能码定义功能码是主机用来通知从机应执行何种动作,从机作为响应发送与从主机发送来的相同功能码,表明从机已响应主机进行操作。如果从机发送的功能码的最高位为1(功能码大于127),则表明从机没有响应操作或发送出错。表7列出了FM020支持的Modbus功能码的含义和作用。表7支持的功能码定义功能码数据类型名称作用(对主站而言)1(01H)Bit读取多个开关量输出值取得一组开关量数据(不支持广播方式)2(02H)Bit读取多个开