设备名称 |
设备型号 |
PS 307 |
6ES7 307-1EA01-0AA0 |
CPU 319-3PN/ DP |
6ES7 318-3EL00-0AB0 |
MMC |
6ES7 953-8LG30-0AA0 |
CP341 |
6ES7 341-1CH02-0AE0 |
Dongle |
6ES7 870-1AA01-0YA0 |
应用CP341进行 MODBUS协议通信时需要有Dongle的支持。在使用之前先将Dongle安装在CP341模块的背面的Dongle插槽中,Dongle和插入Dongle前后的CP341如下图所示。
图1
1、打开软件TIA PORTAL
图2
STEP7 V13,点击项目->新建...创建一新项目,项目名称为341_modbus_Master。
2、用鼠标点击“添加新设备”,选择SIMATIC S7-300->CPU->CPU 319-3PN/DP->6ES7 318-3EL00-0AB0。
图3
3、双击“设备组态”进入硬件组态界面,导轨RACK和CPU 319-3PN/DP已经存在,只需要插入PS307和CP341。
图4
4、双击CP341模板,进入CP341的属性框,配置CP341参数。
图5
5、在“协议”选项中选择“Modbus主站”。配置modbus通信参数,设定的通信参数要和通讯伙伴的相同。传输率(通信波特率):9600bps,数据位:8位,停止位:1位,奇偶校验:无。
图6
6、本示例选用的是RS422/485接口的CP341,还需要设置接口属性,如下图所示。
图7
7、查看驱动程序状态,提示在“在线诊断”对话框中更新CP上的驱动程序,如下图所示。
图8
1、右击模块-点击“在线与诊断”-将项目转至在线-点击“功能”-“加载特殊驱动程序
图9
2、点击”加载“,完成在模块上加载驱动程序操作。
图10
1、双击“添加新块”,创建发送数据块DB10和接收数据块DB11,发送数据块的名称为Send,接收数据块的名称为Rev;如下图所示,发送数据块中新建几个变量,从站地址为2,功能码为3,起始地址为0,读4个寄存器数据,具体功能码3 的使用参见手册“S7串行通信模板Modbus RTU主站可装载驱动的操作说明” 6.3章节的说明;如下图所示,接受数据块中新建1个数据类型Array的变量,数组元素的数据类型为Byte,数量为400。
图11
图12
2、进入主程序OB1,从通信->通信处理器->PtP链接:CP341,调用发送功能块P_SND_RK和接收功能块P_RCV_RK。P_SND_RK的背景数据块为DB1,P_RCV_RK的背景数据块为DB2。
图13
CP341的发送功能块P_SND_RK 的参数设置见下表。
管脚 |
解释描述 |
SF |
‘S’为发送,此处必须为大写的‘S’ |
LADDR |
硬件组态中的起始逻辑地址,本例中为256,见图11。 |
REQ |
发送数据触发位,上升沿触发,本例中为M0.5,为时钟存储器的位,见图12。 |
DB_NO |
发送数据块号,本例中为10(DB10) |
DBB_NO |
发送数据的起始地址,本例中为0(DB10.DBB0) |
LEN |
发送数据的长度,本例中为6 |
R_TYP |
‘X’为扩展的数据块,此处必须为大写的‘X’ |
R |
取消通讯,本例中不用 |
DONE |
发送完成位,发送完成后为TRUE,同时没有错误 |
ERROR |
错误位,为TRUE说明有错误 |
STATUS |
状态字,标识错误代码,查看Modbus Master手册获得相应的说明 |
其它参数 |
本例中不用 |
CP341的接收功能块P_RCV_RK 的参数设置见下表。
管脚 |
解释描述 |
LADDR |
硬件组态中的起始逻辑地址,本例中为256,见图11。 |
DB_NO |
发送数据块号,本例中为11(DB11)。 |
DBB_NO |
发送数据的起始地址,本例中为0(DB11.DBB0)。 |
LEN |
接收数据的长度,本例中为MW22,只显示一个扫描周期,即:只有在接收到数据的当前周期,此值不为0。 |
EN_R |
使能接收位,本例中为M20.0,常闭点, 始终保持接收状态。 |
R |
取消通讯,本例中不用。 |
NDR |
接收完成位,接收完成并没有错误为TRUE,只显示一个扫描周期。 |
ERROR |
错误位,为TRUE说明有错误,只显示一个扫描周期。 |
STATUS |
状态字,标识错误代码,只显示一个扫描周期,查看Modbus Master手册获得相应的说明。 |
其它参数 |
本例中不用 |
图14
图15
本文档使用的CP341的接口是RS232C,因此需要通过标准的RS232C电缆来连接CP341和计算机的串口.
具体的电缆连接方法请查看:串口接线
如果使用的CP341是RS485接口的模块,需要使用RS232C/RS485转换器(需要选购第三方设备)。
前面使用 TIA Step7 软件已经将通信CP341的通信工作做完,下面进行通信测试。这里使用串口通讯测试软件ModSim32软件来测试CP341和计算机的通信,步骤如下
1、双击ModSim32软件图标,新建项目,点击Port1,进入端口1做设置,本例计算机只有一个端口,所以就对端口1做设置,如果计算机有多个端口,要注意所选端口。
图16
2、进入Port1设置界面,设置波特率、数据位、奇偶校验等参数,要和CP341的参数相同。
图17
3、点击“OK”,选择软件的03功能码界面,本例设置03功能码的10个数据,其中前4个数据分别设置成1—4。
图18
4、首先将硬件配置和程序下载到CPU319-3PN/DP中,时钟脉冲信号M0.5从0跳变成1时,CP341将数据发送出去。
图19
5、M20.0为常闭点,程序下载完成,CPU运行后,就始终处于接收状态。在STEP7中打开接收数据块DB11监控接收到的数据,可以看到发送的数据被正确的接收。
图20
更详细的资料请参看如下手册: