cp341
- 格式:doc
- 大小:209.50 KB
- 文档页数:6
如何调式西门子PLC通讯模块CP341西门子PLC S7-300系列是西门子PLC系列中一类重要的产品,它广泛的应用在工业自动化控制领域的各类项目中,为用户提供了多种不同类型的自动化控制系统解决方案。
西门子PLC S7-300的扩展能力很强,用户通过配置不同类型的模块,可以完成多种不同的功能。
在实现西门子PLC与其他设备的通讯功能时,用户需要配置相应的通讯模块,例如:CP343-1,CP343-2,CP341等。
用户通过这些通讯模块可以实现多种不同协议的通讯方式,本文下面重点介绍一下CP341通讯模块的调试方法,供用户在选型和使用过程中进行参考。
西门子PLC S7-300系列通讯模块CP341调试方法西门子PLC S7-300系列中的通讯模块CP341是用来实现西门子PLC S7-300系列与其他西门子设备之间通过Modbus通讯的模块,它的调试步骤如下所示:1. 安装CP341西门子PLC S7-300系列中的通讯模块CP341,安装在西门子PLC 系列专用的安装导轨上,一般安装在CPU右侧,可以直接紧靠CPU 安装,也可以安装在CPU右侧先安装I/O模块,再安装CP341;2. 组态CP341西门子PLC S7-300系列中的通讯模块CP341,通过西门子编程软件STEP7进行硬件组态,用户在STEP7中新建一个项目,然后在硬件组态中,选择相应型号的CP341插入对应位置即可;3. 为CP341配置参数西门子PLC S7-300系列中的通讯模块CP341,它的参数分配设计协议的特定参数的创建和用于打印输出的消息文本组态。
用户可以通过使用CP341的点对点通讯,参数分配界面来实现CP341的参数分配工作;4. 保存参数数据西门子PLC S7-300系列中的通讯模块CP341的参数分配数据存储包含保存数据,将参数装载到CPU或将参数传送到通讯处理器,用户使用西门子PLC的编程软件STEP7来存储参数和分配数据;5. 程序设计西门子PLC S7-300系列中的通讯模块CP341在正常工作前,需要用户在STEP7中设计程序逻辑,即对CP341进行编程,并通过STEP7将用户的程序关联到CPU的CP341编程接口。
UniMAT亿维发布CP341 MODBUS串口模块
2013年8月,UniMAT亿维正式推出CP341 RS485/422 MODBUS串口通讯扩展模块(简称:CP341 MODBUS串口模块),订货号为:UN 341-1CH02-0XE0。
该模块是点对点的、高速、高性能的的串行通讯模块。
可以与各种支持MODBUS通讯和RS485/422自由口通讯的产品进行点对点数据交换,例如支持MODBUS通讯的各种PLC(施耐德、欧姆龙、三菱、台达等)、变频器、HMI、IPC、智能仪表等,还可以与使用RS485自由口与自行开发的产品通讯。
该模块可以直接替代市场上主流的CP341产品,另外无需增加昂贵的MODBUS硬件狗即可实现MODBUS通讯,(市场上同类产品CP341+硬件狗的价格在9000元以上),性价比非常突出。
一、功能特性:
◆支持与各种类型的MODBUS设备通讯。
◆无需另外加昂贵的MODBUS硬件狗,为用户节约成本。
◆采用DB9串行通讯接口,直接接PROFIBUS总线接头,免去自行焊线的麻烦,使用方便。
◆通讯采用光电隔离,最大通讯距离为1200m。
◆无需外接24V电源,方便用户使用。
◆支持通讯波特率范围大:300--115200bit/s,方便与各种类型MODBUS通讯设备连接。
◆支持校验位/停止位的灵活配置,程序设置操作简单、方便。
◆支持RTU主从站协议及ASCII协议,单帧数据最大长度2K,传输速度快。
二、产品图:
三、技术参数:
四、通讯接口引脚定义图:。
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通讯资料及故障排除485通讯问题解决办法(2009-3-25 11:1)1、485总线应采⽤什么样的通讯线必须采⽤国际上通⾏的屏蔽双绞线。
我们推荐⽤的屏蔽双绞线的型号为RVSP2*0.5(⼆芯屏蔽双绞线,每芯由16股的0.2mm的导线组成)。
采⽤屏蔽双绞线有助于减少和消除两根485通信线之间产⽣的分布电容以及来⾃于通讯线周围产⽣的共模⼲扰。
⼯程商⼤都习惯采⽤5类⽹线或超5类⽹线作为485通信线,这是错误的。
这是因为:(1)普通⽹线没有屏蔽层,不能防⽌共模⼲扰。
(2)⽹线只有0.2mm平⽅,线径太细,会导致传输距离降低和可挂接的设备减少。
(3)⽹络线为单股的铜线,相⽐多芯线⽽⾔容易断裂。
2、为什么要接地485收发器在规定的共模电压-7V⾄+12V之间时,才能正常⼯作。
如果超出此范围会影响通讯,严重的会损坏通讯接⼝。
共模⼲扰会增⼤上述共模电压。
消除共模⼲扰的有效⼿段之⼀是将485通讯'>485通讯线的屏蔽层⽤作地线,将机具、电脑等⽹络中的设备地连接在⼀起,并由⼀点可靠地接⼊⼤地。
3、485通信线应如何⾛线?通信线尽量远离⾼压电线,不要与电源线并⾏,更不能捆扎在⼀起。
4、为什么485总线要采⽤⼿拉⼿结构,⽽不能采⽤星形结构?星形结构会产⽣反射信号,从⽽影响到485通信。
总线到每个终端设备的分⽀线长度应尽量短,⼀般不要超出5⽶。
分⽀线如果没有接终端,会有反射信号,对通讯产⽣较强的⼲扰,应将其去掉。
5、485总线上设备到设备之间可以有接点吗?在同⼀个⽹络系统中,使⽤同⼀种电缆,尽量减少线路中的接点。
接点处确保焊接良好,包扎紧密,避免松动和氧化。
保证⼀条单⼀的、连续的信号通道作为总线。
6、什么叫共模⼲扰和差模⼲扰?如何消除通讯线上的⼲扰?485通信线由两根双绞的线组成,它是通过两根通信线之间的电压差的⽅式来传递信号,因此称之为差分电压传输。
差模⼲扰在两根信号线之间传输,属于对称性⼲扰。
CP341通讯模件中自带的3694(R),RK512,ACSIC三种驱动协议都有哪些区别,都分别在什么场合最适用?ASCII:
1:利用第一层(OSI/ISO)进行通信
2:报文完全由用户定义
3:报文结束必须定义
4:ASCII 表字符都有效
5:可通过RS-232,RS485,RS-422通讯
6:可与第三方设备进行简单的通讯,如串行仪表等7:hd=1安全性差速度较快
3694(R):
1:利用第-层/第二层(OSI/ISO)进行通信
2:通信双方必须定义优先级
3:3964R与3964相比带有块校验
4:西门子自己的协议
5:传输数据量<=1024字节
6:通信带有确认(硬件)
7:通信性能好,相对于安全性
8:5HD=3 安全性好,速度较ASCII慢RK512:
1:利用第四层(OSI/ISO)进行通信
2:通信服务带有确认
3:客户机与服务器通信方式
4:西门子自己的协议
5:传输数据量<=1024字节
6:通信带有确认
7:可以读写通信方可以使用的数据区8:HD=4 安全性比3694好,速度较3694慢。
cp341(rs422/rs485)模块与5块仪表通
讯??
现在有一个cp341模块与5块仪表通讯,cp的驱动和硬件狗都有,现在就是想问一下是用什么协议做程序?是rtu 主站吗?5各仪表都有rs485通讯的模块,这5各仪表串联连接到cp341的模块上,然后用fb7和fb8编写程序就可以了吗?这样就能采集到各个仪表的显示数值吗?
问题补充:
仪表那边设置波特率和站地址!别的就没有什么可以设置的吧!把几块表手拉手连接起来,通过cp341的15针口通讯!4负11正的接法!这样通过ascii协议来走就行了吧?
最佳答案
rs485通信,一个主站cp341,多个从站仪表,将设备手拉手连接起来,通过写cp341的程序来读取从站数据,要求一个站一个站地读,即先1#,完成后再2#,依此类推,这样就可以把仪表的数据都读上来了!
要通过调用fb7和fb8编写程序
如果仪表支持modbus,那么才需要用狗,这样才用的是modbus协议,相对上面的比较方便一些,但道理是一样的,也是一个站一个站地轮询!。
西门子串口通讯-CP341在TIA博途环境中做Modbus主站通讯1 硬件列表应用CP341Dongle安装在CP341模块的背面的Dongle插槽中,Dongle和插入Dongle前后的CP341如下图所示。
图12 组态和配置1、打开软件TIA PORTAL STEP7 V13,点击项目->新建...创建一新项目,项目名称为341_modbus_Master。
图22、用鼠标点击“添加新设备”,选择SIMATIC S7-300->CPU->CPU 319-3PN/DP->6ES7 318-3EL00-0AB0。
图33、双击“设备组态”进入硬件组态界面,导轨RACK和CPU 319-3PN/DP已经存在,只需要插入PS307和CP341。
图44、双击CP341模板,进入CP341的属性框,配置CP341参数。
图55、在“协议”选项中选择“Modbus主站”。
配置modbus通信参数,设定的通信参数要和通讯伙伴的相同。
传输率(通信波特率):9600bps,数据位:8位,停止位:1位,奇偶校验:无。
图66、本示例选用的是RS422/485接口的CP341,还需要设置接口属性,如下图所示。
图73 编写通信程序1、双击“添加新块”,创建发送数据块DB10和接收数据块DB11,发送数据块的名称为Send,接收数据块的名称为Rev;如下图所示,发送数据块中新建几个变量,从站地址为2,功能码为3,起始地址为0,读4个寄存器数据,具体功能码3 的使用参见手册“S7串行通信模板Modbus RTU主站可装载驱动的操作说明” 6.3章节的说明;如下图所示,接受数据块中新建1个数据类型Array的变量,数组元素的数据类型为Byte,数量为400。
图8图92、进入主程序OB1,从通信->通信处理器->PtP链接:CP341,调用发送功能块P_SND_RK和接收功能块P_RCV_RK。
P_SND_RK的背景数据块为DB1,P_RCV_RK的背景数据块为DB2。
基于CP341的ModbusRTU通信的设计与实现CP341模块是西门子S7-300/400系列PLC中的串行通讯模块。
CP 341 通讯处理器可以与各种 Siemens 模块和非 Siemens 产品点对点连接:该模块具有1个串行通讯口(RS232C或 TTY或RS485/422),RS422/485的通讯最大距离位1200m。
支持以下协议ASCII,ModbusRTU远程终端,Data Highway(DF1协议),电气接口为15针D型孔接头。
可以使用这种通讯模块实现S7300/400与其它串行通讯设备的数据交换。
例如打印机、扫描仪、仪表、Modbus主从站、Data Highway站、变频器。
USS站等。
在实际生产中往往遇到的系统是由不同制造商生产的控制设备,网络设备和传感器,执行器组成的异构网络,大部分情况下运行在不同的协议上支持不同的功能或应用。
如何使这些设备互联通信成为系统设计中需要解决的一个重要问题。
与CP 341 进行点对点连接所需的组件要在通讯处理器和通讯伙伴之间建立点对点连接,您需要特定的硬件和软件组件。
需要的硬件组件所需的软件组件CPU、CP 341 和通讯伙伴之间的通讯通过 CP 341 的功能块和协议进行。
CP341模块是西门子S7-300/400系列PLC中的串行通讯模块,该模块具有1个串行通讯口(RS232C或TTY或RS485/422),RS422/485的通讯最大距离位1200m。
支持以下协议ASCII,ModbusRTU远程终端,Data Highway(DF1协议),电气接口为15针D型孔接头。
可以使用这种通讯模块实现S7300/400与其它串行通讯设备的数据交换。
例如打印机、扫描仪、仪表、Modbus主从站、Data Highway站、变频器。
USS站等CP 341 自身通过其串行接口处理与通讯伙伴的数据传输。
为此,CP 341 配有三种不同的驱动程序。
下面就CP341Modbus通信的概念、硬件接线、配置、编程和调试等做介绍CP 341-RS 422/485 的 X27 (RS 422/485) 接口X27 (RS 422/485) 接口是一种符合 X27 标准、用于串行数据传输的差分电压接口通讯处理器有两种进行双向数据通讯的操作模式:半双工模式、全双工模式数据在 CP 341 和通讯伙伴之间通过串行接口以字符帧的形式传输。
Modbus协议是应用于电子控制器上的一种通用语言。
通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
它已经成为一种通用工业标准,有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。
它描述了一控制器请求访问其它设备的过程。
如回应来自其它设备的请求,以及怎样侦测错误并记录等。
它制定了消息域格式和内容的公共格式。
MODBUS为单主站网络协议,所以系统中只能够有一个Modbus主站,所有通信都由它发出并且只能够实现主站和从站的数据交换,从站之间不能进行数据交换。
Modbus 是公开通信协议,其具有两种串行传输模式,ASCII 和 RTU。
它们定义了数据如何打包、解码的不同方式。
通信双方必须同时支持上述模式中的一种,通常支持 Modbus通信的设备大都支持 RTU 格式。
Modbus 通信标准协议可以通过各种传输方式传播,如RS232C、RS485、光纤、无线电等。
在 S7-200 CPU 通信口上实现的是 RS485 半双工通信,使用的是 S7-200 的自由口功能。
Modbus 是一种单主站的主/从通信模式。
Modbus 网络上只能有一个主站存在,主站在Modbus 网络上没有地址,从站的地址范围为 0 - 247,其中 0 为广播地址,从站的实际地址范围为 1 - 247。
在现场应用中 CP341 往往都作为 Modbus 主站来读取第三方设备的数据,CP341模块可以同时与多台串行通讯设备进行通讯。
如同时连接多个变频器、连接多个智能仪表等。
如果采用RS422/485modbus RTU通讯方式,需要在发送的数据包中包括站号、数据区、读写指令等信息。
供CP341模块所连接的从站设备鉴别数据包是发给哪个站的。
以及该数据包是对那个数据区进行的读或写的功能。
在您的计算机上首先安装STEP75.x软件和CP341模板所带的软件驱动程序模板驱动程序包括了对CP341进行参数化的窗口(在STEP7的硬件组态界面下可以打开)、用于串行通讯的FB程序块。
当系统上电,CP341模板初始化完成后,CP341上的SF灯点亮:在硬件组态窗口中双击CP341模板,打开CP341模板的属性窗口,选择通讯协议modbus,网络工作方式设置为半双工,请记录下模板的硬件地址以便在编程序时用到。
双击CP341模板属性窗口中的protocol协议图标进行协议参数设置,这里我们使用默认值:96oo bit,s,8data bits,1stop bit,even parity。
对的硬件组态存盘编译,下载硬件组态.如果此时sF灯亮.请将通讯电缆与另一个通讯伙伴进行连接后.SF灯熄灭,说明硬件组态正确自动化各个厂家在工业控制通信方面都有各自的通信协议及方式。
西门子控制产品中通信主要有MPI,Profibus,Ethernet.在现场应用中往往需要两个厂家的控制进行通信交换数据。
Modbus通信时常用的一种。
下面就以CP341作为Modbus 作为主站,S7-200作为Modbus作为从站调试 CP 341要调试通讯处理器,需要按给定顺序执行以下操作:1. 安装 CP 3412. 组态 CP 3413. 为 CP 341 分配参数4. 保存参数数据5. 创建 CP 341 用户程序1 安装 CP 341安装 CP 341 包括将其集成到可编程控制器的安装导轨(机架)中2 组态 CP 341CP 341 的组态涉及其在组态表中的布局。
可以使用 STEP 7 软件组态 CP 341。
3 为 CP 341 分配参数CP 341 的参数分配涉及协议的特定参数的创建和用于打印输出的消息文本组态。
通过使用 CP 341:点对点通讯,参数分配参数分配界面来执行 CP 341 的参数分配。
4 保存参数数据CP 341 的参数分配数据存储涉及保存参数,将参数装载到 CPU 以及将参数传送到通讯处理器。
使用 STEP 7 软件存储参数分配数据。
5 为 CP 341 创建一个用户程序CP 341 的编程涉及使用 STEP 7 用户程序到相关联的 CPU 的 CP 341 的编程接口。
使用 STEP 7 软件的语言编辑器对 CP 341 进行编程。
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总线上的所有从站被动的接收到主站的广播包.然后解开这个广播包把这个包中的从站地址与自己的地址对照.如果地址相同.该从站马上把自己相应寄存器中的数据发送到总线上去:主站中的接收程序始终处于待命状态.等待总线上从站发送来的响应数据包,并把响应包中的数据序列化到自己的接收数据块中。
从站检测到包中的从站地址与自己的地址不符时,则直接销毁该包.就不做任何响应。
到此完成一个发送接收数据的过程。
程序编写(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。
随着仪表自动化技术的提高,带各种通讯接口设备和现场总线设备将被大量应用到工业现场领域,使全数字化、串行、双向、互操作多快好省的远距离大数据量通讯成为可能.为数据监控和管理中心监控现场数据及现场设备工作状态和分析挖掘数据关系提供了方便。
Modibus RTU通讯是现场总线实现的一个简单例证,成功的解决了现场仪表数据和PLC通讯问题,节省了因标准仪表信号布线所需的大量电缆,并且可靠性得到了大幅度提高。
是我们今后现场信号采集通讯值得借鉴的一个典型代表。