北京安方同吉专业授权代理西门子PLC,专注工控系统集成10年,拥有专业高效的团队,是西门子官方认可的资深合作伙伴,欢迎咨询合作!  客服热线:18211023581
S7300模块CP341用05功能码写是否用到FB7和FB8

S7300模块CP341用05功能码写是否用到FB7和FB8

分享嘉宾:施立功    内容来源:西门子PLC一级代理商    发布时间:2021-07-21 10:29    浏览量: 第24484篇深度好文:2267个字| 6分钟阅读
  S7300模块CP341用05功能码写是否用到FB7和FB8?如题,CP341模块官网的例子是使用03的功能码,
 
  1、客户想问一下如果想用05功能码进行写的话是不是也是使用FB7和FB8这两块,只是把对应的功能码更改一下就好,还是需要使用其他FB块?
 
  2、还有一个问题,客户想读的两个地址不一样,比如Modbus地址4000和4009两个数据,是不是只能在DB接口设置连续读取10个地址,不能两次调用FB8、FB7分别读

  我们找了一些在西门子STEP7环境下CP341做主站与从站时的通讯编写资料,可供参考。
 
 
西门子PLC300编程软件

  CP341作主站(Master)的ModbusRTU通讯(STEP7)

 
  硬件及软件列表
 
设备名称
设备型号

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-1AA01-0YA0


  将Dongle插入CP341中
 
  组态和配置
 
  1、打开上面创建的项目ptp,用鼠标右键点击项目名称,选择InsertNewObject->SIMATIC300Station,更改站的名称为CP341Modbus-M。
 
  2、双击Hardware进入硬件配置画面,插入RACK、CPU315-2DP、CP341。
 
  3、双击CP341模板,点击Parameter...,配置CP341参数。在Protocol选项中选择MODBUSMaster。
 
  4、双击Protocol下的信封图标,配置ModbusMaster参数,点击Modbus-Master按钮,设置通讯波特率等参数。
 
  5、配置完成后保存时会提示是否装载驱动。
 
  6、此时必须连接到实际的PLC,点击Yes按钮装载驱动,或点击LoadDrivers装载,装载时CPU必须为STOP模式。
 
  7、装载完成后,如果再次装载,Step7会提示Driveralreadyexists。配置完成后点击下载按钮保存编译硬件组态,并确认没有错误。

  编写通信程序
 
  1、双击OB1,打开OB1编程画面,从库Libraries->CPPtP->CP341中调用发送程序块FB8P_SND_RK,分配背景数据块DB8,将参数LADDR设为硬件组态中的输入起始逻辑地址256。
 
  2、创建发送数据块DB1,从站地址为2,功能码为3,起始地址为0,读4个寄存器数据,具体功能码3的使用参见ModbusMaster手册5.3FunctionCode03-ReadOutputRegisters部分的说明。
 
  3、调用发送功能块,设置参数。
 
  4、从库中Libraries->CPPtP->CP341调用接收程序块FB7P_RCV_RK,分配背景数据块DB7,将LADDR设为硬件组态中的输入起始逻辑地址256。
 
  5、创建接收数据块DB2。
 
  6、调用接收功能块,设置参数。
 
  设备连接
 
  本文档使用的CP341的接口是RS232C,因此需要通过标准的RS232C电缆来连接CP341和计算机的串口.
 
  具体的电缆连接方法请查看:串口接线
 
  如果使用的CP341是RS485接口的模块,需要使用RS232C/RS485转换器(需要选购第三方设备)。

  CP341作从站(Slave)的ModbusRTU通讯(STEP7)

 
  硬件及软件列表
设备名称
设备型号

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插槽中
 
  组态和配置
 
  1、打开上面创建的项目ptp,用鼠标右键点击项目名称,选择InsertNewObject->SIMATIC300Station,更改站的名称为CP341Modbus-S。
 
  2、双击Hardware进入硬件配置画面,插入RACK、CPU315-2DP、CP341。
 
  3、双击CP341模板,点击Parameter...,配置CP341参数。在Protocol选项中选择MODBUSSlave。
 
  4、双击Protocol下的信封图标,配置MODBUSSlave参数,点击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会提示Driveralreadyexists,配置完成后点击“编译保存”按钮保存编译硬件组态,并确认没有错误。

  编写通信程序
 
  1、将FB7,FB8添加到程序Blocks中,方法为双击OB1,打开OB1编程画面,从库Libraries->CPPtP->CP341中调用发送程序块FB8和接收程序块FB7,然后再从OB1中删除。因为MODBUS从站通讯要用到这两个功能块。
 
  2、调用MODBUS从站功能块FB80,位置在Libraries->Modbus->Modbus->FB80。分配背景数据块DB80,将参数LADDR设为硬件组态中的起始逻辑地址256。
 
  2、调用MODBUS从站功能块,设置参数。
 
  3、创建FC03,06,16功能代码通讯数据块DB1。
 
  4、创建FC04功能代码通讯数据块DB2。
 
  设备连接
 
  本文档使用的CP341的接口是RS232C,因此需要通过标准的RS232C电缆来连接CP341和计算机的串口,具体的电缆连接方法请查看CP341手册B章节连接电缆部分(见:手册、文档和软件链接部分)。
 
  如果使用的CP341是RS485接口的模块,需要使用RS232C/RS485转换器。
 
  综上,回到文章开始的问题:
 
  1.功能码支持如下Cp341/441-2做主站:01、02、03、04、05、06、07、08、11、12、15、16。Cp341/441-2做从站:01、02、03、04、05、06、08、15、16。如你所说05功能也是需要调用FB7,8的。(提醒功能码05是写单个线圈)
 
  2.可以分开读取。通常建议选择一次连续读取。如果要分开读取的话,程序上需要依次触发两次,通过第一次完成位触发下一条的读取。(提醒功能码03是读保持寄存器,所以尽量地址连续,可以一次读取很多数据)
 
  更多技术咨询,请联系我们
 
  版权声明:文章来自北京安方同吉原创,如果喜欢这篇文章《S7300模块CP341用05功能码写是否用到FB7和FB8》:http://www.xmzplc.com.cn/news-industry/519.html请保留本文链接。
 
  北京安方同吉科技有限公司官网:http://www.xmzplc.com.cn/

相关新闻推荐

在线客服 :

服务热线:18211023581(微信同号)

电子邮箱: 2837522029@qq.com

公司地址:北京市西城区教场口街1号

北京安方同吉科技有限公司 是专注西门子PLC代理、西门子变频器等西门子产品代理销售和系统集成的正规西门子一级代理商,是 西门子(中国)有限公司...

Copyright © 2010-2020 北京安方同吉科技有限公司 版权所有