用西门子CP341实现Modbus RTU通讯

合集下载

西门子串口通讯07-Modbus RTU 协议的多站点轮询(CP341,RS485)

西门子串口通讯07-Modbus RTU 协议的多站点轮询(CP341,RS485)

Modbus RTU 协议的多站点轮询(CP341,RS485)1.硬件列表2.组态配置3.编程4.总结12 组态配置1、组态CPU及CP341,如图1将CP341逻辑地址设为256。

图12、设置Modbus总线传输速率和帧字符结构双击CP341->Parameters->Protocol中选择Modbus Master;双击信封Protocol,选择Modbus Master设置总线传输速率和帧字符结构以及,其它从站的设置必须和主站设置一致。

如图,本例传输速率为9.6Kbit/s,帧字符1-8-e-1,即1位起始位,8位数据位,偶校验,1位停止位。

图23、设置电气接口选择半双工RS 485,接收端初始状态按图3设置,各从站的接口电气标准应和主站一致,如图,具体配置步骤请参考手册《CP340/341/440/441通讯及编程》。

图33 编程1、创建发送数据块DB1如图,定义Modbus功能码03的数据格式,更多功能码格式参考手册《以用于PtP CP MODBUS 协议 RTU 格式 S7 的 SIMATIC 可加载驱动程序为主站》图42、创建接收数据DB在此共建立了2个DB(DB4,DB5)分别存放来自两个从站的数据,每个DB分配了一个0~1000个字的整型数组如图。

图53、创建轮询功能块FC1设置指令计数器(MW2),如图,本例中设置为2,即2两条指令。

图6根据指令计数器值构造发送指令并指定接收缓冲区。

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

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

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

基于CP341的Modbus RTU通信与故障处理

基于CP341的Modbus RTU通信与故障处理

基于CP341的Modbus RTU通信与故障处理刘金保,周海丽(上海振华重工(集团)股份有限公司,上海 200125)摘 要:介绍了如何实现CP341与第三方设备的Modbus RTU通信以及如何从通信相关PLC程序、通信电缆和通信双方设备四方面查找通信问题,最终解决了通信问题并成功读取所需设备的数据。

关键词:可编程控制器;CP341;Modbus;通信;故障处理中图分类号:TN915.41 文献标志码:A DOI:10.16443/ki.31-1420.2019.05.003 MODBUS RTU Communication and Fault Treatment based on CP341LIU Jinbao, ZHOU Haili(Shanghai Zhenhua Heavy Industries Co., Ltd., Shanghai 200125, China) Abstract: How to realize Modbus RTU communication between CP341 and third-partyequipment and how to find communication problems from communication related PLC program, communication cable and communication equipment are introduced. Finally, the communication problems are solved and the required equipment data is read successfully.Key words: PLC; CP341; Modbus; communication; fault handing0 引言在目前的工业控制领域,Modbus是一种具有ASCII和RTU两种串行传输模式的高效开放通信协议。

基于CP341的Modbus RTU通信的设计与实现

基于CP341的Modbus RTU通信的设计与实现

基于CP341的Modbus RTU通信的设计与实现王海波【期刊名称】《工矿自动化》【年(卷),期】2009(035)008【摘要】文章提出了一种基于CP341的Modbus RTU通信的设计方案, 给出了硬件及软件的选择与配置, 并详细介绍了CP341与智能传感器之间数据通信程序的设计.该方案基于S7-300 PLC CP341串口通信模块的ASCII通信方式,采用Step 7编程实现了S7-300 PLC与智能传感器之间的Modbus RTU通信,解决了智能传感器Modbus RTU通信协议解析、CRC-16循环冗余校验在S7-300 PLC 中的实现、查询指令的发送及接收数据包的解析和存放等关键性问题.%The paper proposed a design scheme of Modbus RTU communication based onCP341, gave the selection and configuration of hardware and software, and introduced the design of data communication program betweenCP341 and intelligent sensor. The scheme uses Step 7 program to realize Modbus RTU communication between S7-300 PLC and intelligent sensor on the basis of ASCII communication mode of serial communication module of S7-300 PLC CP314, and resolves the key technologies such as analysis of Modbus RTU communication protocol of intelligent sensor, implementation of CRC-16 cyclic redundancy check in S7-300 PLC, sending of query instruction, and analysis and storage of receiving data packet.【总页数】3页(P89-91)【作者】王海波【作者单位】煤炭科学研究总院常州自动化研究院,江苏,常州,213015【正文语种】中文【中图分类】TN915.41【相关文献】1.基于CP341模块的MODBUS RTU 从站协议免驱动通信 [J], 王延年;陈红;高霞2.浙大DCS与Siemens CP341基于ModbusRTU协议通讯 [J], 杨利丰;吴智贤;熊伟;秦旭香3.基于CP341模块的MODBUS RTU免授权通讯的实现与应用 [J], 张翠平;宋文超;李根;付瑶;李古清4.免加密狗西门子CP341模块的ModbusRTU通信实现 [J], 熊田忠5.基于CP341的Modbus RTU通信与故障处理 [J], 刘金保; 周海丽因版权原因,仅展示原文概要,查看原文内容请购买。

基于CP341模块的MODBUSRTU免授权通讯的实现与应用

基于CP341模块的MODBUSRTU免授权通讯的实现与应用

通讯进行了深入的研究并最终得以实现和应用。
1 CRC 及编程
1.1
CRC 校验算法概述
在程序的设计调试时需要对从站的协议类 型, 奇偶校验, 传输超时, 从站地址等参数进行一 些必要的设置以使其能够与主站相匹配, 否则很 难进行彼此间的数据交换。其中 CRC 循环冗余 校验为本文研究的关键性问题。 MODBUS 通信协议的 CRC 码为 2B, 包含了 1 个 16 位的二进制值。发送设备需要计算 CRC 码, 并将其置于发送信息帧的末端。而接收设备 则将接收到的所有信息 (包含 CRC 码) 进行重新 57
ELECTRIC DRIVE 2017 Vol.47 No.2
电气传动 2017 年 第 47 卷 第 2 期
基于 CP341 模块的 MODBUS RTU 免授权通讯 的实现与应用
张翠平, 宋文超, 李根, 付瑶, 李古清 (天津电气科学研究院有限公司, 天津 300180)
摘要: 根据实际项目介绍了一种基于 RS485 接口的西门子 CP341 通讯模块的 MODBUS RTU 通讯设计方
Implementation and Application of MODBUS RTU Unlicensed Communication ZHANG Cuiping, SONG Wenchao, LI Gen, FU Yao, LI Guqing Based on CP341 Module
(Tianjin Electric Research Institute Co., Ltd., Tianjin 300180, China)
MODBUS RTU 作为一种开放高效的通信协 议在众多工业领域中的智能控制器以及智能仪 表上已经得到了广泛的应用, 它成功地解决了 现场智能控制器以及工业仪表与 PLC 之间数据 交换问题, 这样不仅节省了传统的大量通讯电 缆, 而且其数据传输可靠性也得到了大幅度提 升。 CP341 模块是西门子 S7-300 系列中的一种 串行通信模块, 它硬件集成了 ASCⅡDriver 等驱 RS485 等。 与美国寿力 TS32S-600H 型和 LS25S-300L 型螺 本文通过空压机变频节能改造项目中 PLC 动协议, 支 持 不 同 的 传 输 接 口 如 RS232C 或

西门子PLC多个站点MODBUS轮询通讯

西门子PLC多个站点MODBUS轮询通讯

CP341 Modbus RTU多站点轮询CP341 Modbus RTU Polling Multi-Slaves摘要 本文档讨论使用CP341实现Modbus主站轮询多个从站关键词 CP341, Modbus RTU,轮询,功能码Key Words CP341,Modbus RTU, Polling,Function CodeIA&DT Service & Support Page 2-16目录目录 (3)1.软件环境 (4)1.1 STEP7 V5.4 SP3 (4)1.2 CP PtP Param V5.1 SP8 (4)1.3 CP PTP Modbus Master V3.1.4 (4)2.硬件列表 (4)3.组态配置 (4)3.1组态CPU及CP341 (4)3.2设置Modbus总线传输速率和帧字符结构 (5)3.3设置电气接口 (6)4.编程 (6)4.1创建发送数据块DB1 (6)4.2创建接收数据DB (6)4.3创建轮询功能块FC1 (7)4.4在OB1中调用轮询功能块FC1 (14)5.总结 (14)附录-推荐网址 (15)IA&DT Service & Support Page 3-161. 软件环境1.1STEP7 V5.4 SP3用于编写PLC程序,此软件需要从西门子购买,本文档中所有的程序代码均使用Step7 V5.4 SP3编写。

1.2CP PtP Param V5.1 SP8串行通讯模板的驱动程序,安装此驱动后才能配置PtP模板,并在Step7中集成通讯编程需要使用的功能块。

此驱动随购买模板一起提供,也可以从以下的链接下载 /CN/view/zh/270135241.3CP PTP Modbus Master V3.1.4CP341或CP441-2用于Modbus 主站时,需要安装此驱动协议,但安装此驱动之前必须先安装PtP driver,此驱动可以在购买Modbus Dongle时选择购买,或者可以从以下链接下载。

S7-200做主站S7-300-CP341做从站的Modbus-RTU通讯

S7-200做主站S7-300-CP341做从站的Modbus-RTU通讯

S7-200做主站S7-300-C P341做从站的M o d b u s-R T U通讯-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIANS7-200做主站S7-300 CP341做从站的Modbus RTU通讯Modbus RTU Communication – S7-200 as Master and S7-300 CP341 asSlaveGetting-Started Edition (2010年6月)摘要本文档讨论使用S7-200做主站,S7-300 CP341做从站的Modbus RTU通讯。

关键词 CP341,Modbus RTU,功能码,S7-200Key Words CP341,Modbus RTU,Function Code,S7-200目录1. 概述2. 软件环境2.1 STEP7 V5.4 SP42.2 CP PTP Param V5.1 SP112.3 CP PTP Modbus Slave V3.1 SP72.4 STEP7 Micro/WIN V4.0 SP62.5 Toolbox_V32-STEP 7-Micro WIN 32 Instruction Library3. 硬件列表和接线3.1 硬件列表3.2 硬件接线3.2.1 接口定义3.2.2 接线示意图4. 组态设置和编程4.1 S7-200做Modbus主站的设置4.1.1 Modbus RTU主站库4.1.2 S7-200 Modbus主站编程4.2 CP341 做Modbus 从站的硬件组态4.2.1 硬件组态4.2.2 设置Modbus参数4.2.3 Modbus驱动的下载4.2.4 CP341做Modbus从站的编程5. 通讯测试5.1 FC01/05/15功能码5.2 FC02功能码5.3 FC03/06/16 功能码5.4 FC04 功能码5.5 Limits 栏6. 总结7. 相关参考资料附录-推荐网址1. 概述在现场应用中,很多仪表和设备仅支持Modbus RTU的通讯协议,第三方仪表可以做Modbus主站或从站,西门子的通讯模块CP341 / CP441-2 通过Dongle(硬件狗)可以扩展该协议,S7-200 集成的口可以支持自由口通讯,通过指令库也可以方便的实现Modbus RTU通讯。

基于CP341通讯模块的Modbus通讯

基于CP341通讯模块的Modbus通讯

基于CP341通讯模块的Modbus通讯
张波
【期刊名称】《机电产品开发与创新》
【年(卷),期】2012(25)4
【摘要】论文详细介绍了CP341通讯模块和Modbus通讯协议,在此基础上给出了使用CP341模块实现Modbus通讯的硬件及软件实现方法.
【总页数】2页(P120-121)
【作者】张波
【作者单位】中国煤炭科工集团太原研究院,山西太原030006
【正文语种】中文
【中图分类】TN919.8
【相关文献】
1.基于ModbusRTU通讯协议的 Siemens CP341与Bently之间的通讯 [J], 刘焱
2.基于Modbus协议CP341与BENTLY3500之间的通讯 [J], 张利平;刘宁;董树泉
3.西门子串口通讯模块CP341装载MODBUS RTU从站协议通讯的实现 [J], 李广园;周伟;王君元
4.基于CP341模块的MODBUS RTU免授权通讯的实现与应用 [J], 张翠平;宋文超;李根;付瑶;李古清
5.两种基于Modbus的西门子CP341与智能电表通讯的实现 [J], 何俊强
因版权原因,仅展示原文概要,查看原文内容请购买。

基于CP341通讯模块的Modbus通讯

基于CP341通讯模块的Modbus通讯

1 编 程 原 理 及 通 讯 协 议
11 编 程 原 理 .
S— 0 7 3 0控 制 器有 其专 用 Mo b s主站 协议 库 ,用 户 du
可 通 过 购 买 C 3 1串 行 通 讯 模 块 和 Mo b sR U 硬 件 P4 d u T
收 稿 日期 :2 1 —0 — 7 02 50
这 样 功 能 块 F 8就 可 以 正 常 工 作 了 。功 能 块 F 8的 参 数 B B 中需 设 置 要 发 送 的 数 据 所 在 数 据 块 编 号 D — O, 数 据 BN 块 中 的起 始 字 节 的 地 址 D B N 和 数 据 的 长 度 L N。 在 B—O E 编 写 设 计 程 序 时 一 定 要 注 意 F 8的 参 数 端 S : = ‘ ’ B F S
VOI . NO. 25. 4
基 于 CP 4 3 1通 讯 模 块 的 Mo b s通 讯 du
张 波
( 国煤 炭 科 工 集 团 太 原 研 究 院 ,山两 太 原 0 0 0 ) 中 30 6

要 : 论 文 详 细 介 绍 了 CP 4 3 1通 讯 模 块 和 Mo b s 讯 协 议 ,在 此 基 础 上 给 出 了 使 用 CP 4 du 通 3 1模 块 实 现
M o b s 讯 的 硬 件 及 软 件 实 现 方 法 du通
关 键 词 :CP 4 ; 串行 通 讯 :Mo b s 议 31 du 协
中 图 分 类 号 :T 9 98 N 1.
文 献 标 识 码 :A d i O3 6 /.s .0 2 6 7 .0 20 . 8 o: .9 9j sn10 — 6 3 1 .40 l i 2 4
Abta t sr c :Thi pa e n r d c si ealt e Se n P 41 o s p rito u e n d ti h ime sC 3 c mm unc to od l nd M o b or iai n m ue a d usc mnu iain p o o o,t i p p ru e n c t r t c l hs a e s o CP3 o u et e l et eM o b om n iai n h r w aea oR r elzto eh . 41m d l o r ai h z d usc r unc to ad r nd s wa eralain m tod

以CP341为例的modbus免狗从站功能块教程

以CP341为例的modbus免狗从站功能块教程

以CP341为例的modbus免狗从站功能块教程通信波 (QQ:2532622889)一:硬件接线1、确认是从CP341卡的DB15接口4(-)脚及11(+)脚引出两根信号线,并注意正负极;2、在485线型网络两端(信号线路相距最远的两个通信端口上)需并联终端电阻(250欧~330欧)。

根据传输线理论,终端电阻可以吸收网络上的反射波,有效地增强信号强度;3、如果CP卡有发送时则TX灯会闪亮,如果CP卡有接收时则RX灯会闪亮;二:ModS_34x示例程序移植至当前STEP7工程项目将上图中所示的FB块,FC块,DB块拷入工程项目中,VAT表可以不拷贝,并在OB1中调用FC161块,注意上图的4个DB块是与示例程序FC161中FC180管脚上指定的DB块一一对应的,各位可以根据需要自已定义或修改DB块序号及DB块存储空间的大小,但一定要注意开辟的DB块的大小要符合通信要求:例如对方要操作模拟量40100的值,那么DB块至少要开辟100个字的大小,因为DBxxx.DBW0对应于40001、DBxxx.DBW2对应于40002、DBxxx.DBW4对应于40003、……、DBxxx.DBW198对应于40100;例如对方要操作数字量00100的值,那么DB块至少要开辟100个位的大小,因为DBxxx.DBx0.0对应于00001、DBxxx.DBx0.1对应于00002、……、DBxxx.DBx1.0对应于00009、……、DBxxx.DBx12.3对应于00100;三:程序移植后当前工程项目涉及到的STEP7硬件组态1、配置CPU硬件组态中的Clock Memory,其中指定的MB序号要与FC161中FB161管脚上的CLOCK_CPU一致;2、配置CP卡的地址,使其与FC161中FB161管脚上的LADDR1、LADDR2一致;3、双击CP卡弹出下图对话框,若Parameters按钮灰化,则需安装CP卡驱动程序;4、双击上图Parameters,弹出下图对话框,将Protocol配置为ASCII;5、双击上图Protocol,弹出下图对话框,按实际要求设置通信基本参数;6、点击上图Transmission翻页,弹出下图对话框,不作改动;7、点击上图Receiving Data翻页,弹出下图对话框,不作改动;8、点击上图interface翻页,弹出下图对话框,配置成下图所示;四:程序移植后当前工程项目涉及到的STEP7软件编程1、下图所示的程序中,当鼠标停留在FB161或FC180相应管脚上时,会有中文提示弹出,FB161为从站功能块,其中DB161是其背景数据块,FC180为从站存储空间配置块,Modbus从站4个DB数据区由FC180来配置指定DB块号;2、FB161管脚说明:License1、License2:H系统或软冗余系统,分别填上对应于这两个CPU的授权号;CLOCK_CPU:与CPU的硬件组态中CLOCK的设定需一致;LADDR1、LADDR2:CP卡的地址,在一对一通信时值设为一致,二对一Y型CP卡冗余通信时值分别为两块CP卡的地址;CP1_Type、CP2_Type:分别对应于上述LADDR1、LADDR2地址的CP卡类型,1为CP340,2为CP341;CP_Err_TmSet:二对一Y型CP卡冗余通信时的切换条件,为时间设定(秒),默认值180,表示当前CP卡若持续180秒不能接收到任何报文,则切换至另一块CP卡;DBInstNo:FB161所对应的背景数据块号;RcvDBB_Num:系统内定值为76,不得修改;SndDBB_Num:系统内定值为336,不得修改;Mod_Addr:从站地址设定;DB0xxxx:管脚需空置;DB0_Len:管脚需空置;DB1xxxx:管脚需空置;DB1_Len:管脚需空置;DB3xxxx:管脚需空置;DB3_Len:管脚需空置;DB4xxxx:管脚需空置;DB4_Len:管脚需空置;DB_Rcv:与FB161背景数据块有关,若背景数据块为DB161,则设为DB161.Rcv; DB_Snd:与FB161背景数据块有关,若背景数据块为DB161,则设为DB161.Snd;3、FC180管脚说明:DBInstNO:指定FB161的背景数据块号,示例程序中背景数据块为DB161,因此设为161;Data0xxxx:指定操作0xxxx区数据的DB块,对应于功能码01、05、15;Data1xxxx:指定操作1xxxx区数据的DB块,对应于功能码02;Data3xxxx:指定操作3xxxx区数据的DB块,对应于功能码04;Data4xxxx:指定操作4xxxx区数据的DB块,对应于功能码03、06、16;4、FB161的背景数据块主要内容 (以DB161为例):五:从站免硬件狗(免Dongle)功能块的特点Modbus 从站程序已整合成一个功能块,配置相当方便;1、 无需西门子Modbus Slave 硬件dongle ;2、 支持STEP7、支持PCS7;3、 支持CP340、CP341、CPU_PtP 、CP440、CP441的Modbus 通信;4、 支持双CP 设置成冗余通信,切换时间可在线设定,支持两块CP 间手动切换;(不光支持同种CP 冗余,也支持CP340与CP341的冗余及CP440与CP441的冗余);5、 支持收到及发送命令的计数功能;6、 支持设定时间内无收发的通信故障判别并以故障状态位形式直接体现;7、 支持Modbus 功能为01、02、03、04、05、06、08、15、16号;8、 通信数据区DB 块最大为16384字节,针对主站无瓶颈,为CPU 最大可容许量; 有独立的从站通信功能块,Modbus 部分设定从站地址及数据区分配等只需在功能块管脚上设定,属于程序修改,均可在线下载而不会引起停机;六:对技术人员使用从站免硬件狗(免Dongle)功能块的基本要求具备西门子CP模块接口与其它装置通信接口之间硬件接线原理图的理解能力;具备西门子CP模块接口与其它装置通信接口之间硬件接线的动手能力及检测能力;具备Modbus通信协议方面的相关基础知识;具备一定基础的STEP7编程组态能力(包括读懂通信示例程序后移植的能力);具备计算机上使用主从站模拟调试软件的能力,常用软件主要有两种如下:[ModScan主_ModSim从]、[ModbusPoll主_ModbusSlave从];可以先将PLC的CP卡与计算机模拟的站调通,再将目标通信站与计算机模拟的站调通,最后将PLC的CP卡与目标通信站硬件接线连接起来就OK,常用调试硬件工具为USB转485通信适配器;建议具备西门子CP通信模块使用Dongle按西门子官方要求进行通信时的相关经验;七:STEP7编程组态注意事项因为涉及到CP通信模块,因此进行STEP编程前需安装好STEP7软件及CP模块配套光盘中的CP_PtP驱动,否则无法对CP通信模块的参数进行设定(未装驱动时参数按钮灰化);老版CPU是指与6ES7315-2AF03-0AB0同一代及之前各代,其存储卡为CF卡;新版CPU则是在6ES7315-2AF03-0AB0之后出现的CPU,其存储卡为MMC卡;注:示例程序作者会提供给正式用户,示例程序为作者相应硬件组态条件下经测试通过的程序,用户在理解的前提下需将示例程序中的所有块全部拷贝至用户项目中,并在OB1中进行调用,若存在与用户项目中相同命名的FB、FC、DB时,为了防止不破坏用户项目,可以暂时先不覆盖,由用户决定将某一方面名称修改成不重复后再复制入项目中,同时程序中涉及到调用改过名称的FB、FC、DB的地方均需作相应修改!另用户项目中的硬件组态也需参考示例程序中的组态参数!通信功能块的各管脚均有中文注解提示,把鼠标放到功能块相应管脚上就可显示!正式版用户必须获得正式版数字授权码并输入通信功能块授权码管脚后才能使通信功能块正常运行!对于CPU的硬件组态中必不可少的一步是对Clock Memory的配置,一般为MB100:注意:若编程调试过程中modbus通信块中某些初始值被用户意外修改时,可重新下载改通信块的背景数据块,就可复原初始值!另禁止在OB35中调用此免狗功能块!有需要的用户可直接加作者QQ:2532622889,验证信息:“Modbus免狗”;附:下面分别对34x(老版CPU带CP340及CP341)、34xold(新版CPU带CP340及CP341)、PtP(CPU自带PtP口)、CP44x(CP440及CP441)的主从站程序共8种进行简述:-------------------------------------------------------------------------------主站示例程序为ModbusRtuM_34x(新版S7300_CPU,CP340,CP341)[CP34x每次收发报文帧的最大长度为255字节]主功能块FB161,背景数据块DB161,可调用程序块FC161,主站辅助程序块FC180;DB10:11号从站对应的Modbus_0xxxx的数据存储区,对应于Modbus的功能01,05,15;DB11:11号从站对应的Modbus_1xxxx的数据存储区,对应于Modbus的功能02;DB13:11号从站对应的Modbus_3xxxx的数据存储区,对应于Modbus的功能04;DB14:11号从站对应的Modbus_4xxxx的数据存储区,对应于Modbus的功能03,06,16;DB20:12号从站对应的Modbus_0xxxx的数据存储区,对应于Modbus的功能01,05,15;DB21:12号从站对应的Modbus_1xxxx的数据存储区,对应于Modbus的功能02;DB23:12号从站对应的Modbus_3xxxx的数据存储区,对应于Modbus的功能04;DB24:12号从站对应的Modbus_4xxxx的数据存储区,对应于Modbus的功能03,06,16;Modbus的功能08(回路测试)也同时支持;CP340通信功能块:FB2(收),FB3(发);CP341通信功能块:FB7(收),FB8(发);-------------------------------------------------------------------------------主站示例程序为ModbusRtuM_34xold(老版S7300_CPU,CP340,CP341)[CP34x每次收发报文帧的最大长度为255字节]主功能块FB172,背景数据块DB172,可调用程序块FC172,主站辅助程序块FC180;DB10:11号从站对应的Modbus_0xxxx的数据存储区,对应于Modbus的功能01,05,15;DB11:11号从站对应的Modbus_1xxxx的数据存储区,对应于Modbus的功能02;DB13:11号从站对应的Modbus_3xxxx的数据存储区,对应于Modbus的功能04;DB14:11号从站对应的Modbus_4xxxx的数据存储区,对应于Modbus的功能03,06,16;DB20:12号从站对应的Modbus_0xxxx的数据存储区,对应于Modbus的功能01,05,15;DB21:12号从站对应的Modbus_1xxxx的数据存储区,对应于Modbus的功能02;DB23:12号从站对应的Modbus_3xxxx的数据存储区,对应于Modbus的功能04;DB24:12号从站对应的Modbus_4xxxx的数据存储区,对应于Modbus的功能03,06,16;Modbus的功能08(回路测试)也同时支持;CP340通信功能块:FB102(收),FB103(发);CP341通信功能块:FB107(收),FB108(发);--------------------------------------------------------------------------------------------------------------------------------------------------------------主站示例程序为ModbusRtuM_PtP(CPU自带485口)[CPU_PtP每次收发报文帧的最大长度为205字节]主功能块FB173,背景数据块DB173,可调用程序块FC173,主站辅助程序块FC180;DB10:11号从站对应的Modbus_0xxxx的数据存储区,对应于Modbus的功能01,05,15;DB11:11号从站对应的Modbus_1xxxx的数据存储区,对应于Modbus的功能02;DB13:11号从站对应的Modbus_3xxxx的数据存储区,对应于Modbus的功能04;DB14:11号从站对应的Modbus_4xxxx的数据存储区,对应于Modbus的功能03,06,16;DB20:12号从站对应的Modbus_0xxxx的数据存储区,对应于Modbus的功能01,05,15;DB21:12号从站对应的Modbus_1xxxx的数据存储区,对应于Modbus的功能02;DB23:12号从站对应的Modbus_3xxxx的数据存储区,对应于Modbus的功能04;DB24:12号从站对应的Modbus_4xxxx的数据存储区,对应于Modbus的功能03,06,16;Modbus的功能08(回路测试)也同时支持;CPU_PtP通信功能块:SFB61(收),SFB60(发);-------------------------------------------------------------------------------主站示例程序为ModbusRtuM_44x(CP440,CP441)[CP440每次收发报文帧的最大长度为199字节][CP441每次收发报文帧的最大长度为255字节]主功能块FB174,背景数据块DB174,可调用程序块FC174,主站辅助程序块FC180;DB10:11号从站对应的Modbus_0xxxx的数据存储区,对应于Modbus的功能01,05,15;DB11:11号从站对应的Modbus_1xxxx的数据存储区,对应于Modbus的功能02;DB13:11号从站对应的Modbus_3xxxx的数据存储区,对应于Modbus的功能04;DB14:11号从站对应的Modbus_4xxxx的数据存储区,对应于Modbus的功能03,06,16;DB20:12号从站对应的Modbus_0xxxx的数据存储区,对应于Modbus的功能01,05,15;DB21:12号从站对应的Modbus_1xxxx的数据存储区,对应于Modbus的功能02;DB23:12号从站对应的Modbus_3xxxx的数据存储区,对应于Modbus的功能04;DB24:12号从站对应的Modbus_4xxxx的数据存储区,对应于Modbus的功能03,06,16;Modbus的功能08(回路测试)也同时支持;CP440通信功能块:FB9(收),FB10(发);CP441通信功能块:SFB13(收),SFB12(发);--------------------------------------------------------------------------------------------------------------------------------------------------------------从站示例程序为ModbusRtuS_34x(新版S7300_CPU,CP340,CP341)[CP34x每次收发报文帧的最大长度为255字节]主功能块FB161,背景数据块DB161,可调用程序块FC161,从站辅助程序块FC180;DB80:Modbus_0xxxx的数据存储区,对应于Modbus的功能01,05,15;DB81:Modbus_1xxxx的数据存储区,对应于Modbus的功能02;DB83:Modbus_3xxxx的数据存储区,对应于Modbus的功能04;DB84:Modbus_4xxxx的数据存储区,对应于Modbus的功能03,06,16;Modbus的功能08(回路测试)也同时支持;CP340通信功能块:FB2(收),FB3(发);CP341通信功能块:FB7(收),FB8(发);-------------------------------------------------------------------------------从站示例程序为ModbusRtuS_34xold(老版S7300_CPU,CP340,CP341)[CP34x每次收发报文帧的最大长度为255字节]主功能块FB162,背景数据块DB162,可调用程序块FC162,从站辅助程序块FC180;DB80:Modbus_0xxxx的数据存储区,对应于Modbus的功能01,05,15;DB81:Modbus_1xxxx的数据存储区,对应于Modbus的功能02;DB83:Modbus_3xxxx的数据存储区,对应于Modbus的功能04;DB84:Modbus_4xxxx的数据存储区,对应于Modbus的功能03,06,16;Modbus的功能08(回路测试)也同时支持;CP340通信功能块:FB102(收),FB103(发);CP341通信功能块:FB107(收),FB108(发);-------------------------------------------------------------------------------从站示例程序为ModbusRtuS_PtP(CPU自带485口)[CPU_PtP每次收发报文帧的最大长度为205字节]主功能块FB163,背景数据块DB163,可调用程序块FC163,从站辅助程序块FC180;DB80:Modbus_0xxxx的数据存储区,对应于Modbus的功能01,05,15;DB81:Modbus_1xxxx的数据存储区,对应于Modbus的功能02;DB83:Modbus_3xxxx的数据存储区,对应于Modbus的功能04;DB84:Modbus_4xxxx的数据存储区,对应于Modbus的功能03,06,16;Modbus的功能08(回路测试)也同时支持;CPU_PtP通信功能块:SFB61(收),SFB60(发);--------------------------------------------------------------------------------------------------------------------------------------------------------------从站示例程序为ModbusRtuS_44x(CP440,CP441)[CP440每次收发报文帧的最大长度为199字节][CP441每次收发报文帧的最大长度为255字节]主功能块FB164,背景数据块DB164,可调用程序块FC164,从站辅助程序块FC180;DB80:Modbus_0xxxx的数据存储区,对应于Modbus的功能01,05,15;DB81:Modbus_1xxxx的数据存储区,对应于Modbus的功能02;DB83:Modbus_3xxxx的数据存储区,对应于Modbus的功能04;DB84:Modbus_4xxxx的数据存储区,对应于Modbus的功能03,06,16;Modbus的功能08(回路测试)也同时支持;CP440通信功能块:FB9(收),FB10(发);CP441通信功能块:SFB13(收),SFB12(发);-------------------------------------------------------------------------------。

以CP341为例的modbusRTU免狗主站功能块教程130701

以CP341为例的modbusRTU免狗主站功能块教程130701

以CP341为例的modbusRTU免狗主站功能块教程130701 (工业级设计标准,DCS特性,真正完美的免狗通信功能块)问:为什么已经有了西门子官方的Modbus通信解决方案却还要选择免狗功能块?答:因为官方的价格有点贵、编程有点繁锁、功能过于简单!1、官方ModbusRTU主站示例程序相对复杂,占用中间变量多,从站多时就显得相当繁琐。

2、官方不支持CP340卡件的ModbusRTU通信;3、官方不支持对主站命令报文先进行智能分析判别后再发送;4、官方不支持对各从站通信故障判别并产生相应故障状态标志位供用户直接调用;5、官方不支持在CPU运行时对暂无需进行通信的从站地址进行动态屏蔽;6、官方不支持ModbusRTU 测试功能08号功能码;7、官方没有独立的主站通信功能块来简化编程工作量,依靠发送接收块的调用来拼凑实现;8、官方只能在轮询模式下对从站发出命令,不支持随机模式,更不支持批量随机模式一:硬件接线1、确认是从CP341卡的DB15接口4(-)脚及11(+)脚引出两根信号线,并注意正负极;2、在485线型网络两端(信号线路相距最远的两个通信端口上)需并联终端电阻(120欧~330欧)。

根据传输线理论,终端电阻可以吸收网络上的反射波,有效地增强信号强度;3、如果CP卡有发送时则TX灯会闪亮,如果CP卡有接收时则RX灯会闪亮;二:ModM_34x示例程序移植至当前STEP7工程项目将上图中所示的FB块,FC块,DB块拷入工程项目中,VAT表可以不拷贝,本例在OB1中调用FC171块,注意上图的8个DB块是与示例程序FC171中FC190管脚上指定的DB块一一对应的,各位可以根据需要自已定义或修改DB块序号及DB块存储空间的大小,但一定要注意开辟的DB块的大小要符合通信要求:例如想要读模拟量40101~40104的值并放入DBxxx.DBW0~ DBxxx.DBW6,那么DB块至少要开辟4个字的大小,并将FC190功能的DB_Offset管脚偏移值设为0(偏移值可根据实际需要自行设定);例如想要读数字量00101~00116的值并放入DBxxx.DBx0.0~ DBxxx.DBx1.7,那么DB块至少要开辟16个位的大小,并将FC190功能的DB_Offset管脚偏移值设为0(偏移值可根据实际需要自行设定);三:程序移植后当前工程项目涉及到的STEP7硬件组态1、配置CP卡的地址,使其与FC161中FB161管脚上的LADDR一致;2、双击CP卡弹出下图对话框,若Parameters按钮灰化,则需安装CP卡驱动程序;3、双击上图Parameters,弹出下图对话框,将Protocol配置为ASCII;4、双击上图Protocol,弹出下图对话框,按实际要求设置通信基本参数;5、点击上图Transfer翻页,弹出下图对话框,配置成下图所示;6、点击上图Receiving Data翻页,弹出下图对话框,配置成下图所示;7、点击上图interface翻页,弹出下图对话框,配置成下图所示;四:程序移植后当前工程项目涉及到的STEP7软件编程1、下图所示的程序中,当鼠标停留在FB171或FC190相应管脚上时,会有中文提示弹出,FB171为主站功能块,其中DB171是其背景数据块,FC190为主站命令配置块,主站所有实施的工作内容由一系列配置好参数的FC190来实施;2、FB171管脚说明:License1、License2:H系统或软冗余系统,分别填上对应于这两个CPU的授权号,单CPU系统则两处填同一个授权号;CLOCK_CPU:与CPU的硬件组态中CLOCK的设定需一致;LADDR: CP卡的地址,与硬件组态中CP卡的地址一致;CP_Type: CP卡类型,1为CP340, 2为CP341;DBInstNo:FB171所对应的背景数据块号;PollNum:轮询命令的条数,也就是执行轮询设置的FC190的数量,在示例程序中FC190的pollNO管脚值从1~8共有8条,因此FB171的PollNum管脚也设为8;PollTime:至发送下一条命令的最长等待时间(600~18000ms);WrtNum:随机操作命令的条数,也就是执行随机操作设置的FC190的数量,在示例程序中FC190的WrtNO管脚值从1~8共有8条,因此FB171的WrtNum管脚也设为8;WrtTime:至发送下一条命令的最长等待时间(600~18000ms);3、FC190管脚说明:DBInstNO:指定FB171的背景数据块号,示例程序中背景数据块为DB171,因此设为171;PollNO:轮询命令的序号,当与FB171的不断循环递增的当前序号相同时,本条命令被发出;WrtNO:随机操作命令的序号,当FB171的背景数据块中对应的随机操作位被置1时,本条命令被发出,随机操作命令的序号与FB171的背景数据块中对应的随机操作位是一一对应的关系,随机操作命令优先级高于轮询操作;DataDBNO:此条命令所对应的主站数据存取DB编号;DB_Offset:Modbus数据存取相对DB的偏移量(数字量以bit计0~16383,模拟量以word计0~8191),根据各自的需要自行设定;SndAddr:此条命令所对应的从站地址;SndFnCode:此条命令所对应的功能码;SndBeg:此条命令所对应的起始地址(L#0~L#65535));SndNum:此条命令所对应的需读写的数据数量(数字量最大:读2000,写1968) (模拟量最大:读125,写123);4、示例程序中8条FC190轮循命令的解释:轮循命令时功能码为1,读取一个或多个线圈状态:--》当FB171的轮询值管脚PollVal(与FC190的管脚PollNO=1对应)等于1时,读取1#从站00001~00024计24个线圈状态,读取到的数据放入到DB10中,因为偏移为0,所以对应于DB10.DBX0.0~DB10.DBX2.7;轮循命令时功能码为2,读取一个或多个输入状态:--》当FB171的轮询值管脚PollVal(与FC190的管脚PollNO=2对应)等于2时,读取1#从站10001~10024计24个输入状态,读取到的数据放入到DB11中,因为偏移为0,所以对应于DB11.DBX0.0~DB11.DBX2.7;轮循命令时功能码为3,读取一个或多个保持寄存器:--》当FB171的轮询值管脚PollVal(与FC190的管脚PollNO=3对应)等于3时,读取1#从站40001计1个保持寄存器,读取到的数据放入到DB14中,因为偏移为0,所以对应于DB14.DBW0;轮循命令时功能码为4,读取一个或多个输入寄存器:--》当FB171的轮询值管脚PollVal(与FC190的管脚PollNO=4对应)等于4时,读取1#从站30001计1个输入寄存器,读取到的数据放入到DB13中,因为偏移为0,所以对应于DB13.DBW0;轮循命令时功能码为5,写一个线圈:-》当FB171的轮询值管脚PollVal(与FC190的管脚PollNO=5对应)等于5时,因为偏移为0,所以将DB10中DB10.DBX0.0的数据写至1#从站的线圈00001,SndFnCode为5时SndNum的值可为任意;轮循命令时功能码为6,写一个保持寄存器:-》当FB171的轮询值管脚PollVal(与FC190的管脚PollNO=6对应)等于6时,因为偏移为0,所以将DB14中DB14.DBW0中的数据写至1#从站保持寄存器40001,SndFnCode为6时SndNum的值可为任意;轮循命令时功能码为15,写一个或多个线圈:-》当FB171的轮询值管脚PollVal(与FC190的管脚PollNO=7对应)等于7时,因为偏移为0,所以将DB10中DB10.DBX0.0~DB10.DBX1.7计16个位的数据写至1#从站的线圈00001~00016;轮循命令时功能码为16,写一个或多个保持寄存器:-》当FB171的轮询值管脚PollVal(与FC190的管脚PollNO=8对应)等于8时,因为偏移为0,所以将DB14中DB14.DBW0计1个字的数据写至1#从站保持寄存器40001;5、示例程序中8条FC190随机操作命令的解释:(高级应用)随机操作时功能码为1,读取一个或多个线圈状态:--》当(某一条件)将FB171的背景数据块中DB171.DBX622.0 (与FC190的管脚WrtNO=1对应)的值置1时,立刻从轮循模式切换至随机操作模式,发出命令读取254#从站065281~065305计24个线圈状态,并自动将DB171.DBX622.0的值复位为0,读取到的数据放入到DB20中,因为偏移为0,所以对应于DB20.DBX0.0~DB20.DBX2.7,读取完毕恢复至轮循模式;随机操作时功能码为2,读取一个或多个输入状态:--》当(某一条件)将FB171的背景数据块中DB171.DBX622.1 (与FC190的管脚WrtNO=2对应)的值置1时,立刻从轮循模式切换至随机操作模式,发出命令读取254#从站165281~165305计24个输入状态,并自动将DB171.DBX622.1的值复位为0,读取到的数据放入到DB21中,因为偏移为0,所以对应于DB21.DBX0.0~DB21.DBX2.7,读取完毕恢复至轮循模式;随机操作时功能码为3,读取一个或多个保持寄存器:--》当(某一条件)将FB171的背景数据块中DB171.DBX622.2 (与FC190的管脚WrtNO=3对应)的值置1时,立刻从轮循模式切换至随机操作模式,发出命令读取254#从站465281计1个保持寄存器,并自动将DB171.DBX622.2的值复位为0,读取到的数据放入到DB24中,因为偏移为0,所以对应于DB24.DBW0,读取完毕恢复至轮循模式;随机操作时功能码为4,读取一个或多个输入寄存器:--》当(某一条件)将FB171的背景数据块中DB171.DBX622.3 (与FC190的管脚WrtNO=4对应)的值置1时,立刻从轮循模式切换至随机操作模式,发出命令读取254#从站365281计1个输入寄存器,并自动将DB171.DBX622.3的值复位为0,读取到的数据放入到DB23中,因为偏移为0,所以对应于DB23.DBW0,读取完毕恢复至轮循模式;随机操作时功能码为5,写一个线圈:--》当(某一条件)将FB171的背景数据块中DB171.DBX622.4 (与FC190的管脚WrtNO=5对应)的值置1时,立刻从轮循模式切换至随机操作模式,因为偏移为0,所以发出命令将DB20中DB20.DBX0.0的数据写至254#从站的线圈065281,并自动将DB171.DBX622.4的值复位为0,操作完毕恢复至轮循模式,SndFnCode为5时SndNum的值可为任意;随机操作时功能码为6,写一个保持寄存器:--》当(某一条件)将FB171的背景数据块中DB171.DBX622.5 (与FC190的管脚WrtNO=6对应)的值置1时,立刻从轮循模式切换至随机操作模式,因为偏移为0,所以发出命令将DB24中DB24.DBW0中的数据写至254#从站保持寄存器465281,并自动将DB171.DBX622.5的值复位为0,操作完毕恢复至轮循模式,SndFnCode为6时SndNum的值可为任意;随机操作时功能码为15,写一个或多个线圈:--》当(某一条件)将FB171的背景数据块中DB171.DBX622.6 (与FC190的管脚WrtNO=7对应)的值置1时,立刻从轮循模式切换至随机操作模式,因为偏移为0,所以发出命令将DB20中DB20.DBX0.0~DB20.DBX1.7计16个位的数据写至254#从站的线圈065281~065297,并自动将DB171.DBX622.6的值复位为0,操作完毕恢复至轮循模式;随机操作时功能码为16,写一个或多个保持寄存器:--》当(某一条件)将FB171的背景数据块中DB171.DBX622.7 (与FC190的管脚WrtNO=8对应)的值置1时,立刻从轮循模式切换至随机操作模式,因为偏移为0,所以发出命令将DB24中DB24.DBW0计1个字的数据写至254#从站保持寄存器465281,并自动将DB171.DBX622.7的值复位为0,操作完毕恢复至轮循模式;6、FB171的背景数据块主要内容 (以DB171为例):五:主站免硬件狗(免Dongle)功能块的特点ModbusRTU主站程序已整合成一个功能块,配置相当方便;1、无需西门子Modbus Master 硬件dongle;2、支持STEP7、支持PCS7;3、支持CP340、CP341的ModbusRTU通信;4、支持每条命令的故障报文反馈,符合Modbus规范,方便诊断;5、支持轮循模式的时间间隔设定;6、支持随机操作的时间间隔设定;7、支持主站命令报文先进行正确性合理性判别后再发送,非法则转成08测试功能,同时对应于从站号的相应命令出错位为1;8、支持从站通信故障判别并以故障状态位形式直接体现,从站故障时故障位为1;9、支持Modbus功能为01、02、03、04、05、06、08、15、16号;10、支持对运行过程中暂时不需要的从站地址进行动态屏蔽禁用,禁用时相应位为1;11、有独立的主站通信功能块来简化编程工作量,简单易学;12、不仅支持在轮询模式下对从站发出命令,同时支持随机操作,也支持批量随机操作,批量随机操作是指多个操作员在同一时间点发出的多个命令也可以被功能块接受后自动列队并依次发出随机操作命令,命令完成后无缝切换至轮询模式,随机操作可暂停轮询模式,优先级比轮询模式高,轮询模式被随机操作暂停时有记忆当前轮询值的能力;六:对技术人员使用从站免硬件狗(免Dongle)功能块的基本要求具备西门子CP模块接口与其它装置通信接口之间硬件接线原理图的理解能力;具备西门子CP模块接口与其它装置通信接口之间硬件接线的动手能力及检测能力;具备ModbusRTU通信协议方面的相关基础知识;具备一定基础的STEP7编程组态能力(包括读懂通信示例程序后移植的能力);具备计算机上使用主从站模拟调试软件的能力,常用软件主要有两种如下:[ModScan主_ModSim从]、[ModbusPoll主_ModbusSlave从];可以先将PLC的CP卡与计算机模拟的站调通,再将目标通信站与计算机模拟的站调通,最后将PLC的CP卡与目标通信站硬件接线连接起来就OK,常用调试硬件工具为USB转485通信转换器;七:STEP7编程组态注意事项因为涉及到CP通信模块,因此进行STEP编程前需安装好STEP7软件及CP模块配套光盘中的CP_PtP驱动,否则无法对CP通信模块的参数进行设定(未装驱动时参数按钮灰化);(*) CPU 使用 MMC 的 S7-300 PLC 从固件版本 V2.0 起支持 SFB 52/53;CPU 使用 MMC 的 S7-400 PLC 从固件版本 V3.0 起支持 SFB 52/53;以上CPU为新版CPU;其它的则为老版CPU;注:示例程序作者会提供给正式用户,示例程序为作者相应硬件组态条件下经测试通过的程序,用户在理解的前提下需将示例程序中的所有块全部拷贝至用户项目中,并在OB1中进行调用,若存在与用户项目中相同命名的FB、FC、DB时,为了防止不破坏用户项目,可以暂时先不覆盖,由用户决定将某一方面名称修改成不重复后再复制入项目中,同时程序中涉及到调用改过名称的FB、FC、DB的地方均需作相应修改!用户项目中的硬件组态也需参考示例程序中的组态参数!通信功能块的各管脚均有中文注解提示,把鼠标放到功能块相应管脚上就可显示!用户可以通过获取通信适配器或授权码(二选一)就能使通信功能块正式运行!注意:禁止在OB35中调用此ModbusRTU免狗功能块!有需要的用户可直接加作者QQ:2532622889,验证信息:“Modbus免狗”;附: ModbusRTU主站功能块未被正式化时所具备的通信功能说明(可作测试体验用)FC190中配置对方有效从站地址只能为1或254;FC190中配置对方有效起始地址只能为(0~7)或(65280~65287)或(248~255)或(65528~65535);在上述从站地址及起始地址都有效的情况下,功能码的受限如下:01功能码24个bit;02功能码24个bit;03功能码1个word;04功能码1个word;05功能码正常;06功能码正常;08功能码正常;15功能码只能写出16个bit;16功能码只能写出1个word;正式使用ModbusRTU主站功能块时无任何限限制,可以完美运行(工业级设计)!。

西门子CP341模块的MODBUSRTU通讯的实现与应用

西门子CP341模块的MODBUSRTU通讯的实现与应用

西门子 CP341模块的 MODBUS RTU通讯的实现与应用摘要:本文详细阐述西门子PLC中CP341模块的MODBUS RTU免授权通讯的设计方案在空压机变频改造中的应用实现,该方案通过采用西门子STEP7软件编程的方式使用集成在西门子CP341通讯模块内的ASCⅡDriver协议来实现MODBUS RTU免授权通讯功能。

这样的优势在于不需要使用MODBUS协议驱动模块,能够节约项目成本。

在该项目中的应用效果可以看出,这种设计方案虽然软件设计复杂,但是安全可靠、成本低廉,具有应用价值。

关键词:MODBUS RTU通信;西门子CP341模块; CRC冗余校验1 引言在工业自动化系统领域中,MODBUS RTU作为一种开放高效且可靠的通信协议得到了广泛的应用,它能够通过一组数据线将现场仪表内测量数据安全可靠传输到PLC控制系统,实现数据交换,这样既能减少电缆又能精准的采集得到仪表的数据。

而西门子S7-300系列中的CP341模块集成了ASCⅡDriver驱动协议,支持RS485传输接口,可进行MODBUS RTU串口通信。

本文通过某污水处理厂项目中PLC与水质检测仪之间的通讯,对CP341通讯模块进行软件编程设计,这样能够免于购买授权模块来进行授权,该方案最终得以实现,经济效益明显。

2 硬件配置该项中以技术成熟可靠的西门子S7300可编程控制器为核心,系统中通讯模块选用标配RS485接口的西门子CP341模块,以此来与污水处理厂内的水质监测仪表来进行数据交换。

通讯配置过程中使用集成在CP341内的ASCⅡDriver驱动来实现Modbus Master/Slave RTU串口通讯功能。

在编写程序之前,我们首先需要对CP341模块的参数进行设置,其中主要包括:字符延迟时间设置;接口方式设置;波特率的设置,数据位和停止位设置,奇偶校验位设置等等。

对PLC硬件模块配置完成以及将其中的CP341模块硬件接口通信参数设置完成后,就可开始编写程序,该项目中主要包括通讯程序以及逻辑控制程序。

CP341做MODBUS从站(个人调试经验)

CP341做MODBUS从站(个人调试经验)

Modbus 从站调试注意事项:首先需要在CP模块上插入Modbus从站Dongle,如图3所示,然后安装Modbus从站软件包,您可以在下面的下载路径中获得,安装完软件包后,在您的项目中组态modbus从站,双击CP341模块,在模块的属性窗口中点击Parameter按钮,选择Modbus从站协议:图15将您的PC和PLC连接起来,PLC上电,点击Load Drivers图标,弹出装载驱动窗口:图16点击Load Drivers按钮,完成从站驱动安装过程,进行Modbus驱动装载的时候,PLC必须处于STOP状态。

在点击信封图标,打开Modbus从站参数窗口:图17默认从站地址222,然后在设定modubs从站的Function Code地址与PLC中M,I,Q等地址的对应关系:图18以上所设定的参数含义是Modbus主站读从站的前256个位(00001-00256)对应S7300站中MB0-MB31中的数据,主站读从站第257个到512个位对应QB0-QB31。

Function Code 01,05,15 对应M,Q,T,C等数据区,可读可写,具体的字节范围由您在modbus从站组态时设定。

Function Code 02对应M,I数据区,只读,具体的字节范围由您在modbus从站组态时设定。

Function Code 03,06,16 对应DB区,可读可写,在modbus从站组态时设定对应的DB块以上各参数应该都设置,否则会出现地址找不到,主站通讯超时错误。

CP341从站参数都下载后,还必须进行一次硬件组态的编译。

然后下载至PLC中。

程序里,调用FB80里手动添加的DB80下载至PLC里后会出现报错,应该用实例库中的DB80调用的FB80里的LADDER应该与硬件组态里的地址相以应。

Function Code 04 对应DB区,只读,在modbus从站组态时设定对应的DB块。

在STEP7的SIMATIC Manager中打开Modbus从站例子程序,如图7所示,将例子程序当中的所有程序块复制到您的项目当中,修改OB1当中的Network1里的LADDR参数,与您模块的实际硬件地址相同,如图4所示,将blocks文件夹下载到PLC当中,CPU运行,对M180.0和M180.5置位,就可以在Modbus主站上得到数据了,这里您需要注意S7 PLC与Modbus主站之间的数据地址对应关系,Modbus从站手册中包括了相关信息,通过下面的下载路径,您可以下载到该手册。

西门子Modbus通讯模块CP341的全双工通讯的实现

西门子Modbus通讯模块CP341的全双工通讯的实现

西门子Modbus通讯模块CP341的全双工通讯的实现2006-11-24 09:42西门子串口通讯模块CP341装载ModBus从站协议全双工通讯的实现[摘要]通过试验实现了西门子串口通讯模块CP341装载ModBus从站协议时的全双工通讯[关键词]CP341 Modbus 全双工通讯项目概述安钢1#煤气加压站GMC煤气混合控制系统采用西门子公司S7-400H系列过程控制系统及安装有CyboSoft系列控制软件CyboCon的MFA先进控制站构成。

如图-1所示MFA先进控制站通过CP341与S7-400H系统实现数据通讯,采用的是ModBus协议,RTU格式,CP341装载ModBus从站协议,作为从站与MFA先进控制站通讯。

在MFA先进控制站侧安装有研华的ADMA4520模块,使其具有RS485和RS422通信接口。

CyboCon是由通控集团博软公司(CyboSoft,General Cybernation Group Inc.)开发并拥有的专利技。

基于MFA核心控制技术是世界上首套“即插即用”式单变量和多变量控制软件,可自适应控制简单或复杂的工业过程。

它以无模型自适应理论为基础,无需进行控制器设计、没有辨识过程,也不需知道过程的定量知识,就可将控制器投入运行。

即使过程的动态特性有很大变化,也不需重新整定控制器参数。

遇到的问题主要问题出现在MFA先进控制站与西门子系统通讯方面。

系统最初的设计是MFA先进控制站与CP341之间通过RS485的形式连接。

问题就出在此:MFA 先进控制站的Modbus驱动是在RS232的接口基础上开发的,通讯方式为全双工。

而通过RS485与CP341连接时,只能实现半双工通讯。

于是在现场就出现了一些问题:进行小的数据量(寄存器读写总数不超过10个)时,通讯基本上还是正常可以进行的,但是不同程度上会出现数据丢失的现象(图2)。

如再增加通讯数据量,数据丢失将更加明显,甚至出现通讯中断。

在PCS7中如何实现CP341做主站进行MODBUS通信

在PCS7中如何实现CP341做主站进行MODBUS通信

在PCS7中如何实现CP341做主站进⾏MODBUS通信如何在PCS7中实现CP341的MODBUS通信1.软件与硬件安装需求a.⾸先要对CP341进⾏参数化,既需要安装参数化软件Setup_PtP.exe(在CP341附带的CD或⽹上/doc/783798d7c1c708a1284a4457.html /WW/view/en/12310504可下载。

b.根据CP341作主从具体情况,对CP341进⾏参数化。

c.安装MODBUS主从通讯驱动软件:MODBUS从站驱动V3.1.4(/doc/783798d7c1c708a1284a4457.html /WW/view/en/8715908)MODBUS主站驱动V3.1.3(/doc/783798d7c1c708a1284a4457.html /WW/view/en/8713784)在参数化菜单中,设置其主从选择。

d.进⾏MODBUS主/从通讯时,需要相应的CP341中插⼊硬件狗(DONGLE) 。

插⼊⽅法参见下图。

MPI 连接⽅式,将PLC 置于STOP 。

点击Load Drivers 钮。

f.串⾏通讯模板CP341有RS232C或TTY或RS485/422 三种电⽓接⼝类型。

⼀般来讲,RS232的通讯最⼤距离为15m,20mA TTY的通讯最⼤距离为100m(主动模式)、1000m(被动模式),RS422/485的通讯最⼤距离位1200m。

每种接⼝⽅式下的具体接线⽅法可参考CP341⼿册。

以下⽰例为RS485/422接⼝CP341接⼝定义:其全双⼯(RS422)四线连接时连接⽅法如下:g.MODBUS为单主站⽹络协议,所以系统中只能够有⼀个MODBUS主站,并且只能够实现主站和从站的数据交换,从站之间不能进⾏数据交换。

具体连接⽅法参见CP341主站通讯⼿册。

MODBUS协议RS422⽅式下多点连接⽰意图如下:2.CP341作为主站(MASTER)组态⽅法a.定义CP341作为主站通讯时的通讯波特率、桢特性和从站⼀致。

cp341modbus 从站与DCS通讯

cp341modbus 从站与DCS通讯

cp341modbus 从站与DCS通讯
cp341在线诊断缓冲区里说接受到的功能代码与发送的功能代码不匹配
我们厂的PLC与DCS通讯的好好的昨天突然就通讯不上了测线路好的呢
最佳答案
1、请检查是否修改过程序
2、因为你们的PLC作为从站,按照协议规则,应该是响应对方的报文请求即可
3、你可以在网上下载串口精灵或者其他串口软件模拟MODBUS主站与PLC之间的通讯,功能码设置成与实际一致,如果通讯正常,可以判断是对方的问题,如果不正常就是你方的问题。

先判断是谁的问题。

4、CP341重新上电试下。

基于CP341模块的MODBUS RTU 从站协议免驱动通信

基于CP341模块的MODBUS RTU 从站协议免驱动通信

基于CP341模块的MODBUS RTU 从站协议免驱动通信王延年;陈红;高霞
【期刊名称】《西安工程大学学报》
【年(卷),期】2010(024)006
【摘要】为了克服在SIEMENS PLC通信系统,用硬件驱动实现MODBUS RTU 从站协议通信的弊端,提出了MODBUS RTU从站协议免驱动通信的设计方案.该方案基于CP341串行通信处理器模块的ASCII通信方式,采用STEP7编程软件,根据MODBUS RTU报文格式编写通信程序,实现MODBUS RTU 从站协议免驱动通信.通过CP341与DCS之间数据通信程序的设计,建立了PLC做从站与DCS的MODBUS通信.与使用MODBUS RTU协议转换卡相比,软件编程具有较强的灵活性和通用性.
【总页数】5页(P786-790)
【作者】王延年;陈红;高霞
【作者单位】西安工程大学,电子信息学院,陕西,西安710048;西安工程大学,电子信息学院,陕西,西安710048;西安工程大学,电子信息学院,陕西,西安710048
【正文语种】中文
【中图分类】TN915.04
【相关文献】
1.基于Siemens通信模块的MODBUS RTU免驱动通信 [J], 刘小斌;徐立平;路建强
2.西门子串口通讯模块CP341装载MODBUS RTU从站协议通讯的实现 [J], 李广园;周伟;王君元
3.基于CP341模块的MODBUS RTU免授权通讯的实现与应用 [J], 张翠平;宋文超;李根;付瑶;李古清
4.基于CP341模块的MODBUS协议免驱动应用 [J], 边凌燕
5.免加密狗西门子CP341模块的ModbusRTU通信实现 [J], 熊田忠
因版权原因,仅展示原文概要,查看原文内容请购买。

西门子串口通讯模块CP341装载MODBUS RTU从站协议通讯的实现

西门子串口通讯模块CP341装载MODBUS RTU从站协议通讯的实现
【关键词】CP341; ModbusRTU 协议; RS485 【作者单位】李广园,周伟,王君元; 中油管道机械制造有限公司
CP341 模块是西门子 S7 - 300 /400 系列 PLC 中的串行 通讯模块。该模块具有一个串行通讯口( RS232C 或 TTY 或 RS485 /422) 。支持以下协议: ASCII,ModbusRTU 远程终端, DF1 协议,电器接口为 15 针 D 型孔接头。Modbus 协议 Modbus 协议是目前工业领域最流行的协议,是应用于电子控制 器上的一种通用语言。Modbus 端口是使用一个 RS - 232 兼 容的串行接口,定 义 了 连 接 器,接 线 电 缆,信 号 等 级,传 输 波 特率,和奇偶校验,控制器可直接或通过调制解调器( 以后简 称 Modems) 接入总线( 网络) 。控制器通讯使用主从技术,即 主机能起动数据传输,称查询。而其它设备( 从机) 应返回对 查询作出的响应,或处理查询所要求的动作。典应的主机设 备应包括主处理器和编程器。典应的从机包括可编程控制 器。主机可对各从 机 寻 址,发 出 广 播 信 息,从 机 返 回 信 息 作 为对查询的 响 应。 从 机 对 于 主 机 的 广 播 查 询,无 响 应 返 回 Modbus 协议报据设备地址,请求功能代码,发送数据,错误校 验码,建立了主机查询格式,从机的响应信息也用 Modbus 协 议组织,它包括确认动作的 代码,返回数据和错误校验码。若 在接收信息时出现一个错误或从机不能执行要求的动作时,从 机会组织一个错误信息。并向主机发送作为响应。
产业与科技论坛 2011 年第 10 卷第 13 期
西门子串口通讯模块 CP341 装载 MODBUS RTU 从站协议通讯的实现
□李广园 周 伟 王君元

基于ModbusRTU通讯协议的Siemens

基于ModbusRTU通讯协议的Siemens

基于ModbusRTU通讯协议的Siemens CP341与Bently 之间的通讯刘焱/沈阳鼓风机(集团)有限公司自控公司摘要:介绍了SIEMENS CP341模块和ModbusRTU 协议,并详述了用CP341模块实现MODBUS RTU 协议的方法和设计思路。

证明了CP341模块在和其它设备采用这种协议通讯时稳定可靠,这种协议转换方法很适合控制现场使用。

关键词:Modbus RTU Bently 通讯中图分类号:PT393.04 文献标识码:B文章编号:1006-8155(2006)04-0041-03Communication between Siemens CP341 and Bently Based on Modbus RTU Communication AgreementAbstract: The Siemens CP341 module and Modbus RTU agreement are introduced, and the method and design idea to realize Modbus RTU with CP341 module are detailed. It proved that CP341 module is stable and reliable to communicate with other equipments based on this communication agreement, and the agreement is very suitable to use on field.Key words: Mosbus RUT Bently Communication1 引言在压缩机、电机、汽轮机等旋转设备的运行过程中,对其振动值的监视,是保证压缩机能正常运转和出现故障能及时发现、处理的重要条件之一。

采用德国Siemens S7400 PLC 与美国Bently测振装置相结合的方案来对其进行监控。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用西门子CP341实现Modbus RTU通讯1 概述 CP341模块是西门子S7—3001400系列PLC中的串行通讯模块。

该模块具有1个串行通讯口(RS232C或 TTY或RS485/422),RS422/485的通讯最大距离位1200m。

支持以下协议ASCII,ModbusRTU远程终端,Data Highway(DF1协议),电气接口为15针D型孔接4 CP341驱动配置在您的计算机上首先安装STEP7 5.x软件和CP34x模板所带的软件驱动程序.模板驱动程序包括了对CP341进行参数化的窗口(在STEP7的硬件组态界面下可以打开)、用于串行通讯的FB程序块。

当系统上电,CP34x模板初始化完成后,CP34x上的sF灯点亮:在硬件组态窗口中双击CP341模板,打开CP341模板的属性窗口,选择通讯协议modbus,网络工作方式设置为半双工,请记录下模板的硬件地址以便在编程序时用到。

双击CP341模板属性窗口中的protocol 协议图标进行协议参数设置,这里我们使用默认值:96oo bit,s, 8 data bits, 1 stop bit,even parity。

对的硬件组态存盘编译,下载硬件组态.如果此时sF灯亮.请将通讯电缆与另一个通讯伙伴进行连接后.SF灯熄灭,说明硬件组态正确。

5 程序编写(1)CP341发送模块的设计而发送程序主要是通过调用功能块FB8来实现,FB8是基于上升沿触发工作的.来一个上升沿FB8工作一次向总线上发送一个请求数据包,所以在程序中一定要设计一个触发代码段,来不断的使REQ:=M50.0循环往复的置“1”置“0”,这样FB8就可以正常运行了。

在设计程序时一定要注意FB8的参数SF:=‘S’及R_TYP:=‘X’的值都是大写否则程序调试不成功。

FB8需要一个背景数据块.这一背景数据块一般由系统自动生成.以上程序中为DB3;对于通过CP34 1的Modbus Master驱动通讯的发送模块需要设计发送数据块DB块.用来对主站发送参数进行设置和初始化。

Modbus能够实现的功能代码共有10个.分别针对不同的寄存器读写功能设置.功能代码Initial value:B#16#4的功能是读从站的输出数据寄存器整数型、状态字或浮点型数据:寄存器的起始地址Initial value:W#16#0是功能代码规定的寄存器的起始地址;读取寄存器的数目Initial value:4的意义是从起始地址开始总共读取4个寄存器。

(2)CP341接收程序的设计接收程序是调用FB7来实现的,由于CP341可以处理接收程序的细节部分.因此对于设计者来说只需要进行简单的设计就可以实现数据的接收。

接收程序同样也需要设计背景数据块本例中为Db44块和接收数据块本例中为DB5块。

(3)装载设计好的发送接收程序FC 1与FC2。

6 参数化远程从站RTU .以上介绍的是Modbus主站的应用与程序设计,没有对远程终端RTU从站进行介绍.其实在进行程序调试时必须对从站进行一些参数设置使其参数与主站要求的一致,包括协议类型、从站地址、寄偶校验、传输超时等,否则通讯很难成功。

7 总结随着仪表自动化技术的提高,带各种通讯接口设备和现场总线设备将被大量应用到工业现场领域,使全数字化、串行、双向、互操作多快好省的远距离大数据量通讯成为可能.为数据监控和管理中心监控现场数据及现场设备工作状态和分析挖掘数据关系提供了方便。

Modibus RTU通讯是现场总线实现的一个简单例证,成功的解决了现场仪表数据和PLC通讯问题,节省了因标准仪表信号布线所需的大量电缆,并且可靠性得到了大幅度提高。

是我们今后现场信号采集通讯值得借鉴的一个典型代表。

RS485和MODBUS的区别时间:2008-05-12 04:02来源:作者:点击: 626次经常看到RS485和MODBUS写在一起,它们的区别和联系? RS485是一个物理接口,简单的说是硬件。

MODBUS是一种国际标准的通讯协议,用于不同厂商之间的设备交换数据(一般是工业用途);所谓协议,也可以理解为上面有人说的“语言”吧,简单的说是软件。

一般经常看到RS485和MODBUS写在一起,它们的区别和联系?RS485是一个物理接口,简单的说是硬件。

MODBUS是一种国际标准的通讯协议,用于不同厂商之间的设备交换数据(一般是工业用途);所谓协议,也可以理解为上面有人说的“语言”吧,简单的说是软件。

一般情况下,两台设备通过MODBUS协议传输数据:最早是用RS232C作为硬件接口,(也就是普通电脑上的串行通讯口(串口));也有用RS422的,也有常用的RS485,这种接口传输距离远,在一般工业现场用的比较多。

MODBUS协议又分MODBUS RTU,MODBUS ASCII和后来发展的MODBUS TCP三种模式:其中前两种(MODBUS RTU,MODBUS ASCII)所用的物理硬件接口都是串行(Serial)通讯口(RS232,RS422,RS485)。

而MODBUS TCP则是为了顺应当今世界发展潮流,什么都可以用Ethernet网或Internet来连接,传送数据。

所以又MODBUS TCP模式,该模式的硬件接口就是以太网(Ethernet)口了,也就是我们电脑上一般用的网络口了。

用西门子CP341实现Modbus RTU通讯时间:2008-05-12 04:00来源:作者:点击: 1597次1 概述 CP341模块是西门子S7—3001400系列PLC中的串行通讯模块。

该模块具有1个串行通讯口(RS232C或 TTY或RS485/422),RS422/485的通讯最大距离位1200m。

支持以下协议ASCII,ModbusRTU远程终端,Data Highway(DF1协议),电气接口为15针D型孔接1 概述CP341模块是西门子S7—3001400系列PLC中的串行通讯模块。

该模块具有1个串行通讯口(RS232C或 TTY或RS485/422),RS422/485的通讯最大距离位1200m。

支持以下协议ASCII,ModbusRTU远程终端,Data Highway(DF1协议),电气接口为15针D型孔接头。

可以使用这种通讯模块实现S7300/400与其它串行通讯设备的数据交换。

例如打印机、扫描仪、仪表、Modbus主从站、Data Highway站、变频器。

USS站等。

CP341模块可以同时与多台串行通讯设备进行通讯。

如同时连接多个变频器、连接多个智能仪表等。

如果采用RS422/485 modbus RTU通讯方式,需要在发送的数据包中包括站号、数据区、读写指令等信息。

供CP341模块所连接的从站设备鉴别数据包是发给哪个站的。

以及该数据包是对那个数据区进行的读或写的功能。

Modbus协议是应用于电子控制器上的一种通用语言。

通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。

它已经成为一通用工业标准,有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。

此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。

它描述了一控制器请求访问其它设备的过程。

如回应来自其它设备的请求,以及怎样侦测错误并记录等。

它制定了消息域格式和内容的公共格式。

MODBUS为单主站网络协议,所以系统中只能够有一个Modbus主站,所有通信都由它发出并且只能够实现主站和从站的数据交换,从站之间不能进行数据交换,Modbus可支持247个之多的远程从属控制器。

但实际所支持的从机数要由所用通信设备决定。

采用这个系统。

各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。

CP341插人MODBUS主站Dongle(狗)或插入从站Dongle,就可以作为MODBUS主站。

或者作为MODBUS从站。

在ModBus系统中有两种传输模式编码可选择,一种模式是ASCII(美国信息交换码),另一种模式是RTU(远程终端设备),由这两种模式定义这两种传输模式与从机PC通信的能力是同等的。

选择时应视所用ModBus主机而定。

每个ModBus系统只能使用一种模式。

不允许两种模式混用。

2 RTU帧结构使用RTU模式,消息发送至少要以3.5个字符时间的停顿间隔开始。

在相同的网络波特率下采用多个的字符时间,这是最容易实现的。

传输的第一个域是设备地址,可以使用的传输字符是十六进制的0...9,A...F。

网络设备不断侦测网络总线,包括停顿间隔时间内。

当第一个域(地址域)接收到后,每个设备都进行解码以判断是否发往自己的,在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束.一个新的消息可在此停顿后开始。

整个消息帧必须作为一连续的流转输,如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。

同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续,这将导致一个错误,因为在最后的CRC域的值不可能是正确的。

一典型的消息帧如下所示:起始位:T1-T2-T3-T4设备地址:8 Bit功能代码:8 Bit数据:N个8 BitCRC校验:16 Bit结束符:T1-T2-T3-T43 RS422/485网络工作过程基于Modbus主从式工作的主站以广播式的向所有从站发送请求数据的数据包.其数据包中包含从站地址、功能代码(即读取的寄存器类型)、要读取的寄存器的起始地址、该次要读取的寄存器个数。

并等待从站的响应;挂在同一条RS485总线上的所有从站被动的接收到主站的广播包.然后解开这个广播包把这个包中的从站地址与自己的地址对照.如果地址相同.该从站马上把自己相应寄存器中的数据发送到总线上去:主站中的接收程序始终处于待命状态.等待总线上从站发送来的响应数据包,并把响应包中的数据序列化到自己的接收数据块中。

从站检测到包中的从站地址与自己的地址不符时,则直接销毁该包.就不做任何响应。

到此完成一个发送接收数据的过程。

相关文档
最新文档