设备名称 |
设备型号 |
PS 307 |
6ES7 307-1EA01-0AA0 |
CPU 315-2PN/ DP |
6ES7 315-2EH14-0AB0 |
MMC |
6ES7 953-8LG30-0AA0 |
CP341 |
6ES7 341-1AH02-0AE0 |
Dongle |
6ES7 870-1AB01-0YA0 |
应用CP341进行 MODBUS协议通信时需要有Dongle的支持。在使用之前先将Dongle安装在CP341模块的背面的Dongle插槽中,Dongle和插入Dongle前后的CP341如下图所示。
图1
1、打开软件TIA PORTAL STEP7 V13,点击项目->新建...创建一新项目,项目名称为341_modbus_Slave。
图2
2、用鼠标点击“添加新设备”,选择SIMATIC S7-300->CPU->CPU 315-2PN/DP->6ES7 315-2EH14-0AB0。
图3
3、双击“设备组态”进入硬件组态界面,导轨RACK和CPU 315-2PN/DP已经存在,只需要插入PS307和CP341。
图4
4、双击CP341模板,进入CP341的属性框,配置CP341参数。
图5
5、在“协议”选项中选择“Modbus从站”。配置Modbus从站通信参数,设定的通信参数要和通讯伙伴的相同。传输率(通信波特率):9600bps,数据位:8位,停止位:1位,奇偶校验:无,从站站址:2,其他的参数都采用默认设置。
图6
6、FC01,05,15:读取、强制输出位的状态;分4个范围,每个范围前2行地址为信息传送地址,后2行对应西门子的PLC地址区,即第1范围从0~15对应MODBUS地址区为00001~00016,对应西门子数据区(标记F.)为M10.0~M11.7;第2范围从16~31对应MODBUS 地址区为00017~00032,对应西门子数据区(输出Q.)为Q0.0~Q1.7;第3范围从地址32~64对应Modbus 地址区为00033~00065,对应西门子数据区(时间T.)为T0~T1;第4范围从地址64~96对应Modbus 地址区为00065~00097,对应西门子数据区(计数器C.)为C0~C1。
图7
7、FC02:读取输入数据位的状态,分2个范围,每个范围前2行地址为信息传送地址,后2行对应西门子的PLC地址区,即第1范围从0~15对应MODBUS地址区为10001~10016,对应西门子数据区(标记F.)为M12.0~M13.7;第2范围从16~31对应MODBUS 地址区为10017~10032,对应西门子数据区(输入I.)为I0.0~I1.7。
图8
8、FC03、06、16:组态保持寄存器数据区,对应西门子数据区为DB块,即MODBUS保持寄存器地址区的地址40001,对应西门子DB块的地址DB10.DBW0,依次40002对应DB10.DBW2,往后依次类推。
图9
9、FC04:组态输入寄存器数据区,对应西门子数据区同样是DB块,即MODBUS输入寄存器地址区的地址30001,对应西门子DB块的地址DB11.DBW0,依次30002对应DB11.DBW2,往后依次类推。
图10
10、设置写参数的限制值,对写操作做访问限制。
图11
11、如果选用的是RS422/485接口的CP341时,还需要设置接口类型,如下图所示,其它参数与RS232的设置一样。
图12
12、查看驱动程序状态,提示在“在线诊断”对话框中更新CP上的驱动程序,如下图所示。
图13
1、右击模块-点击“在线与诊断”-将项目转至在线-点击“功能”-“加载特殊驱动程序
图14
2、点击”加载“,完成在模块上加载驱动程序操作
图15
1、在设置功能码FC03、06、16中,创建DB10满足设置需要;在设置功能码FC04中,创建DB11满足设置需要。这2个数据块都创建1个数据类型Array的变量,数组元素的数据类型为Word,数量为101。
图16
2、进入主程序OB1,从通信->通信处理器->MODBUS Slave (RTU),调用功能块MODB_341,MODB_341的背景数据块为DB1。
图17
关于功能块MODB_341的管脚说明。
LADDR |
硬件组态中的起始逻辑地址,本例中为256,见图15 |
START_TIMER |
超时初始化定时器,本例中为T0 |
START_TIME |
超时初始化时间值,本例中为S5t#1s |
OB_MASK |
外设访问错误屏蔽位,本例中为M200.0 |
CP_START |
FB初始化始能位,该位需要置1。本例中为M200.1 |
CP_START_FM |
CP_START初始化的上升沿位,本例中为M200.2 |
CP_START_NDR |
从CP写操作位,本例中为M200.3 |
CP_START_OK |
初始化成功标志,本例中为M200.4 |
CP_START_ERROR |
初始化失败标志,本例中为M200.5 |
ERROR_NR |
错误号,本例中为MW202 |
ERROR_INFO |
错误信息,本例中为MW204,可以查看Modbus Slave 手册第10章 |
图18
本文档使用的CP341的接口是RS232C,因此需要通过标准的RS232C电缆来连接CP341和计算机的串口,具体的电缆连接方法请查看CP341手册B章节连接电缆部分(见:手册、文档和软件链接部分)。
如果使用的CP341是RS485接口的模块,需要使用RS232C/RS485转换器。
前面使用 TIA Step7 软件已经将通信CP341的通信工作做完,下面进行通信测试。这里使用串口通讯测试软件Modscan32软件来测试CP341和计算机的通信,步骤如下
1、将项目程序在线,本示例中手动将M200.1(即:CP_START)置1,M200.2(即:CP_START_FM)和M200.4(即:CP_START_OK)也会为1。
图19
2、首先将硬件配置和程序下载到CPU315-2DP中。在计算机上打开MODBUS主站仿真软件Modscan32。
图20
3、点击Modscan32上的Connection->Connect,显示画面如下,选择计算机和CP341相连的COM口COM1,设好波特率,数据位,停止位,校验方式,如下图。
图21
4、设置完成,点击OK,显示画面如下。
图22
5、数据显示区的10个地址的数据对应CPU中DB10的前10个字(Word)的数值(DBW0–DBW10分别为1-10 ),如下图。给这10个字赋值1-10。
图23
6、Modscan32软件界面03功能码的地址40001-40010分别显示1-10的数据。
图24
更详细的资料请参看如下手册:
CP341使用手册