n
问题1:SIMATIC S7系列有哪些用于串行通信的模块?
解答:在SIMATIC S7系列产品中包括多种不同等级、不同功能、适合不同应用场合的串行通信模块,主要的串行通信模块及模块特性如下表:n
通信模块 | S7-200 | S7-1200 | S7-300 | ||
CPU集成接口 | CM1241 | CPU31x-2PtP | CP340 | CP341 | |
有效接口 | RS485 | RS232C | RS422/485 | RS 232C | RS 232C |
类型 | RS485 | 20 mA-TTY | 20 mA-TTY | ||
RS 422/485 | RS 422/485 | ||||
传输速率 | 1200 bit/s ~ | 300 bit/s ~ | 300 bit/s ~ | 2400 bit/s ~ | 300 bit/s ~ |
115.2 kbit/s | 115.2 kbit/s | 38.4 kbit/s | 19.2 kbit/s | 115.2 kbit/s | |
支持的通信协议 | 自由协议, | ASCII, USS, | ASCII, 3964(R), | ASCII, 3964(R), Printer | ASCII, 3964(R), |
MODBUS RTU | MODBUS RTU | RK512 | RK512, Printer, | ||
MODBUS | |||||
通信模块 | S7-400 | ET200S | |||
CP440 | CP441-1 | CP441-2 | ISI 3964/ASCII | ISI | |
MODBUS/USS | |||||
有效接口 | RS422/485 | RS 232C | RS 232C | RS 232C | RS 232C |
20 mA-TTY | 20 mA-TTY | RS 422/485 | RS 422/485 | ||
RS 422/485 | RS 422/485 | ||||
传输速率 | 300 bit/s ~ | 300 bit/s ~ | 300 bit/s ~ | 110 bit/s ~ | 110 bit/s ~ |
115.2 kbit/s | 38.4kbit/s | 115.2 kbit/s | 115.2 kbit/s | 115.2 kbit/s | |
支持的通信协议 | ASCII, 3964(R), | ASCII, 3964(R), | ASCII, 3964(R), | ASCII, 3964(R), | MODBUS RTU, USS |
RK512, Printer | RK512, Printer | ||||
MODBUS |
表1 SIMATIC S7系列串行通信模块列表n
问题2:SIMATIC S7系列串行通信模块的订货信息?
解答:下表给出了目前最新产品的订货信息,仅供参考,订货时请以相关产品手册或供货商提供信息为准。n
产品名称 | 订货号 | 备注 |
通信模块 | ||
S7-200 CPU | 参考S7-200样本或手册 | S7-200 |
CM 1241-RS232 | 6ES7 241-1AH30-0XB0 | S7-1200 |
CM 1241-RS485 | 6ES7 241-1CH30-0XB0 | |
CPU313C-2PtP | 6ES7 313-6BF03-0AB0 | S7-300 CPU |
CPU314C-2PtP | 6ES7 314-6BG03-0AB0 | |
CP340-RS232C | 6ES7 340-1AH02-0AE0 | S7-300 CP |
CP340-20mA-TTY | 6ES7 340-1BH02-0AE0 | |
CP340-RS422/485 | 6ES7 340-1CH02-0AE0 | |
CP341-RS232C | 6ES7 341-1AH02-0AE0 | |
CP341-20mA-TTY | 6ES7 341-1BH02-0AE0 | |
CP341-RS422/485 | 6ES7 341-1CH02-0AE0 | |
CP440 | 6ES7 440-1CS00-0YE0 | S7-400 |
CP441-1 | 6ES7 441-1AA04-0AE0 | |
CP441-2 | 6ES7 441-2AA04-0AE0 | |
CP441-2 RS232C接口子模块 | 6ES7 963-1AA00-0AA0 | |
CP441-2 20mA TTY接口子模块 | 6ES7 963-2AA00-0AA0 | |
CP441-2 RS422/485接口子模块 | 6ES7 963-3AA00-0AA0 | |
ET200S ISI 3964/ASCII | 6ES7 138-4DF01-0AB0 | ET200S |
ET200S ISI MODBUS/USS | 6ES7 138-4DF11-0AB0 | |
连接电缆 | ||
RS232C 接口 5m | 6ES7 902-1AB00-0AA0 | 9针D型孔接头 |
RS232C 接口 10m | 6ES7 902-1AC00-0AA0 | |
RS232C 接口 15m | 6ES7 902-1AD00-0AA0 | |
20mA-TTY 接口 5m | 6ES7 902-2AB00-0AA0 | 9针D型针接头 |
20mA-TTY 接口 10m | 6ES7 902-2AC00-0AA0 | |
20mA-TTY 接口 50m | 6ES7 902-2AG00-0AA0 | |
RS422/485 接口 5m | 6ES7 902-3AB00-0AA0 | 15针D型针接头 |
RS422/485 接口 10m | 6ES7 902-3AC00-0AA0 | |
RS422/485 接口 50m | 6ES7 902-3AG00-0AA0 | |
加载驱动协议 | ||
MODBUS 主站硬件狗Dongle | 6ES7 870-1AA01-0YA0 | 包括软件、手册光盘 |
MODBUS 主站硬件狗Dongle | 6ES7 870-1AA01-0YA1 | 不包括软件、手册光盘 |
MODBUS 从站硬件狗Dongle | 6ES7 870-1AB01-0YA0 | 包括软件、手册光盘 |
MODBUS 从站硬件狗Dongle | 6ES7 870-1AB01-0YA1 | 不包括软件、手册光盘 |
表2 SIMATIC S7系列串行通信模块订货信息n
问题3:在哪里可以找到串行通信模块的手册和相关文档?
解答:您可通过以下步骤获取您所需的文档:
-请登陆网站:http://www.ad.siemens.com.cn/Service/
-在页面左侧列表中点击链接:产品支持
-在新窗口右上角的搜索栏中输入“<关键字>”,并搜索
-搜索结束后在窗口右侧列表中点击“只搜索手册/操作指南、只搜索证书、只搜索证
书、只搜索FAQ常问问题只搜索更新信息”
-最后列表中名为“<文档名称>”的条目即为您所需的文档。
常用文档的下载链接如下,您可以直接登陆如下网址下载相关资料:
S7-200可编程控制器系统手册:1109582
SIMATIC S7-300 CPU 31xC 和 CPU 31x:技术规格:12996906
CP340 使用手册:1137332
CP341使用手册:1117397
CP440使用手册:2042641
CP441使用手册:1137419
ET200S串行接口模块手册:9260793
MODBUS RTU主站手册:1220184
MODBUS RTU从站手册:1218007
CP 340 PtP 打印功能手册:16527390
CP341 Loadable Modbus ASCII driver (Master)
25362836
Manual for CP341 Loadable Modbus ASCII Slave Driver
25380100
SIMATIC Data Highway (DF1) 参考手册 :1218110
关于西门子串行通信应用的文档可以参考相关产品手册,或登录下载中心网站http://www.ad.siemens.com.cn/download/ , 搜索下载如下文档:n
文档编号 | 文档中文标题 |
A0081 | CP340/341/440/441通讯及编程 |
A0336 | CP341 MODBUS RTU多站点轮询 |
A0384 | S7-300 CP341作主S7-200作从的MODBUS通信 |
A0123 | ET200S MODBUS/USS 模板使用指南 |
A0413 | 如何通过MODBUS协议实现 S7-1200与S7-200通讯 |
A0440 | CP340 CP341基于ASCII驱动协议的多站点轮询 |
表3串行通信应用文档列表n
问题4:在哪里可以找到串行通信模块的驱动软件包?
解答:常用的驱动软件下载链接如下,您可以直接登陆如下网址下载相关软件:
PTP协议软件包:SIMATIC S7-CP PtP Param V5.1+SP11下载链接:27013524
MODBUS主站驱动:27774018
MODBUS从站驱动:27774276
MODBUS ASCII驱动:25356060
ET200S 1SI 串行接口模块的功能块、样例和用户手册:
25358470
可装载驱动CP PtP Data Highway DF1 V1.0.1:
8715118
问题5:RS232C、RS422和RS485通信接口的属性和特点?
解答:RS232C与RS422/485都是用于串行数据传输的电压接口。相对于RS232C接口标准,RS422/485接口标准采用差分传输模式,具有传输速率更高、传输距离更远,抗干扰能力更强以及支持多站点连接的能力。下表给出了这几种通信接口标准的性能对比:n
接口标准 | RS232C | RS422 | RS485 | |
工作方式 | 单端 | 差分 | 差分 | |
网络节点数 | 1发1收 | 1发9收 | 1发31收 | |
最大通信距离 | 15m | 1200m | 1200m | |
最大通信速率 | 19.2Kbps | 10Mbps | 12Mbps | |
最大驱动输出电压范围 | ±25V | -0.25V~+6V | -7V~+12V | |
驱动器负载阻抗 | 3KΩ~7KΩ | 100Ω | 54Ω | |
驱动器共模电压 | -3V~+3V | -1V~+3V | ||
驱动器输出 | 负载最小值 | ±5V~±15V | ±2.0V | ±1.5V |
信号电平 | 空载最大值 | ±25V | ±6V | ±6V |
接收器输入电压范围 | ±15V | -10V~+10V | -7V~+12V | |
接收器输入电压门限 | ±3V | ±200mV | ±200mV | |
接收器输入电阻 | 3KΩ~7KΩ | 4KΩ(最小) | ≥12KΩ | |
接收器共模电压 | -7V~+7V | -7V~+12V |
表4串行通信接口性能比较n
问题6:RS232C接口都有什么针脚及针脚定义 ?
解答:RS232C接口针脚定义如下:n
9针串口(DB9) | 25针串口(DB25) | ||||
针脚 | 标识 | 含义 | 针脚 | 标识 | 含义 |
1 | DCD | 数据载波检测 | 8 | DCD | 数据载波检测 |
2 | RXD | 接收数据 | 3 | RXD | 接收数据 |
3 | TXD | 发送数据 | 2 | TXD | 发送数据 |
4 | DTR | 数据终端准备好 | 20 | DTR | 数据终端准备好 |
5 | GND | 信号地 | 7 | GND | 信号地 |
6 | DSR | 数据设备准备好 | 6 | DSR | 数据设备准备好 |
7 | RTS | 请求发送 | 4 | RTS | 请求发送 |
8 | CTS | 清除发送 | 5 | CTS | 清除发送 |
9 | RI | 振铃指示 | 22 | RI | 振铃指示 |
表5 RS232C接口阵脚定义n
问题7:各种通信接口的设备连接时需要注意哪些?
解答:详细的电缆连接请参考相关产品的手册。在实际的电缆连线过程中,请特别注意以下几个方面内容:
1、接口管脚定义参考相关产品手册,严格按照手册及相关说明进行接线;
2、在通信距离可以满足要求的情况下,建议选择西门子提供的标准电缆或选购手册上标注的指定类型的电缆(LIYCY);
2、如果你使用自己制作的电缆,那么必须使用带屏蔽外壳的D型接头,屏蔽线应当和接头的外壳连接,禁止将电缆的屏蔽层和GND连接,否则会造成通讯接口的损坏;
3、请注意RS232C接口不支持带电热插拔,所以一定要断电后再插拔通讯电缆,以免损坏接口;
4、在使用RS422/485接口时,如果电缆长度超过50m,则必须在接收方焊接一个约330欧姆的终端电阻,以保证正常的数据传输;
5、不同接口类型的设备互联时,要先通过转换器转换为相同类型的接口再进行连接。可以选用第三方厂家的转换器产品;
6、在使用RS422/485接口时,如果通讯距离超过允许的范围时,可以选购中继器扩展网络距离,但不能将西门子公司的RS485中继器(6ES7972-0AA01-0XA0)用于串行通信中。
关于串行通信模块组件连接和配线的说明还可以参考如下链接内容:23411751
问题8:CP340与CP341有哪些区别?
解答:CP340是用于串行通信的经济型产品,可以满足简单的点对点通信需求。CP341相对于CP340功能更强大,另外可以加载用户通信协议,例如MODBUS RTU的通信协议。下表给出了它们的主要区别:n
通信模块 | CP340 | CP341 |
定货号 | 6ES7 340-1xH02-0AE0 | 6ES7 341-1xH02-0AE0 |
供电 | 背板供电 | 外部 24V DC |
支持波特率 | Max. 19.2Kbps | Max. 115.2Kbps |
支持协议 | ASCII,3964(R),Printer | ASCII,3964(R),RK512,Printer、 |
MODBUS, Others | ||
电流消耗 | 220mA | 70mA |
通信缓冲区 | 1024bytes | 4096bytes |
消息帧长度 | 1~1024bytes | 1~4096bytes |
通信功能块 | FB2 P_RCV | FB7 P_RCV_RK |
FB3 P_SEND | FB8 P_SEND_RK | |
FB4 P_PRINT | FB13 P_PRT341 | |
FB12 P_RESET | FC5/6 V24V_STAT/SET | |
FC5/6 V24V_STAT/SET | ||
隔离 | 与S7 内部电源隔离 | 与 S7 内部电源和 |
外部 24 VDC 电源隔离 |
表6 CP340与CP341的区别n
问题9:CP441-1和CP441-2的区别在哪里?
解答:CP441-1和CP441-2的主要区别如下表所示:n
功能 | CP 441-1 | CP 441-2 |
接口个数 | 1 | 2 |
最高波特率 | 38400bps | 115200bps |
RK512 计算机连接 | 不支持 | 支持 |
加载用户驱动 | 不支持 | 支持 |
表7 CP441-1与CP441-2的区别n
问题10: CP441与CP340/CP341的应用中有哪些区别?
解答:除了所属产品系列、应用功能块以及支持的协议等方面存在不同外,CP441与CP340/CP341的主要区别还在于应用CP441建立串行通信时,需要组态一个PtP的连接,连接对象为“Other Station”。即CP441与CPU之间的数据交换是建立在PtP连接的基础上的,而应用CP340/CP341时不需要建立连接,因为CP340/CP341与CPU之间的数据交换是通过串行总线传输的。n
问题11:在一个 S7-300 CPU 上最多可以挂多少个 CP 340模块?
解答:CP 340 与 CP 341 不同,它需要 CPU通过背板总线为其提供工作电压。在 S7-300 CPU 上可集中插入的 CP 340 的数量取决于 CPU 向背板总线提供的电流的大小。S7-300 CPU 为底板总线提供的电流为1.2A,例外的情况是只支持单层配置的 CPU (对于 CPU 312、CPU 312 C 和 CPU 312 IFM,只能提供 800 mA),每个CP 340模块需要从背板总线获取最大 220mA 的电流。因此,除了上面列出的 CPU 之外,在一个S7-300 CPU上最多可以集中插入五个 CP 340模块。n
问题12:为什么在 CP342-5 作为主站的 ET200M 中不可以使用 CP340 或CP341 ?
解答:对于CP340/CP341通讯模块,它们和 CPU 之间的数据交换是通过 SFC58和SFC59进行的,但 CP342-5 不支持作为 PROFIBUS DP 标准主站的这些 SFC,所以不能在CP342-5作为主站的PROFIBUS DP网络中应用CP340/CP341模块。可以在带集成DP接口的 CPU 作为 PROFIBUS DP 主站的EM200M中使用CP340或CP341模块。
更详细的说明请参考如下链接内容:1919343
问题13:CP340/CP341能否挂在IM365的扩展机架上?
解答:可以。与CP343-1、FM等模块不同,CP340/CP341与CPU之间的数据交换是通过串行总线传输的,不需要K总线的支持。n
问题14:两个对象之间进行串行通信,需要满足哪些前提条件?
解答:两个对象之间进行串行通信需要满足如下几个条件:
> 两个对象具有相同的通信接口类型(RS232C、20mA-TTY或RS422/485),接口类型不同时需要进行转换;
> 两个对象设置相同的通信波特率;
> 两个对象组态相同的字符帧格式;
> 两个对象采用相同的通信协议;n
问题15:串行通信的字符帧格式是如何定义的?
解答:数据在通信伙伴之间通过串行接口以数据帧的形式传输,要确保通信伙伴间字符帧格式定义相同。字符帧一般定义为10位或11位的格式,可以在串行通信模块的参数分配界面设置字符帧的格式。字符帧的组成遵循以下规则:
> 帧的第一位必须是起始位,始终为1位;
> 起始位之后是7/8位的数据位,由用户自己定义;
> 数据位之后是1位校验位,可以组态为奇校验、偶校验或无校验;
> 校验位之后是1/2位的停止位;n
问题16:ASCII/3964(R)/RK512/MODBUS/DF1协议有什么属性,各自有什么优点和性能?
解答:请参考如下链接:
ASCII 协议:27072706
3964(R)协议:27073040
RK512协议:27074934
MODBUS协议:27074028
DF1协议:27075136
问题17:ASCII协议接收数据时,怎么选择接收结束标准?
解答:结束标准定义何时接收一个完整的消息帧。使用ASCII驱动协议进行数据传输时,可以选择如下三种结束标准:
> 字符延迟时间结束:字符延迟时间定义两个连续接收到的字符间允许的最大间隔时间,当字符延迟时间结束时识别为消息帧结束。在这种情况下,必须设置字符延迟时间,以确保其在两个连续的消息帧之间结束。 同时该字符延迟时间应该足够长,以确保在消息帧中发生发送暂停时,不会错误地识别消息帧结束。
> 接收文本结束字符:通过判断消息帧的结束字符来确定数据帧的结束。为了准确识别到消息帧的结束,必须确保用户数据中不存在指定的结束字符。如果在接收消息帧时字符延迟时间截止,则接收操作将终止, 同时发出一条错误消息,并删除消息帧片段。
> 接收固定数目的字符:接收数据时,达到参数化字符数目时识别为消息帧结束,如果在达到参数化的字符数目之前字符延迟时间截止,则接收操作将终止,生成一条错误消息并丢弃消息帧碎片。n
图1 ASCII协议组态界面图n
问题18:传输控制功能在串行通信中有什么作用,怎么使用?
解答:串行通信模块的传输控制功能包括RS232C接口的自动伴随控制以及流量控制两大类方式,每种接口所支持的传输控制功能如下表所示:n
功能 | RS232C | 20mA-TTY | RS422 | RS485 |
操作 RS 232C 伴随信号 | 可以 | 不可以 | 不可以 | 不可以 |
RTS/CTS 流量控制 | 可以 | 不可以 | 不可以 | 不可以 |
XON/XOFF 流量控制 | 可以 | 可以 | 可以 | 不可以 |
表8 串行接口的功能n
传输控制功能的作用:
> RS232C自动伴随控制主要用于在通信过程中与通信伙伴的进行握手;
> 流量控制包括软件流量控制和硬件流量控制,通过流量控制可以保证不同处理速度的通信伙伴之间的数据交换不会丢失;
详细的控制功能使用请参考模块手册的相关部分介绍。n
问题19:为什么安装了PtP 驱动程序后不能配置CP340-1CH02 和CP441-2AA04?
解答:可能是因为安装的PtP驱动程序版本太低,应使用最新驱动程序,目前最新驱动程序版本为PtP Param V5.1+SP11,可以登陆如下链接下载:
27013524
问题20:最新版本CP341增加了哪些新功能?
解答:CP341的最新版本订货号为6ES7 341-1xH02-0AE0(定货号中的x为A、B或C),其与老版本模块相比增加了如下新功能:
> 波特率范围扩展至115.2 kbit/s;
> 最大消息帧长度增加到4096个字节;
> 增加打印机驱动程序;
> 增加标识数据(I&M)功能;
> RK512协议的响应消息帧的波特率可根据等待时间调整;
> 在接收FB上可调整扩展的错误显示;n
问题21:怎么更新 CP340/CP341 的固件版本?
解答:可以将固件更新下载到 CP340/CP341 的操作系统存储器中,以便扩展其功能以及进行错误处理,详细的更新方法请参考CP340/CP341的手册。这里需要说明的是对于 V1 版本(6ES7 340/1-1xH01-0AE0)的CP340/CP341,固件更新操作在参数分配界面的菜单中进行;对于V2版本(6ES7 340/1-1xH02-0AE0)的CP340/CP341,固件更新操作在硬件组态窗口的菜单中进行。说明:定货号中的x为A、B或C。
问题22:CP340/CP341通信模块的接收缓冲区大小, 最多可以缓存多少数据?
解答:CP340/CP341模块都有一个环型的缓冲区,最新版本的CP340、CP341接收缓冲区的大小分别为1024个字节和4096个字节,每一帧数据量大小取决于通信模块的接收缓冲区的大小。但最大可以缓存的数据量由缓冲区大小和缓冲帧数目两个方面因素共同决定。例如,CP340,当设置缓冲帧数目为10时,如果每帧数据10bytes时,则最多可以缓冲100bytes(受可缓冲帧数10帧的限制);如果每帧数据500bytes,则最多可以缓冲2帧数据(受1KB缓冲区的限制)。
另外,如果您只想要将收到的最新一帧数据发送到 CPU,则可以为缓冲的帧数分配值“1” ,并取消激活覆盖保护。n
图2 接收缓冲区的参数设置n
问题23:在CP340/CP341的诊断缓冲区中怎么显示诊断信息条目的时钟信息?
解答:CP340不支持显示时钟功能,CP341支持,需要组态CPU为主时钟。另外,CP341在分布式系统中(ET200M)不支持显示时钟功能。n
图3 CP341诊断缓冲区时钟功能n
问题24:有哪些用于串行通信功能块?
解答:用于串行通信的功能块如下表所示:n
通信模块 | 发送块 | 接收块 | 流量控制及辅助信号控制块 |
CPU31x-2PtP | SFB60 | SFB61 | |
CP340 | FB3(P_SEND) | FB2(P_RCV) | FC5(V24_STAT)、FC6(V24_SET) |
CP341 | FB8(P_SND_RK) | FB7(P_RCV_RK) | FC5(V24_STAT)、FC6(V24_SET) |
CP440 | FB10(SEND_440) | FB9(RECV_440) | |
CP441-1/2 | SFB12(BSEND) | SFB13(BRCV) | FB5(V24_STAT)、FB6(V24_SET) |
ET200S ISI | FB3(S_SEND) | FB2(S_RCV) | FB4、FB5、FB6、FB7、FB8 |
表9 串行通信功能块n
问题25:CP340/CP341通信功能块使用时需要注意哪些?
解答:通信功能块用于建立CPU由于CP之间数据交换,使用时需要注意以下几个方面:
> 对同一个CP340/CP341模块在程序中不能多次调用发送或接收功能块;
> 发送块由沿触发使能,接收块由高电平使能;
> 发送数据长度由参数LEN决定,接收数据长度由发送方决定,可以通过LEN读出;
> 发送块故障状态取决于DONE、ERROR、STATUS,只在一个扫描周期内有效;
> 接收块故障状态取决于NDR、ERROR、STATUS,只在一个扫描周期内有效;n
问题26:可以通过哪些方法诊断通信模块?
解答:可以通过以下方法诊断通信模块的故障:
> 通过通信模块的显示元件(LED指示灯),包括SF、TXD、RXD等;
> 通过通信功能块的STATUS输出进行诊断,功能块返回信息会给出作业执行过程中的错误信息;
> 通过通信模块的诊断缓冲区进行诊断,相关的事件都会记录到诊断缓冲区中
> 通过诊断报警进行诊断,可以设置诊断中断并读取诊断信息;
详细的诊断方法请参考相关模块的手册。n
问题27:CP341的SF灯亮说明什么?
解答:组错误显示 SF 始终会在通电后亮起,在初始化后熄灭。 如果已为 CP 341 生成了组态数据,则 SF LED 会在重新分配参数期间再次短暂亮起。无论发生以下哪种情况,组错误显示 SF 都将亮起:
> 硬件故障;
> 固件错误;
> 参数分配出错或者不存在参数分配;
> 断路(CP 341 和通讯伙伴之间的接收电缆断开);n
问题28:为什么使用RS485通讯不正常,有哪些原因?
解答:在RS485网络的通信中出现通信故障时,可能存在很多方面的原因,可以按照下面思路进行分析:
> 通讯电缆连接不正确
正确的电缆连接是完成通信的基础,实际的应用中要确保接线的正确。
西门子串行通信模块在组态为RS485接口通讯时,只需接15针D型接头的4 和11管脚,不需要短接2和4管脚及9和11管脚。当实际的通信电缆长度大于50米时,要在总线的两端加阻值为330欧姆的终端电阻。
确保A、B信号线的正确连接。如果通讯电缆的A、B线接反了,将导致0和1的信号是反的,颠倒A、B线。
> 第三方设备的使用问题
当网络中使用了第三方设备,例如RS232/485转换器时,问题可能出在转换器上,或者转换器的接线不对,按照电缆连接图仔细检查,或更换转换器测试。
> 编程问题
在确保硬件连接没有问题的情况下,要检查程序是否有问题,包括通信参数的设置,通信功能块的使用,轮询程序等。可以通过功能块的返回信息判断错误原因,例如波特率设置错误,接收的缓冲区溢出,接收数据块设置过小,发送的数据长度为0等等。
> 通信模板硬件故障
可以通过更换通信模板的方式测试。
> 干扰问题
由于实际的现场环境比较复杂,不可避免地存在干扰问题,所以应该在项目规划过程和安装过程中给予充分的考虑,尽量按照相关的规范进行安装、布线,并做好接地等。n
问题29:在使用CP340/CP341进行通信时,怎么判断接线是否正确?
解答:在使用CP340/CP341与串行通讯时,常常读不出数据,可能是程序原因或接线问题。如果能够判断接线没问题,那么就可以集中精力在程序上查找原因,因此判定接线是否接好显得非常重要。有一个小方法可以测出,建立CP340/CP341与PC的串口连接,采用ASCII协议在PLC侧发送数据到PC机。在PC侧修改串口参数与PLC一致(如波特率、数据长度、停止位、奇偶校验、握手信号等),在Windows下附件中打开“Hyper Terminal”建立一个直接到串口的连接,如果连接电缆是好的就可以接收到从PLC侧发送过来的数据,否则将不能接收到数据,这样也就可以简单地判断接线是否有问题了。n
问题30:可以采取哪些措施保证接收缓冲区不溢出?
解答:当数据发送方发送数据的速度比接收方接收数据的速度快或接收方处理速度不够快时,可能会导致因接收方缓冲区溢出而造成的通信错误,可以考虑采取如下措施解决:
> 提高接收方的接收速度和处理速度;
> 采用硬件或软件握手功能进行流量控制,在将要发生数据溢出时暂停数据发送;
> 取消接收缓冲区“禁制覆盖”功能,只接收最新一帧数据;n
问题31:如何接收较大长度数据帧(大于接收缓冲区)的数据?
解答:在使用串行通讯模块时,允许接收的最大数据帧长度由接收缓冲区大小决定(例如,CP340为1KB,CP341为4KB),那么当通信伙伴发送的一帧数据长度超过接收缓冲区允许的最大值时,超出部分数据将覆盖先接收到的数据,造成接收数据不完整的现象。针对这种情况,可以考虑选择指定消息帧长度为结束标准,通过将待接收数据分组的方法来分次接收。例如,对于CP340,要接收数据长度为1600个字节的数据帧(超过接收缓冲区1024个字节的限制),可以设置消息帧长度为结束标准,并指定数据帧长度为800个字节,那么当接收到两次数据时即为一个完整的数据帧。实际的程序处理时,可以通过判断接收功能块的NDR位来确定一个作业的完成。n
问题32:MODBUS RTU与MODBUS ASCII的区别?
解答:MODBUS RTU和MODBUS ASCII是MODBUS通信协议在串行通信线上的两种传输模式。
> MODBUS ASCII模式:以“:”号(3AH)表示信息开始,以回车换行符“CR-LF”(OD和OAH) 表示信息结束,使用 LRC (纵向冗余校验) 进行差错校验。当控制器以ASCII模式在MODBUS总线上进行通讯时,一个信息中的每8位字节是作为2个ASCII字符传输的,这种模式的主要优点是允许字符之间的时间间隔长达1秒,也不会出现错误。
> MODBUS RTU模式:信息开始至少需要有 3.5 个字符的静止时间,发送完最后一个字符号后,也有一个 3.5 个字符的静止时间,然后才能发送一个新的信息,使用 CRC (循环冗余校验) 进行差错校验。当控制器以RTU模式在MODBUS总线上进行通讯时,信息中的每8位字节分成2个4位16进制的字符,该模式的主要优点是在相同波特率下其传输的字符的密度高于ASCII模式,每个信息必须连续传输。n
问题33:S7-300作MODBUS RTU通信时,需要选择哪些硬件和软件?
解答:S7-300系统作MODBUS RTU通讯时要选择支持MODBUS协议的CP341通信模块,CP341支持MODBUS RTU的主站和从站通信功能。不能选择CP340通信模块,因为CP340模块不能加载用户驱动程序,只支持ASCII和3964(R)协议的通信。另外,当CP341作MODBUS通信时,还需要选购硬件狗(Dongle)和安装MODBUS RTU驱动软件包。详细的软硬件配置如下:
> 硬件:CP341,Dongle(分为主站Dongle和从站Dongle);
> 软件:PTP协议软件包PtP Param V5.1,MODBUS RTU主站或从站协议驱动包,这些软件可以网站下载,下载链接参见问题4。n
问题34:什么时候需要下载MODBUS RTU装载协议?
解答:在下列几种情况下需要下载MODBUS RTU装载协议:
> 首次使用MODBUS RTU协议驱动时;
> ASCII(或3964、RK512)协议转换为MODBUS通信协议时;
> MODBUS 主从协议转换时;
说明:装载MODBUS RTU协议驱动时,CPU开关必须在STOP位置。协议驱动只需要下载一次,在修改通信参数时不需再次下载。n
问题35:CP341/CP441-2的加载驱动程序存储在哪里?
解答:当使用 CP 341 时,将可加载驱动程序直接装载到 CP 341中,因此 S7-300 CPU 上的装载存储器不是必需的, 但是应注意,在没有编程设备的情况下将不能更换模块。使用 CP 441-2 时,将可加载驱动程序装载到 CPU 的装载存储器中,并在 CPU 启动时传送到 CP 的存储器中,因此,CPU 必须有足够的装载存储器空间。n
问题36:如何给在S7-400H系统中的CP341装载MODBUS驱动程序?
解答:请参考如下链接内容:17854293
问题37:CP341-RS485作MODBUS主站时,可以连接多少个从站设备?
解答:当CP341-RS485作MODBUS主站时,可以直接创建一个多点连接的网络,在一个RS485网络中最多可以连接32个从站设备。CP341的MODBUS驱动程序将会使接收的二 线制线路在发送和接收之间切换。n
问题38:怎么构建一个RS422/485的多点网络?
解答:多点网络接线图如下:n
图3 RS422多点接线图n
图4 RS485多点接线图n
问题39:如何计算MODBUS地址?
解答:MODBUS主站请参见MODBUS Master手册 “1.3 Summary of the GOULD-MODBUS Protocol”部分的说明。MODBUS Master手册下载链接:
1220184
MODBUS从站请参见MODBUS Slave手册第8章“8 Function Codes”部分的说明,对应每一种功能码都有相应的地址计算说明。MODBUS Slave手册下载链接:
1218007
问题40: CP341/CP441-2作MODBUS通信时的功能码与地址对应关系?
解答:如下表所示:n
功能码 | 功能 | CPU地址 | Modbus地址 | 长度范围 |
1 | 读取线圈状态 | M、Q、T、C | 00001-09999 | 1~2024bits |
2 | 读取输入状态 | M、I | 10001-19999 | 1~2024bits |
3 | 读取保持寄存器 | DB | 40001-49999 | 1~127words |
4 | 读取输入寄存器 | DB | 30001-39999 | 1~127words |
5 | 写单个线圈 | M、Q | 00001-09999 | 1bit |
6 | 预设单个寄存器 | DB | 40001-49999 | 1word |
15 | 写多个线圈 | M、Q | 00001-09999 | 1~2024bits |
16 | 预设多个保持 | DB | 40001-49999 | 1~127words |
寄存器 |
表10 MODBUS功能码与地址对应关系n
问题41:CP341/CP441作MODBUS主站通信的传输时间怎么计算?
解答:在作MODBUS通信时,整个处理周期包括以下几个部分:
> 主站上的处理时间(从在用户程序中初始化作业开始算起)
> 作业通过串口传送到伙伴所需的时间
> 在从站上进行处理使用的时间
> 在串口上传送确认所需的时间
必须将以上四个部分加在一起,才能计算出整个传输所需要的时间。应用CP341/CP441作主站时的典型传输时间可以参考MODBUS RTU主站手册。如果使用其他主站或从站(作为伙伴设备),则必须使用所使用的主站或从站的相应时间。n
问题42:CP341的FB8(P_SND_RK)功能块DONE位什么时候为“1”?
解答:CP341的FB8(P_SND_RK)功能块的DONE位为“1”表示发送请求已经完成且没有错误,即当:
> 使用 ASCII 驱动程序时: 已向通讯伙伴发送了请求, 不确保所有数据均已被通讯伙伴接收到;
> 使用 3964(R) 程序时: 已向通讯伙伴发送数据并已返回肯定确认, 不确保数据也被传递到伙伴 CPU;
> 使用 RK 512 计算机链接时: 已向通讯伙伴发送请求,该操作已将请求转发给伙伴CPU 且没有错误;n
问题43:MODBUS RTU 主站FC01、FC02功能的数据处理应注意什么?
解答:MODBUS RTU主站的FC01、FC02功能收到的第1个字节被存放到第1个字的高字节(低地址)中,收到的第2个字节被存放到低字节(高地址)里,数据接收后需进行高低字节交换。若读到的数据少于9位或只读到1个高字节,剩余的最后一个字的低字节用00H填补。n
问题44:CP341/CP441-2作MODBUS RTU从站,FC05,FC15多次对输出线圈进行强制操作会出现无法执行的情况,如何处理?
解答:每次 CPU 冷启动或暖启动之后,必须执行 MODBUS 通讯 FB 的初始化,如果初始化完成时发生错误,则不能进行 MODBUS 通讯。在出现上述问题时,可能是因为MODBUS的从站功能块FB80初始化没有完成或初始化不成功。对于CP341必须在OB100对FB80的“CP_START”管脚作初始化置位操作;对于CP441-2必须在OB100/101对FB180的“CP_START”管脚作初始化置位操作,“CP_START_FM”做复位操作。n
问题45:CP341 作MODBUS从站,当跨S7地址区访问时会怎样?
解答:CP341作为MODBUS的从站时,如果在组态FC01、FC05、FC15功能码时,MODBUS映射的S7地址区域包含了M、Q、T、C等多个区域,那么在实际地址访问的时候,如果出现跨地址区的访问(即访问地址包含了两个区域时),主站会出现读取错误,内容为地址无效。n
问题46:CP441-2 作MODBUS RTU 主站,采用B_SEND/B_RCV与CPU进行数据传送时需注意些什么?
解答:注意以下几方面内容:
> 通讯连接ID,在PtP连接属性中的定义,范围16#1000~16#1400;
> BSEND的R_ID号范围0~255,在读取数据时,BRCV的R_ID必须与BSEND一样;
> BSEN的SD_1的长度由功能码决定;n
问题47:实现多个站轮询通信的原理和编程思路?
解答:在实际的应用中,可以将多个节点连接到一个RS422/485网络中,这时就需要通过程序控制的方式实现站点间的数据交换,这里称之为站点间的轮询通信。多站点轮询通信主要以站地址标识(站地址)为基础,系统主站发送带有站地址标识的数据来寻址不同的从站,同时不同的从站通过响应带有站地址标识的数据给主站,以完成整个通信过程。这就要求整个RS422/485网络中站点的地址不能相同,且必须唯一。
对于轮询通信,可以根据不同的网络规模、不同的通信对象及通信需求等,采用有针对性的轮询方法,在程序的实现上也不尽相同,这里仅给出两种主要的编程思路,供应用时参考。
> 思路一:以固定的时间间隔进行轮询,即以固定的时间发送指令给不同的从站并处理每个从站的响应。例如每1秒钟轮询一个从站,需要更改的只是发送的数据,在大多数情况下只需修改数据中的从站地址。对于接收到数据的处理,可以根据具体的用户要求进行。
> 思路二:根据发送和接收完成的标志来完成,即发送完成后启动接收,接收完成后再启动下一次发送。同样需要更改的只是发送的数据,在大多数情况下只需修改数据中的从站地址。对于接收到数据的处理,可以根据具体的用户要求进行。
问题48:如何实现ASCII协议的多站点轮询?
解答:关于ASCII协议的多站点轮询请参考下载中心应用文档“A0440 CP340 CP341基于ASCII驱动协议的多站点轮询”,下载链接如下:
73157734
问题49:如何实现MODBUS RTU的多站点轮询?
解答:关于MODBUS RTU的多站点轮询请参考下载中心应用文档“A0336 CP341 MODBUS RTU多站点轮询”,下载链接如下:
73191929
问题50:在组态ET200S 1SI接口模块时,每种通信协议包括3个不同字节数的版本供选择,它们有什么区别?
解答:在组态ET200S 1SI接口模块时,每种通信协议(ASCII, 3964, MODBUS, USS)都有3个不同字节数的版本供选择,例如ASCII(4B)、ASCII(8B)、ASCII(32B)。相对于4字节的数据传输,8字节或32字节的数据传输可增大数据吞吐率,但是会占用ET200S机架上更多的I/O存储器。相反4字节的数据传输需要的ET200S机架上的I/O存储器较少,但提供的数据吞吐率较低。实际应用时,可以根据要求综合考虑后选择适合您的模块类型。
关键词
串行通信,常见问题,PtP,ASCII,MODBUS
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc328384.html