西门子CP341通信模块

西门子CP341通信模块

价格 面议
起订量 10㎡
货源所属商家已经过真实性核验
品牌 SIEMENS/西门子
型号 6ES7341-1CH02-0AE0
关键字
在线咨询 立即下单 留言询价 电话咨询
上海启水自动化科技有限公司
通过真实性核验手机验证
主营:
西门子plc、触摸屏、变频器、伺服电机、电线电缆、楼宇风暖

进入店铺全部产品

店内推荐

联系我们

联系人:李红英

邮箱:leehonying1018@126.com

电话:15307431289

地址: 中国 上海 松江区中国上海市松江区鼎源路618弄61号楼5楼

产品详情

  西门子CP341通信模块代理

  西门子6ES7341-1CH02-0AE0通讯处理器供应

  西门子s7-300通信模块CP341通讯处理器带有 RS422/485 接口

  -------------------------------------------------------------------------------------------------------------------------------

  CP341 Modbus RTU多站点轮询 编程

  4.1 创建发送数据块DB1

  如图 4定义Modbus功能码03的数据格式

  图4

  更多功能码格式参考手册《以用于 PtP CP MODBUS 协议 RTU 格式 S7 的SIMATIC 可加载驱动程序为主站》

  4.2 创建接收数据DB

  在此共建立了2个DB(DB4,DB5)分别存放来自两个从站的数据,每个DB分配了一个0~1000个字的整型数组如图 5。

  图 5

  4.3 创建轮询功能块FC1

  设置指令计数器(MW2),如图6本例中设置为2,即2两条指令。

  图6

  根据指令计数器值构造发送指令并接收缓冲区。如图7指令计数器数值为1,构造的发送指令为访问1号从站,功能码03,起始地址0(对应Modbus地址40001),4个寄存器;接收缓冲区为数据块DB4,起始地址为0。

  图7

  如图8指令计数器数值为2,构造的发送指令为访问2号从站,功能码03,起始地址0(对应Modbus地址40001),4个寄存器;接收缓冲区为数据块DB5,起始地址为2。

  图 8

  为了实现数据发送和接收,FC1中还必须调用CP341发送FB8(图9)和接收FB7(图10)功能块

  图 9

  FB8参数说明表格2

  SF

  

  ‘S’为发送,此处必须为大写的‘S’

  

  LADDR

  

  硬件组态中的起始逻辑地址,本例中为256

  

  REQ

  

  发送数据触发位,上升沿触发,本例中为M0.0

  

  DB_NO

  

  发送数据块号,本例中为1

  

  DBB_NO

  

  发送数据的起始地址,本例中为0

  

  LEN

  

  发送数据的长度,本例中为6

  

  R_TYP

  

  ‘X’为扩展的数据块,此处必须为大写的‘X’

  

  R

  

  取消通讯,本例始终为初始值FALSE

  

  DONE

  

  发送完成位,无故障发送完成后为true,M0.1

  

  ERROR

  

  错误位,为true说明有错误,M0.2

  

  STATUS

  

  状态字,标识错误代码,查看Modbus Master和CP341手册

  

  其它参数

  

  查看在线帮助

  

  表 2

  图 10

  FB7参数说明表格3

  LADDR

  

  硬件组态中的起始逻辑地址,本例中为256

  

  DB_NO

  

  发送数据块号,本例中为MW4

  

  DBB_NO

  

  发送数据的起始地址,本例中为MW6

  

  LEN

  

  接收数据的长度

  

  EN_R

  

  使能接收位,本例中始终为TURE

  

  R

  

  取消通讯,本例始终为初始值FALSE

  

  NDR

  

  接收完成位,无故障接收完成后为true

  

  ERROR

  

  错误位,为true说明有错误

  

  STATUS

  

  状态字,标识错误代码,查看Modbus Master和CP341手册

  

  其它参数

  

  查看在线帮助

  

  表 3

  CP341 Modbus RTU主站轮询从站过程:以功能码03(Function Code 03)为例,正常情况下REQ(M0.0)检测到一个上升沿时,FB8启动发送作业,从站收到主站请求后发送响应数据,FB7将从站响应的数据送回给CPU处理,发送作业完成位DONE(M0.1)置位,同时指令计数器MW2加1,构造下条指令,传递到发送DB中(DB1.DBB0~DB1.DBB5),更新下一条指令的接收区地址(MW4,MW6)同时触发REQ上升沿,启动一个新的发送作业。

  图 11

  同样以功能码03(Function Code 03)为例,在故障情况下,FB8发送功能无法完成,ERROR置位,那么判断该次发送作业失败,更新发送区地址和接收区地址启动下一个发送作业。如果FB8的DONE和ERROR由于某些故障都无法置位,那么通讯将处于死锁状态,所以在启动发送作业同时启动超时定时器t0(本例中超时定时器时间设为2100ms),即定时器计时结束时DONE或ERROR仍然没有置位,那么判断该次发送作业失败,更新发送区地址和接收区地址启动下一个发送作业。

  如图12所示,主站向Slave1发送请求指令,由于1号从站断线故障,从站没有收到主站请求,也无法返回主站需要的数据,当预设的从站响应时间t(如图11,t=2000ms)超时,发送功能块ERROR(M0.2)置位,主站判断本条指令失败,同时发起下一条指令作业(Function Code 03)访问Slave2,Slave2收到主站请求后,将响应数据返回给主站CP341,主站再通过FB7将从站接收到的数据保存到位置,发送功能块DONE(M0.1)置位,同时触发下一次发送作业。

  图 12

  需要注意的是超时定时器时间(t0)必需大于预设的从站响应时间t,而预设的从站响应时间应大于等于主站发出请求到接收到从站响应数据的时间值(tn,n=1,2),即t0 > t ≥ Max(t1,t2),如图 13

  图 13

  4.4 在OB1中调用轮询功能块FC1

  图 14

  Cp341_mo.zip (569 KB) ( 569 KB )

  5. 总结

  本文档所提供的例程适用于CP341作为Modbus主站轮询访问多个从站,根据实际需要构造不同功能码指令,可读写不同的从站的不同地址空间。本例对通讯故障时的处理方式是简单的放弃当前作业,并触发下一个作业,实际运用中可根据实际情况判断是否需要重发或进行其他故障处理。

  西门子CP341通信模块代理

  西门子6ES7341-1CH02-0AE0通讯处理器供应

  西门子s7-300通信模块CP341通讯处理器带有 RS422/485 接口

售后服务

商家电话:
15307431289