西门子串口通讯08-CP341在STEP7环境中做Modbus从站通讯

西门子串口通讯08-CP341在STEP7环境中做Modbus从站通讯
v—x—公–众–号:工控自动化老王
1 硬件列表
设备名称 设备型号
PS 307 6ES7 307-1EA00-0AA0
CPU 315-2DP 6ES7 315-2AG10-0AB0
MMC 6ES7 953-8LG11-0AA0
CP341 6ES7 341-1AH01-0AE0
Dongle 6ES7 870-1AB01-0YA0
应用CP341进行 MODBUS协议通信时需要有Dongle的支持。在使用之前先将Dongle安装在CP341模块的背面的Dongle插槽中,Dongle和插入Dongle前后的CP341如下图所示:
在这里插入图片描述
2 组态和配置
1、打开上面创建的项目ptp,用鼠标右键点击项目名称,选择Insert New Object-> SIMATIC 300 Station,更改站的名称为CP341 Modbus-S。
在这里插入图片描述
2、双击Hardware进入硬件配置画面,插入RACK、CPU315-2DP、CP341。
在这里插入图片描述
3、 双击CP341模板,点击Parameter…,配置CP341参数。在Protocol选项中选择MODBUS Slave。
在这里插入图片描述
4、双击Protocol下的信封图标,配置MODBUS Slave参数,点击MODBUS-Slave按钮。
在这里插入图片描述
• 步骤1:设置MODBUS从站地址,本例中设为2;
• 步骤2:设置MODBUS从站波特率,停止位,校验位等参数;
• 接下来配置功能代码所表示的参数,具体参见下4图
5、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。
在这里插入图片描述
6、FC02读取输入数据位的状态,地址对应如上文所述。
在这里插入图片描述
7、FC03,06,16组态输出寄存器数据区,对应西门子数据区为DB块。
在这里插入图片描述
8、FC04组态输入寄存器数据区,对应西门子数据区同样是DB块。
在这里插入图片描述
9、设置写参数的限制值。
在这里插入图片描述
10、如果选用的是RS422/485接口的CP341时,还需要设置接口类型,如下图所示,其它参数均采用默认设置。
在这里插入图片描述
11、配置完成后保存时会提示是否装载驱动。
在这里插入图片描述
12、此时必须连接到实际的PLC,点击Yes按钮装载驱动,装载时CPU必须为STOP模式。驱动装载完成后,如果再次装载,STEP7会提示Driver already exists,配置完成后点击“编译保存”按钮保存编译硬件组态,并确认没有错误。
在这里插入图片描述
3 编写通信程序
1、将FB7,FB8添加到程序Blocks中,方法为双击OB1,打开OB1编程画面,从库Libraries->CP PtP->CP341中调用发送程序块FB8和接收程序块FB7,然后再从OB1中删除。因为MODBUS从站通讯要用到这两个功能块。
2、调用MODBUS从站功能块FB80,位置在Libraries->Modbus->Modbus ->FB80。分配背景数据块DB80,将参数LADDR设为硬件组态中的起始逻辑地址256。
在这里插入图片描述
2、调用MODBUS从站功能块,设置参数。
在这里插入图片描述
LADDR 硬件组态中的起始逻辑地址,本例中为256
START_TIME 超时初始化定时器,本例中为T1
START_TIME 超时初始化时间值,本例中为1s
OB_MASK 外设访问错误屏蔽位,本例中为M100.0
CP_START FB初始化始能位,本例中为M100.1
CP_START_FM CP_START初始化的上升沿位,本例中为M100.2
CP_START_NDR 从CP写操作位,本例中为M100.3
CP_START_OK 初始化成功标志,本例中为M100.4
CP_START_ERROR 初始化失败标志,本例中为M100.5
ERROR_NR 错误号,本例中为MW102
ERROR_INFO 错误信息,本例中为MW104,可以查看Modbus Slave 手册第10章
3、创建FC03,06,16功能代码通讯数据块DB1。
在这里插入图片描述
4、创建FC04功能代码通讯数据块DB2。
在这里插入图片描述
4 设备连接
本文档使用的CP341的接口是RS232C,因此需要通过标准的RS232C电缆来连接CP341和计算机的串口,具体的电缆连接方法请查看CP341手册B章节连接电缆部分(见:手册、文档和软件链接部分)。
如果使用的CP341是RS485接口的模块,需要使用RS232C/RS485转换器。
5 通信测试
前面使用Step7 V5.5软件已经将通信CP341的通信工作做完,下面进行通信测试。这里使用串口通讯测试软件Modscan32软件来测试CP341和计算机的通信,步骤如下
1、首先将硬件配置和程序下载到CPU315-2DP中。在计算机上打开MODBUS主站仿真软件Modscan32。
在这里插入图片描述
2、点击Modscan32上的Connection->Connect,显示画面如下,选择计算机和CP341相连的COM口COM1,设好波特率,数据位,停止位,校验方式,如下图:
在这里插入图片描述
3、设置完成,点击OK,显示画面如下。
在这里插入图片描述
4、数据显示区的10个地址的数据对应CPU中DB1的前10个字(Word)的数值(DBW0–DBW10分别为1-10 ),如下图。
在这里插入图片描述
5、其它数据的读取,只需更改访问的数据类型,此处不再介绍。
6、但要说明一下对于浮点数的显示,PLC中浮点数的高16位和低16位与Modscan32显示的相反,即PLC中浮点数的高16位对应Modscan32显示浮点数的低16位,PLC中浮点数的低16位对应Modscan32显示浮点数的高16位,可在程序中做一下处理,如下图:
在这里插入图片描述
此时Modscan32显示的浮点数40001对应MD200的浮点数值,但MODBUS地址对应DB1.DBD0。
在这里插入图片描述

posted @ 2020-05-25 09:36  工控自动化老王  阅读(1142)  评论(0编辑  收藏  举报