1785-M100***
1785-M100***

一、引言
Modbus应用层协议由美国Modicon公司(现为施耐德电气旗下品牌)于1979年开发的,用于实现其PLC产品与上位机的通信。由于其简单易用,得到了广大工业自动化仪器仪表企业的采纳与支持,实际上已成为了业界标准。Modbus协议包括ASCII、RTU、TCP等。这些年来,随着PLC的不断发展,网络通讯功能要求越来越高。一方面,网络化,集成化的要求,使得PLC需要越来越多的接入到计算机监控网络中,作为网络的一个节点。另一方面,智能仪表应用越来越广,因此要求PLC具备较多的现场总线接口,能直接与智能仪表进行通讯。鉴于此,1999年施奈德电气发布了Modbus TCP协议,使得以太网上的Modbus设备可以通过502端口进行通信①。
二、模块总体设计
本模块采用基于Cortex-M3内核的新一代ARM LPC1758为CPU主控芯片,工作频率为100 MHz。它内置高速存储器(高达512K字节的闪存和64K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。同时集成多个标准和***的通信接口:I2C、SPI、I2S、SDIO、USART、USB Host/Device/OTG、CAN、Ethernet MIC等。本模块硬件结构如图1所示:
图1
CPU通过PHY向以太网总线传输Modbus TCP数据,向RS232或RS485总线传输Modbus RTU数据。考虑工业现场应用,串口接口和LAN接口均需要隔离,才能保证电气上,可靠稳定。支持ISP,便于模块生产。JTAG只有在研发调试时用到。拨码配置主要配置工作模式,IP地址,波特率。
三、硬件设计
CPU LPC1758芯片自身并不集成以太网PHY,而提供了使用RMII(简化的媒体***接口)协议和片上MIIM(媒体***接口管理)串行总线、还有MDIO(管理数据输入/输出)来实现与片外以太网PHY之间的连接。本设计采用DP83848C物理层PHY芯片,它是美国***半导体公司生产的一款鲁棒性好、功能全、功耗低的10/100 Mbps单路物理层(PHY)器件。它支持MII(介质无关接口)和RMII(精简的介质无关接口),使设计更简单灵活;同时,支持10BASE~T和100BASE-TX以太网外设,对其他标准以太网解决方案有良好的兼容性和通用性②。
图2为LPC1758和DP83848C之间的接口电路,图3为DP83848C驱动输出隔离电路。
图2 LPC1758和DP83848C之间的接口电路
图3 DP83848C驱动输出隔离电路
PCB布局方面,精度为1%的电阻和100 nF的去耦电容应靠近PHY器件放置,并通过***短的路径到电源。两对差分信号(TD和RD)应平行走线,避免短截,且尽量保证长度匹配,这样可以避免共模噪声和EMI辐射。理想情况下,信号线上不应有交叉或者通孔,同时,差分线应尽可能走在一面。
四、软件设计
本模块设计结构,从功能上可以设计成两种工作模式:Modbus TCP从站模式,Modbus TCP主站模式。Modbus TCP从站模式,是把以太网总线Modbus TCP请求转化成串口总线Modbus RTU请求,也就是以太网设备从PLC读出数据;Modbus TCP主站模式,是把串口总线Modbus RTU请求转化成以太网Modbus TCP请求,也就是PLC从以太网设备读入数据。下面以Modbus TCP从站模式为例。
4.1 模块配置
表1 拨码功能配置表模块配置主要是通过8位拨码开关实现,通过这拨码开关配置模块的工作模式,以太网IP地址,串口RTU地址,波特率。如表1所示:
8位拨码配置
4.2 以太网驱动开发
驱动开发包括两部份:芯片物理层驱动(MAC,PHY)和TCP/IP协议层驱动。芯片物理层驱动主要是对LPC1758的以太网控制器和PHY芯片的初始化和控制输入输出的函数化打包,以便供TCP/IP协议层驱动调用。TCP/IP协议层驱动开发需要参考TCP/IP标准协议,下图4比较清晰明了的介绍TCP/IP协议状态变化图③。
图4 TCP的状态变迁图
对于从站模式(服务器模式),每一个TCP请求连接对应一组状态图,把这些状态归纳入一个结构体,然后再创建结构体链表,系统程序通过维护监测链表,可以实现多客户端同时请求通讯。
4.3 Modbus TCP和Modbus RTU协议开发
参考Modbus TCP和Modbus RTU协议标准,不难实现PLC与本模块的Modbus RTU以及本模块与外部以太网设备的Modbus TCP数据通讯。然后在本模块程序内部完成数据包的Modbus TCP和Modbus RTU之间数据转换,采用透明传输方式,即把从一个端口接收出来的数据转换后立即从另一个端口输出去。Modbus TCP相比Modbus RTU报文格式,多了六个字节的前缀,少了后面的CRC校验,它是采用TCP/IP 和链路层(以太网)校验和机制来校验分组交换的准确性。
4.4 模块状态监测
模块状态监测包括:系统运行状态,Modbus RTU通讯状态,Modbus TCP连接状态、通讯状态,以及通讯异常报警。
4.5 通讯测试
实验平台采用NA200 PLC挂载本模块,然后通过网络交叉线和PC电脑相连,利用网上免费网络调试工具SocketTool2进行通讯测试。先在SocketTool2建立客户端,然后连接,发送测试通讯数据十六进制000000000006500600C90055,查看是否有数据返回。
五、结束语
本文设计的Modbus TCP通讯模块,能和现有PLC稳定连接,从成本、性能上都将是个比较好的选择。前文介绍的是以从站模式为例,对于主站模式,可以PLC利用串口对通讯模块设置通讯请求的从站信息(IP地址等)。在不改变硬件的基础之上,通过软件升级,可以把模块功能更加完善。比如:满足通讯模式一主多从、一从多主、以及自定义通讯的现场应用需求。同时本文提出的思路也可以作为一种通用方案,推广到类似的产品开发中。
PANASONIC MINAS AC SERVO DRIVER DV88003LFGAE AJL 100V
GE FUJI 6K3003BB1 USPP 6K3003BB1
Texas Instruments 500-5011
Panasonic Minas AC Servo Driver MSD041A1X Drive
ASEA BROWN BOVERI DSQC 314B USPP DSQC314B
Panasonic AC Servo Motor M***042P1B FreeShip
EXTRON 60-107-01 USPP 6010701
CATEP INTERNATIONAL BD.20-02 USPP BD2002
TEXAS INSTRUMENTS 520C-1102 **
Panasonic/Nais Servo Motor MBDDT2210003 NIB!
TEXAS INSTRUMENTS PLC 7MT-400 NSPP 7MT400
ASEA BROWN BOVERI 1SDA054335R1 USPP 1SDA054335R1
ASEA BROWN BOVERI 48990001-FK USPP 48990001FK
WARNER ELECTRIC 5371-273-028 USPP 5371273028
ASEA BROWN BOVERI OES400J3 NSFP OES400J3
BANNER ENGINEERING MGE-4216A NSFP MGE4216A
ASEA BROWN BOVERI HIEE300025R0002 NSFP HIEE300025R0002
ALLEN BRADLEY 2711-K6C8 USPP 2711K6C8
SIEMENS 6AG4010-0AA00-0CA0 NSFP 6AG40100AA000CA0
PANASONIC AC SERVO DRIVE MDDDT5540L01 1.5KW
Panasonic AC SERVO MOTOR M***A082A1C
SIEMENS 6ES5-535-3MA12 USPP 6ES55353MA12
ASEA BROWN BOVERI S4HQ250BRRAS4 NSFP S4HQ250BRRAS4
Texas Instruments Slot Rack w/ (12) Module(s) 505-6851A, 505-4232 etc D14
DYNAMATIC 15-902-100 USPP 15902100
Panasonic/Nais Servo Motor MFDDTB3A2 NIB!
PANASONIC AMKB300B20KAH AC SERVO MOTOR NEW
MEASUREX 05353500 NSPP 05353500
PANASONIC AMKB400B20KAH AC SERVO MOTOR NEW
Texas Instruments Programmer TI 101 Model 100-3101 NEW
Texas Instruments 500-5039 NEW!
ASEA BROWN BOVERI 3HAB5956-1 USPP 3HAB59561
Panasonic AC Servo Motor M***02A1E Free Ship
ASEA BROWN BOVERI 57310255-AX USPP 57310255AX
SIEMENS 1FT6062-6AC71-4TB0 NSFP 1FT60626AC714TB0
ASEA BROWN BOVERI 3BHB002916R0101 USPP 3BHB002916R0101
TEXAS INSTRUMENTS PLC 505-4317 NSPP 5054317
Panasonic AC SERVO MOTOR AMKA100B10KA0 AMKA100B10KAO Free Ship
Panasonic Servo Driver MCDHT3520E New in Box Free Ship
ALLEN BRADLEY 1774-CI2 USPP 1774CI2
TEXAS INSTRUMENTS PLC 525-1104 USPP 5251104
ASEA BROWN BOVERI SPAD-346-C3 NSPP SPAD346C3
ASEA BROWN BOVERI OETL-NF1600SW USPP OETLNF1600SW
Panasonic AC Servo Motor 1.0KW M***102Q1C
ASEA BROWN BOVERI YB161102-BS USPP YB161102BS
ASEA BROWN BOVERI 3BSE008546R1 USPP 3BSE008546R1
TEXAS INSTRUMENTS 500-5023 5005023
SQUARE D 9998-SL11 NSFP 9998SL11
Expedited shipping ailable
ASEA BROWN BOVERI DSCS-116 USPP DSCS116
TEXAS INSTRUMENTS PLC 315-DR USPP 315DR
COPELAND ZR44KA-PFV-830 NSFP ZR44KAPFV830
MOOG 152D-423A USPP 152D423A
ASEA BROWN BOVERI 57088478 NSFP 57088478
Panasonic AC Servo Motor MHMD082G1U 750W New in Box Free Ship
ROCHESTER INSTRUMENT SYSTEMS CL-9001 USPP CL9001
Panasonic AC Servo Driver MSDB3A2AAD02 New 0190-26756
Panasonic MDD153A1VE AC Servo Driver
TEXAS INSTRUMENTS PLC 505-4616 NSPP 5054616
PANASONIC AC SERVO DRIVER MSD5A1E
TEXAS INSTRUMENTS PLC 435-CPU USPP 435CPU
Texas Instrument 5TI programmer with case 5TI-2001
TEXAS INSTRUMENTS PLC 505-4317 NSFP 5054317
TI Siemens CTi 500-5035 5005035 Programmable Basic 0006 PLC
Panasonic AC Servo Motor MHMD042P1U Free Ship
ASEA BROWN BOVERI RTO08358 USPP RTO08358
LEYBOLD SV25-109-03-51 USPP SV251090351
Panasonic AC Servo Motor M***011A1E Free Ship
TEXAS INSTRUMENTS 500-5013 OUTPUT MODULE LOT 5005013
Texas Instruments 7MT200
500-5056 Texas Instruments Siemens TI 32 pt output module 5005056 N110
ASEA BROWN BOVERI YB560103-CC USPP YB560103CC
1785-M100***

一、引言
Modbus应用层协议由美国Modicon公司(现为施耐德电气旗下品牌)于1979年开发的,用于实现其PLC产品与上位机的通信。由于其简单易用,得到了广大工业自动化仪器仪表企业的采纳与支持,实际上已成为了业界标准。Modbus协议包括ASCII、RTU、TCP等。这些年来,随着PLC的不断发展,网络通讯功能要求越来越高。一方面,网络化,集成化的要求,使得PLC需要越来越多的接入到计算机监控网络中,作为网络的一个节点。另一方面,智能仪表应用越来越广,因此要求PLC具备较多的现场总线接口,能直接与智能仪表进行通讯。鉴于此,1999年施奈德电气发布了Modbus TCP协议,使得以太网上的Modbus设备可以通过502端口进行通信①。
二、模块总体设计
本模块采用基于Cortex-M3内核的新一代ARM LPC1758为CPU主控芯片,工作频率为100 MHz。它内置高速存储器(高达512K字节的闪存和64K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。同时集成多个标准和***的通信接口:I2C、SPI、I2S、SDIO、USART、USB Host/Device/OTG、CAN、Ethernet MIC等。本模块硬件结构如图1所示:
图1
CPU通过PHY向以太网总线传输Modbus TCP数据,向RS232或RS485总线传输Modbus RTU数据。考虑工业现场应用,串口接口和LAN接口均需要隔离,才能保证电气上,可靠稳定。支持ISP,便于模块生产。JTAG只有在研发调试时用到。拨码配置主要配置工作模式,IP地址,波特率。
三、硬件设计
CPU LPC1758芯片自身并不集成以太网PHY,而提供了使用RMII(简化的媒体***接口)协议和片上MIIM(媒体***接口管理)串行总线、还有MDIO(管理数据输入/输出)来实现与片外以太网PHY之间的连接。本设计采用DP83848C物理层PHY芯片,它是美国***半导体公司生产的一款鲁棒性好、功能全、功耗低的10/100 Mbps单路物理层(PHY)器件。它支持MII(介质无关接口)和RMII(精简的介质无关接口),使设计更简单灵活;同时,支持10BASE~T和100BASE-TX以太网外设,对其他标准以太网解决方案有良好的兼容性和通用性②。
图2为LPC1758和DP83848C之间的接口电路,图3为DP83848C驱动输出隔离电路。
图2 LPC1758和DP83848C之间的接口电路
图3 DP83848C驱动输出隔离电路
PCB布局方面,精度为1%的电阻和100 nF的去耦电容应靠近PHY器件放置,并通过***短的路径到电源。两对差分信号(TD和RD)应平行走线,避免短截,且尽量保证长度匹配,这样可以避免共模噪声和EMI辐射。理想情况下,信号线上不应有交叉或者通孔,同时,差分线应尽可能走在一面。
四、软件设计
本模块设计结构,从功能上可以设计成两种工作模式:Modbus TCP从站模式,Modbus TCP主站模式。Modbus TCP从站模式,是把以太网总线Modbus TCP请求转化成串口总线Modbus RTU请求,也就是以太网设备从PLC读出数据;Modbus TCP主站模式,是把串口总线Modbus RTU请求转化成以太网Modbus TCP请求,也就是PLC从以太网设备读入数据。下面以Modbus TCP从站模式为例。
4.1 模块配置
表1 拨码功能配置表模块配置主要是通过8位拨码开关实现,通过这拨码开关配置模块的工作模式,以太网IP地址,串口RTU地址,波特率。如表1所示:
8位拨码配置
4.2 以太网驱动开发
驱动开发包括两部份:芯片物理层驱动(MAC,PHY)和TCP/IP协议层驱动。芯片物理层驱动主要是对LPC1758的以太网控制器和PHY芯片的初始化和控制输入输出的函数化打包,以便供TCP/IP协议层驱动调用。TCP/IP协议层驱动开发需要参考TCP/IP标准协议,下图4比较清晰明了的介绍TCP/IP协议状态变化图③。
图4 TCP的状态变迁图
对于从站模式(服务器模式),每一个TCP请求连接对应一组状态图,把这些状态归纳入一个结构体,然后再创建结构体链表,系统程序通过维护监测链表,可以实现多客户端同时请求通讯。
4.3 Modbus TCP和Modbus RTU协议开发
参考Modbus TCP和Modbus RTU协议标准,不难实现PLC与本模块的Modbus RTU以及本模块与外部以太网设备的Modbus TCP数据通讯。然后在本模块程序内部完成数据包的Modbus TCP和Modbus RTU之间数据转换,采用透明传输方式,即把从一个端口接收出来的数据转换后立即从另一个端口输出去。Modbus TCP相比Modbus RTU报文格式,多了六个字节的前缀,少了后面的CRC校验,它是采用TCP/IP 和链路层(以太网)校验和机制来校验分组交换的准确性。
4.4 模块状态监测
模块状态监测包括:系统运行状态,Modbus RTU通讯状态,Modbus TCP连接状态、通讯状态,以及通讯异常报警。
4.5 通讯测试
实验平台采用NA200 PLC挂载本模块,然后通过网络交叉线和PC电脑相连,利用网上免费网络调试工具SocketTool2进行通讯测试。先在SocketTool2建立客户端,然后连接,发送测试通讯数据十六进制000000000006500600C90055,查看是否有数据返回。
五、结束语
本文设计的Modbus TCP通讯模块,能和现有PLC稳定连接,从成本、性能上都将是个比较好的选择。前文介绍的是以从站模式为例,对于主站模式,可以PLC利用串口对通讯模块设置通讯请求的从站信息(IP地址等)。在不改变硬件的基础之上,通过软件升级,可以把模块功能更加完善。比如:满足通讯模式一主多从、一从多主、以及自定义通讯的现场应用需求。同时本文提出的思路也可以作为一种通用方案,推广到类似的产品开发中。
PANASONIC MINAS AC SERVO DRIVER DV88003LFGAE AJL 100V
GE FUJI 6K3003BB1 USPP 6K3003BB1
Texas Instruments 500-5011
Panasonic Minas AC Servo Driver MSD041A1X Drive
ASEA BROWN BOVERI DSQC 314B USPP DSQC314B
Panasonic AC Servo Motor M***042P1B FreeShip
EXTRON 60-107-01 USPP 6010701
CATEP INTERNATIONAL BD.20-02 USPP BD2002
TEXAS INSTRUMENTS 520C-1102 **
Panasonic/Nais Servo Motor MBDDT2210003 NIB!
TEXAS INSTRUMENTS PLC 7MT-400 NSPP 7MT400
ASEA BROWN BOVERI 1SDA054335R1 USPP 1SDA054335R1
ASEA BROWN BOVERI 48990001-FK USPP 48990001FK
WARNER ELECTRIC 5371-273-028 USPP 5371273028
ASEA BROWN BOVERI OES400J3 NSFP OES400J3
BANNER ENGINEERING MGE-4216A NSFP MGE4216A
ASEA BROWN BOVERI HIEE300025R0002 NSFP HIEE300025R0002
ALLEN BRADLEY 2711-K6C8 USPP 2711K6C8
SIEMENS 6AG4010-0AA00-0CA0 NSFP 6AG40100AA000CA0
PANASONIC AC SERVO DRIVE MDDDT5540L01 1.5KW
Panasonic AC SERVO MOTOR M***A082A1C
SIEMENS 6ES5-535-3MA12 USPP 6ES55353MA12
ASEA BROWN BOVERI S4HQ250BRRAS4 NSFP S4HQ250BRRAS4
Texas Instruments Slot Rack w/ (12) Module(s) 505-6851A, 505-4232 etc D14
DYNAMATIC 15-902-100 USPP 15902100
Panasonic/Nais Servo Motor MFDDTB3A2 NIB!
PANASONIC AMKB300B20KAH AC SERVO MOTOR NEW
MEASUREX 05353500 NSPP 05353500
PANASONIC AMKB400B20KAH AC SERVO MOTOR NEW
Texas Instruments Programmer TI 101 Model 100-3101 NEW
Texas Instruments 500-5039 NEW!
ASEA BROWN BOVERI 3HAB5956-1 USPP 3HAB59561
Panasonic AC Servo Motor M***02A1E Free Ship
ASEA BROWN BOVERI 57310255-AX USPP 57310255AX
SIEMENS 1FT6062-6AC71-4TB0 NSFP 1FT60626AC714TB0
ASEA BROWN BOVERI 3BHB002916R0101 USPP 3BHB002916R0101
TEXAS INSTRUMENTS PLC 505-4317 NSPP 5054317
Panasonic AC SERVO MOTOR AMKA100B10KA0 AMKA100B10KAO Free Ship
Panasonic Servo Driver MCDHT3520E New in Box Free Ship
ALLEN BRADLEY 1774-CI2 USPP 1774CI2
TEXAS INSTRUMENTS PLC 525-1104 USPP 5251104
ASEA BROWN BOVERI SPAD-346-C3 NSPP SPAD346C3
ASEA BROWN BOVERI OETL-NF1600SW USPP OETLNF1600SW
Panasonic AC Servo Motor 1.0KW M***102Q1C
ASEA BROWN BOVERI YB161102-BS USPP YB161102BS
ASEA BROWN BOVERI 3BSE008546R1 USPP 3BSE008546R1
TEXAS INSTRUMENTS 500-5023 5005023
SQUARE D 9998-SL11 NSFP 9998SL11
Expedited shipping ailable
ASEA BROWN BOVERI DSCS-116 USPP DSCS116
TEXAS INSTRUMENTS PLC 315-DR USPP 315DR
COPELAND ZR44KA-PFV-830 NSFP ZR44KAPFV830
MOOG 152D-423A USPP 152D423A
ASEA BROWN BOVERI 57088478 NSFP 57088478
Panasonic AC Servo Motor MHMD082G1U 750W New in Box Free Ship
ROCHESTER INSTRUMENT SYSTEMS CL-9001 USPP CL9001
Panasonic AC Servo Driver MSDB3A2AAD02 New 0190-26756
Panasonic MDD153A1VE AC Servo Driver
TEXAS INSTRUMENTS PLC 505-4616 NSPP 5054616
PANASONIC AC SERVO DRIVER MSD5A1E
TEXAS INSTRUMENTS PLC 435-CPU USPP 435CPU
Texas Instrument 5TI programmer with case 5TI-2001
TEXAS INSTRUMENTS PLC 505-4317 NSFP 5054317
TI Siemens CTi 500-5035 5005035 Programmable Basic 0006 PLC
Panasonic AC Servo Motor MHMD042P1U Free Ship
ASEA BROWN BOVERI RTO08358 USPP RTO08358
LEYBOLD SV25-109-03-51 USPP SV251090351
Panasonic AC Servo Motor M***011A1E Free Ship
TEXAS INSTRUMENTS 500-5013 OUTPUT MODULE LOT 5005013
Texas Instruments 7MT200
500-5056 Texas Instruments Siemens TI 32 pt output module 5005056 N110
ASEA BROWN BOVERI YB560103-CC USPP YB560103CC