以CP341为例的modbusRTU免狗主站功能块教程13年7月
基于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 或
CP341-使用方法
CP341 使用方法CP341做Modbus 主从站为什么需要狗(Dongle)•悬赏分:5•- 解决时间:2010-11-8 19:12怎么使用啊?是不是把这个硬件狗插到CP341上面啊?问题ID: 60457提问者:LiXiang - 资深学长第3级最佳答案CP341有485和232的,485支持多个站点通信,当中只能也必须有一个主站,主站发出命令报文,报文包括从站位置,功能参数,数据,crc验证码,从站根据主站命令报文进行应答。
所以cp341如果是主站,其他的都是从站啦,cp341作为从站,主站就看你谁在和他通信啦,因为从站之间是不能互相通信的。
ASCII模式编程比较复杂,但是便宜,速度也慢。
RTU速度快,但是必须要买西门子的dongle,很贵的。
配置CP341首先需要PTP 驱动,PTP驱动将安装CP340/341编程所需的功能块,PTP驱动随CP341模块提供,也可以从以下链接下载:bbb://support.automation.siemensaaa/CN/view/zh/27013524CP341做MODBUS通讯需要订购MODBUS Dangle的硬件狗,Dangle会自带MODBUS主从的驱动程序,可以从西门子网上下载,bbb://support.automation.siemensaaa/CN/view/zh/27774018bbb://support.automation.siemensaaa/CN/view/zh/27774276CP341加装Dongle作主站与s7-200作从站MODBUS通信实例:bbb://www2.ad.siemensaaabbb/download/Upload/AS/application/A0384.pdf“PtP-Param V5.1”的 SP11 增加了下列特性:概述•优化了 CP341-V2 (固件版本 V2.1.0 及更高版本) 的数据吞吐性能。
CP341 CP340 ModbusRTU Adapter V5.0使用手册
CP34x ModbusRTU Adapter V5.0使用手册适用于CP340_CP341(2013年7月)(工业级设计,工作温度范围-40℃~85℃,输入电源最大功耗DC24V/1W)一:CP34x ModbusRTU Adapter通信适配器图解(如下图所示)二:CP34x ModbusRTU Adapter通信适配器正常使用步骤1、在适配器的供电端子接入DC24V电源(带防反接保护),L+接正极,M接负极;2、适配器上电初始化时对系统进行自检, RUN指示灯快闪大致3秒,随后RUN指示灯亮1秒再灭1秒(循环);3、按主站从站实际通信参数拨动设置DIP拨码开关(见DIP拨码开关定义),当DIP(1~8)被拨动(参数有改动)时,RUN指示灯会亮闪几下;4、将Modbus(RS-485)通信线接入适配器的Modbus端子,D+接正极,D-接负极;5、将适配器(DB15公头)插入CP34x模块(DB15母座);6、若PLC系统硬件组态正确,且STEP7程序也已正确调用与适配器配套的免狗Modbus功能块,则可以完美进行Modbus主站或从站通信;7、终端电阻(DIP9拨至ON)只能在RS-485总线一头一尾的两个节点使用(中间的节点无需终端电阻,一般在通信距离超过50米时才使用);三:DIP 拨码开关定义注: DIP 开关(1~8)状态与LED 亮灭完全对应,DIP(ON)=LED(亮),DIP(OFF)=LED(灭);DIP 开关(9)为RS485总线终端电阻使用与否的控制位;序号 DIP1 DIP2 DIP3 DIP4 波特率(bps)1 OFF OFF OFF OFF 3002 ON OFF OFF OFF600 3 OFF ON OFF OFF 12004 ON ON OFF OFF 24005 OFF OFF ON OFF 48006 ON OFF ON OFF 96007 OFF ON ON OFF 192008 ON ON ON OFF 384009 OFF OFF OFF ON 5760010 ON OFF OFF ON 7680011 OFF ON OFF ON 11520012 除上述列出的以外 9600 DIP5 DIP6 校验位 OFF OFF 无(None) ON OFF 奇(Odd) OFF ON 偶(Even) ON ON *无(None) DIP7 停止位 OFF 1位 ON 2位 DIP8 主从站 OFF CP 为主站 ON CP 为从站 DIP 9 终端电阻 OFF 不使用 ON 使用。
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从站手册中包括了相关信息,通过下面的下载路径,您可以下载到该手册。
基于CP341模块的MODBUS协议免驱动应用
本系统中采用较高数据传送密度的 RT U 通 信模式 , 协议定义其消息帧结构如图 1 所示 。
图 1 R TU 消息帧 Fig .1 RT U m es sage f rame
Mo dbus 协议定义了 3 种功能 码 :公共功能 码 , 用户定义功能码 , 保留功能码 。 本系统中支持 公共 功能 码 01 , 02 , 03 , 04 , 05 , 06 , 15 , 16 , 其 中 Mo dbus Slave 程序中支持功能 码 01 , 02 的实现 方式相同 , 03 , 04 相同 。
Nanjing 210009 , J iangsu, China) Abstract:T he realizatio n o f M odbus RT U M aste r/ Salve pro tocol ba sed on SIEM ENS CP341 point-topoint co mmunication module w as fo cally described.In a pr actical packaging co ntro l sy stem , PL C w ith M odbus RT U M a ster/ Slav e pro to co l is connected to local instruments and DCS, and data is transmitted reliably a nd effectiv ely .T his scheme has promo ting eco nomic sig nificance , for avoiding the ex pe nse of SIEM ENS drive r module of M odbus pro tocol . Key words:M odbus pro tocol ;serial communication ;CP 341 communication module
基于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为例的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作从站的使用教程
亿维CP341作从站的使用教程亿维 CP341作从站的使用教程发布时间【2016-02-22】浏览次数:4841概述在现场应用中,很多仪表和设备仅支持Modbus RTU的通讯协议,第三方仪表可以作主站或从站,亿维的通讯模块CP341支持该协议,UN-200集成的口可以支持自由口通讯,通过指令库也可以方便的实现Modbus RTU通讯。
本文以UN-200作为Modbus主站,实现Modbus RTU通讯,概述两者在通讯方面的设置和注意事项。
2软件环境2.1 STEP7 v5.5用于编写300的程序,本文档中300的程序使用STEP7 v5.5的软件编写。
2.2 STEP7_PtP_V5113串行通讯模板的驱动程序,安装此驱动后才能对PtP模板进行参数设置,并在Step7中集成通讯编程需要使用的功能块。
2.3 Modbus-Slave319CP341用作Mobus从站时,需要安装此驱动协议,但安装之前必须先安装PtP Driver。
2.4 STEP 7 - MicroWIN V4.0 SP9用于UN 200编程的软件,本文档中200的程序是使用Step7 Micro/win的软件编写。
2.5 Toolbox_V32-STEP 7-Micro WIN 32 Instruction LibraryUN 200实现Modbus RTU功能,可以使用Modbus的指令库,要使用西门子的标准指令库,必须先安装指令库的软件包instruction Library,安装后,可以在Step7 Micro/WIN软件的库中找到Modbus相关的指令。
3硬件列表与接线3.1 硬件列表3.2硬件接线3.2.1接口定义UN 200的通讯口为RS485物理口(9针口),CP341是RS422/485的接口类型(9针口)UN 200CPU通讯口引脚定义CP341 RS422/485通讯口引脚定义3.2.2 接线示意图4组态设置和编程4.1 UN 200作Modbus主站的设置UN 200CPU的通讯口在电气上是标准的RS-485半双工串行通讯口,此串行字符通信的格式:1个起始位、7/8位数据位、1位奇/偶/无校验、1个停止位。
以CP341为例的modbusRTU免狗主站功能块教程13年7月
以CP341为例的modbusRTU免狗主站功能块教程13年7⽉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模块的 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模块硬件接口通信参数设置完成后,就可开始编写程序,该项目中主要包括通讯程序以及逻辑控制程序。
CP340做MODBUS从站说明
共9页 第1页
DB?.DBW38----DB?.DBW40, 其中?为放置被读取数据的数据块号,此例中?=10), 以上数据块祥见例子程序,DB10 可以直接拷贝到你自己的程序中进行使用。
注意: 1,在前 10 个寄存器中,用户可自行定义 DI 数据,需要编写对应程序,如: L IW0 T DB?.DBW0 这样 I0.0—I1.7 的 16 位就对应到 DB?.DBW0 中了。MODBUS 主站读取此数据时可自行解 码。 2,在写数字量到 PLC 时,主站的内容写到了 DB?.DBX36.0--- DB?.DBX36.7 中,自己可以 根据需要进行使用,如增加程序如下: A DB?.DBX36.0 = M0.0 或者 A DB?.DBX36.0 = Q0.0 等等。 3, 在写模拟量到 PLC 时,主站的内容写到了 DB?.DBW38--- DB?.DBW40 中, 自己可以根 据需要进行使用,如增加程序如下: L DB?.DBW38 P MW10 或 L DB?.DBW38 P PQW256 等等。 另外注意 OB1 的变化。
图 11
共9页 第8页
OB1 说明:
图 12
共9页 第9页
INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL INT INT
DB?.DBW0 DB?.DBW2 DB?.DBW4 DB?.DBW6 DB?.DBW8 DB?.DBW10 DB?.DBW12 DB?.DBW14 DB?.DBW16 DB?.DBW18 DB?.DBW20 DB?.DBW22 DB?.DBW24 DB?.DBW26 DB?.DBW28 DB?.DBW30 DB?.DBW32 DB?.DBW34 DB?.DBX36.0 DB?.DBX36.0 DB?.DBX36.0 DB?.DBX36.0 DB?.DBX36.0 DB?.DBX36.0 DB?.DBX36.0 DB?.DBX36.0 DB?.DBW38 DB?.DBW40
CP34x ModbusRTU Adapter V5.0使用手册
CP34x ModbusRTU Adapter V5.0使用手册
适用于CP340_CP341(2013年7月)
(工业级设计,工作温度范围-40℃~85℃,输入电源最大功耗DC24V/1W)
一:CP34x ModbusRTU Adapter通信适配器图解(如下图所示)
二:CP34x ModbusRTU Adapter通信适配器正常使用步骤
1、在适配器的供电端子接入DC24V电源(带防反接保护),L+接正极,M接负极;
2、适配器上电初始化时对系统进行自检, RUN指示灯快闪大致3秒,随后RUN指示灯
亮1秒再灭1秒(循环);
3、按主站从站实际通信参数拨动设置DIP拨码开关(见DIP拨码开关定义),当DIP(1~8)
被拨动(参数有改动)时,RUN指示灯会亮闪几下;
4、将Modbus(RS-485)通信线接入适配器的Modbus端子,D+接正极,D-接负极;
5、将适配器(DB15公头)插入CP34x模块(DB15母座);
6、若PLC系统硬件组态正确,且STEP7程序也已正确调用与适配器配套的免狗Modbus
功能块,则可以完美进行Modbus主站或从站通信;
7、终端电阻(DIP9拨至ON)只能在RS-485总线一头一尾的两个节点使用(中间的节点
无需终端电阻,一般在通信距离超过50米时才使用);
三:DIP拨码开关定义
注: DIP开关(1~8)状态与LED亮灭完全对应,DIP(ON)=LED(亮),DIP(OFF)=LED(灭);
DIP开关(9)为RS485总线终端电阻使用与否的控制位;。
用西门子CP341实现Modbus RTU通讯
用西门子CP341实现Modbus RTU通讯摘自机电之家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主站。
免加密狗西门子CP341模块的ModbusRTU通信实现
免加密狗西门子CP341模块的ModbusRTU通信实现熊田忠【期刊名称】《微计算机信息》【年(卷),期】2012(000)010【摘要】Siemens CP341 Module and Modbus protocol are introduced. Realization of the CRC (Cyclic Redundancy Checks) with the Modbus RTU is discussed in detail. By Multi-Station Polling, programmed in the master station of CP341 based on its integrated ASCII driver, the Modbus RTU communication with the slivery station of the Mitsubishi F700 inverter is implemented. The running result shows that this method is characterizedby reliable communications, lower cost, convenient utilization, and wide application.%介绍了西门子CP341模块和Modbus通信协议,详细讨论了ModbusRTU模式的循环冗余校验(CRC)码的实现,以CP341模块作主站,采用多点轮询方式,基于其免费支持的ASCII驱动协议,编程实现与三菱F700变频器从站的ModbusRTU通信。
结果表明,该方法通信可靠、成本低廉、使用方便,具有广泛的应用价值。
【总页数】3页(P141-143)【作者】熊田忠【作者单位】三江学院【正文语种】中文【中图分类】TN915.04;TH86【相关文献】1.基于CP341模块的MODBUS RTU 从站协议免驱动通信 [J], 王延年;陈红;高霞2.浙大DCS与Siemens CP341基于ModbusRTU协议通讯 [J], 杨利丰;吴智贤;熊伟;秦旭香3.西门子串口通讯模块CP341装载MODBUS RTU从站协议通讯的实现 [J], 李广园;周伟;王君元4.基于CP341模块的MODBUS RTU免授权通讯的实现与应用 [J], 张翠平;宋文超;李根;付瑶;李古清5.基于CP341模块的MODBUS协议免驱动应用 [J], 边凌燕因版权原因,仅展示原文概要,查看原文内容请购买。
西门子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)。
如再增加通讯数据量,数据丢失将更加明显,甚至出现通讯中断。
基于CP341模块的Modbus通信应用
基于CP341模块的Modbus通信应用作者:王建军来源:《中国科技博览》2013年第06期[摘要]在自动化控制领域,随着分布式控制系统的发展,在工业上的分布式控制系统中,RS485总线标准得到了越来越多的应用,在R8485,总线中采用的Moclbus协议是公开的通信协议,被广泛应用,本文主要阐述了西门子CP341通信模块的构造和Modbus通信协议内容,通过CP34l模块在兴澄特钢制氧车间空压站控制系统中的使用实例,详细介绍了CP341作为通信主站,与LG PLC和AB PLC系统之间通信的应用。
[关键词]RS485,CP341,Modbus通信,PLC中图分类号:E964 文献标识码:A 文章编号:1009-914X(2013)06-0254-020、前言随着工业自动化程度的提高,在众多的工程项目当中,往往存在着PLC、DCS和各种智能仪表等并存的现象,现场设备常由于控制系统的不同,其本身固有的通信接口及协议不同使得自动化控制系统难以很好的结合,给系统功毹的完整性增加了技术难度及成本,多种协议转换也使得系统应用的实时性和可靠性降低。
若将该混合系统融合成一个整体,使所有监控都在集中控制室上位机上操作,就必须用一种可靠的通信方式将各种控制系统有机的结合起来。
Modbus通信协议是由MODICON公司为其控制器设计的一种可靠而有效的工业控制系统通信协议。
从功能上看,可以认为是一种现场总线,Modbu协议定义了一种信息结构,这种信息结构可以被所有支持该协议的各种设备在通信时认可和使用。
它描述了控制器向其他设备发出查询的过程以及其他设备如何进行应答,以及错误的检测和报告。
其数据通信采用主从方式,主站只能有l台,每个从站都有指定的地址,地址范围在0~247之间(其中0为广播地址),只有主站具有主动权,从站只能对主站发送的命令作出响应。
当主站发出数据请求消息(查询)时,从站接收到正确消息后就可以发送数据到主站以响应请求;主站也可以直接发消息修改从站的数据,实现读和写。
基于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 模块是西门子 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 从站协议通讯的实现
□李广园 周 伟 王君元
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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主站功能块时无任何限限制,可以完美运行(工业级设计)!。