设备名称 |
设备型号 |
RACK |
6ES7400-1JA01-0AA0 |
PS407 4A |
6ES7407-0DA02-0AA0 |
CPU414-3PN/DP |
6ES7414-3EM06-0AB0 |
CP441-2 |
6ES7441-2AA03-0AE0 |
Dongle | 6ES7 870-1AB01-0YA0 |
RS422/485接口 |
6ES7963-3AA00-0AA0 |
将Dongle插入CP441中,如下图所示。
图1
注意:STEP7 V5.X软件上,必须安装如下软件包才可进行后续的组态配置。
PTP协议软件包:SIMATIC S7-CP PtP Param V5.1+SP15,安装此驱动软件后才能给穿行通信模板分配参数,并可以再STEP7中集成通信编程所需要使用的功能块。
Modbus主站驱动:用于Modbus主站时,需要安装此驱动软件包,安装驱动前必须先安装PTP协议软件包。
Modbus从站驱动:用于Modbus从站时,需要安装此驱动软件包,安装驱动前必须先安装PTP协议软件包。
1、打开创建项目设置项目名称:CP443-2 Modbus-S,用鼠标右键点击项目名称,选择Insert New Object-> SIMATIC 400 Station,双击Hardware进入硬件配置画面,插入RACK、PS407 4A 、CPU414-3PN/DP、CP441-2。如下图所。
图2
2、双击CP441-2模块,进入属性配置窗口,选择Basic Parameters标签,进行接口配置,本文接口1、2,分别配置了RS422/485。
图3
3、 选择General标签,在Interface处添加一个PTP连接。
图4
4、返回Basic Parameters标签界面,点击"Parameters..."配置CP441-2参数,在Protocol 中选择Modbus Slave。
图5
5、选择Protocol信封图标,进入协议参数配置对话框,点击Modbus-Slave标签,设置通讯速率、报文信息等参数,协议参数地址本例设置为2。
图6
6、进入功能码配置界面,FC01,05,15:读取、强制输出位的状态;左边的地址为信息传送地址,右边对应西门子的PLC地址区,即左边地址从0~100对应Modbus地址区为00001~00101,对应西门子数据区为M0.0~M12.4;101~200对应Modbus 地址区为00102~00201,对应西门子数据区为Q0.0~Q12.3;从地址201~300,301~400对应Modbus 地址区为00202~00301,00302~00401,对应西门子数据区为Timer,Counter。
图7
7、FC02读取输入数据位的状态,地址对应如下。图8
8、FC03,06,16组态输出寄存器数据区,对应西门子数据区为DB块。
图9
9、FC04组态输入寄存器数据区,对应西门子数据区同样是DB块
图10
10、设置功能码FC05 06 15 16写参数的限制值。
图11
11、选用RS422/485接口时,还需要设置接口类型,如下图所示,其他参数默认即可。
图12
12、在硬件组态画面中,点击“”图标,打开网络组态,进入网络配置界面。选中站点CPU,右击插入新连接。
图13
13、选择连接对象为“Unspecified”未指定,连接类型选为“Point-to-Point Connection“,点击OK确认。
图14
14、进入PTP连接属性对话框,注意Local ID(HEX),后面编程时需要使用,每个连接分配不同Local ID,可以手动修改,范围W#16#1000- W#16#1400。“Communication Direction“选择双向通讯。点击OK确认组态,编译无误后下载。
图15
15、可以通过查看连接状态,直到”Connection status“显示图标下图Set up,说明连接正确建立。
图16
16、注意:CP441做Modbus通讯时,需要更改CPU传送参数到模块的时间,最小为1000(=100s),来保证有足够长的时间将使用的加载协议驱动下载到CP卡中。
图17
1、双击OB1,打开编程界面,从库中Libraries-Modbus调用FB180,为其分配背景数据块DB180。
图18
2、新建数据块FC 03 06 16, FC04功能码通讯数据区DB1,DB2,本例建50个WORD数据结构。
图19
图20
3、指令块参数设置 。
图21
FB80 的参数设置如下:
名称 |
数据类型 |
注释 |
ID |
INPUT/INT |
Local ID号,在PTP连接属性中获得,16进制 |
START_TIMER |
START_TIMER |
初始化超时定时器,本例中为T1 |
START_TIME |
INPUT/S5TIME |
初始化超时时间值,本例为5S |
START_TIMER |
START_TIMER |
通讯状态读取定时器,本例中T2 |
START_TIME |
INPUT/S5TIME |
通讯状态读取时间,本例为2S |
OB_MASK |
INPUT/BOOL |
IO访问错误屏蔽位,本例使用M300.0 |
CP_START |
INPUT/BOOL |
FB初始化使能位,本例使用M300.1 |
CP_START_FM |
INPUT/BOOL |
CP_START初始化的上升沿位,本例使用M300.2 |
CP_NDR |
OUTPUT/BOOL |
CP写操作位,本例M300.3 |
CP_START_OK |
OUTPUT/BOOL |
初始化成功完成位,本例M300.4 |
CP_START_ERROR |
OUTPUT/BOOL |
初始化错误标志,本例M300.5 |
ERROR_NR |
OUTPUT/WORD |
错误号,本例MW302 |
ERROR_INFO |
OUTPUT/WORD |
错误信息,本例MW304,诊断信息可参考手册 |
本文使用的是RS485接口,通过将485接口转化232到USB连接计算机的接口,需要使用RS232C/RS485转换器(需要选购第三方设备)。
具体的电缆连接方法请查看:串口接线
这里使用串口通信测试软件ModSCAN软件来测试CP441-2和计算机的通信,步骤如下:
1、在计算机上打开软件ModSCAN32,选择菜单栏连接设置-连接,设置连接参数,选择对应的串口,设置波特率、数据位、停止位、校验方式、通讯协议。设置完成,点击OK,监视控制画面。
图22
2、将程序块引脚CP_START置1,CP_START_OK和CP_START_FM也会为1,主站设置功能码03,起始地址40001,长度4,读取Modbus从站寄存器数据。
图23
更详细的资料请参看如下手册: