串口通讯之ET200S 1SI模块进行ASCII通讯

n

1. 概述
串口模块ET200S 1SI(订货号:6ES7 138-4DF01-0AB0)是一款用于ET200S上的串口模块,支持两种软件协议(ASCII和3964(R)),通过接线区分可支持三种硬件接口(RS232C、RS422和RS485)。
在Step 7硬件组态中选择模块时,硬件目录中有以下六种版本的模块:
• ASCII (4B)
• ASCII(8B)
• ASCII(32B)
• 3964(R) (4B)
• 3964(R) (8B)
• 3964(R) (32B)
4/8/32字节代表数据传输的吞吐率大小,字节数越大,吞吐率越大,即数据传输越快,但是在ET200S机架上占用的I/O存储区也越多,如果从传输速率考虑,选择32B最快,如果从占用的I/O区最小考虑,选择4B占用最少,根据具体应用要求选择。
模块信息及指示灯含义,如下图1所示。n

串口通讯之ET200S 1SI模块进行ASCII通讯
图1 模块指示灯含义n

RS232C、RS422和RS485三种接口通讯的终端模块端子分配和电缆连接,如下图2/3/4所示。n

串口通讯之ET200S 1SI模块进行ASCII通讯
图2-1 RS232C接口终端模块端子分配n

串口通讯之ET200S 1SI模块进行ASCII通讯

图2-2 RS232C接口终端模块电缆连接n

串口通讯之ET200S 1SI模块进行ASCII通讯
图3-1 RS422接口终端模块端子分配n

串口通讯之ET200S 1SI模块进行ASCII通讯

图3-2 RS422接口终端模块电缆连接n

串口通讯之ET200S 1SI模块进行ASCII通讯
图4-1 RS485接口终端模块端子分配n

串口通讯之ET200S 1SI模块进行ASCII通讯

图4-2 RS485接口终端模块电缆连接n

注意:RS485接口内部已经短接,不需要外部短接处理,只要直接连接1,2,8。n

2. 软件环境

2.1 STEP7 V5.4 SP5
用于编写S7-300/400程序,此软件需要从西门子购买,本文档中的部分代码使用Step7 V5.4 SP5的软件编写。n

2.2 ET200S 1SI 串行接口模块的功能块
STEP 7 软件中不包含ET200s 1SI模块做串口通讯的功能块,需要单独安装一个软件,然后在Libraries下才有ET200sSI的库,功能块可供通讯调用,该软件从以下的链接下载。25358470

2.3 串口调试器
第三方提供的串口调试工具,可以从互联网上免费下载,可用于测试串口通讯。n

3. 硬件列表和接线

3.1 硬件列表n

CPU CPU317-2PN/DP 6ES7 317-2EK14-0AB0
ET200S 接口模块 6ES7 151-1BA01-0AB0
功率模块 6ES7 138-4CA00-0AA0
1 SI串口模块 6ES7 138-4DF01-0AB0
功率模块的终端模块 TM-P15S23-A0 6ES7 193-4CD20-0AA0
电子模块的终端模块 TM-E15C24-01 6ES7 193-4CA30-0AA0

表1 硬件设备n

3.2 硬件接线示意图
以RS232C的方式接线为例说明,1 Si 模块按照RS232C的接线方式连接到电脑的232口,连接示意图如下所示。n

串口通讯之ET200S 1SI模块进行ASCII通讯
图5 硬件结构和接线示意图n

4.组态设置和编程

4.1 组态和配置n

1.打开STEP7,点击File->New...创建一新项目,项目名称为et200s ASCII。n

串口通讯之ET200S 1SI模块进行ASCII通讯
图6新建项目对话框n

2.用鼠标右键点击项目名称,选择Insert New Object->SIMATIC 300 Station,更改站的名称为 317-2PN/DP ,如下图7所示。n

串口通讯之ET200S 1SI模块进行ASCII通讯

图7 插入S7-300站n

3. 在硬件组态中按订货号和硬件安装次序依次插入机架、CPU和ET200S标准从站模块,如下图8所示,注意所选串行接口模块为32字节的1SI ASCII (这里仅考虑数据传输的吞吐率,不考虑占用的I/O存储区的大小)。n

串口通讯之ET200S 1SI模块进行ASCII通讯
图8组态硬件n

4.双击1 SI ASCII 模块,点击Parameter选项,配置串口通信 参数。n

串口通讯之ET200S 1SI模块进行ASCII通讯
图9 参数分配n

本例中,“Interface”设为RS232C接口,勾选断线诊断,流量控制:无。通信波特率:9.6kb/s,数据位:8位,停止位:1位,奇偶效验:无,字符延迟时间:4ms,其他的参数都采用默认设置。注意:设定的参数要和通讯伙伴的相 同。n

部分参数说明:n

1.接口的选择n

串口通讯之ET200S 1SI模块进行ASCII通讯
图10 接口设置n

三种接口中:RS232C和RS422接口可以选择“断线检测”和“数据流量控制” 的功能, RS485/422可以设置“接收线路的初始化状态”。
2.字符桢的格式:支持10位和11位的字符桢格式,包括数据传输的波特率,数据位,停止位和奇偶校验位。
3.接收字符桢结束判断条件n

串口通讯之ET200S 1SI模块进行ASCII通讯
图11 结束判断条件n

On expiration of character delay time: 以固定的字符延迟时间为每帧数据的结束方式;
On receipt of end-of-text character: 以结束字符作为每帧数据的结束方式;
On receipt of fixed number of characters: 以固定的字符长度作为每帧数据的结束方式。n

4.缓冲区处理方式n

串口通讯之ET200S 1SI模块进行ASCII通讯
图12 缓冲区设置n

Dynamic Message frame buffer:如果勾上,模块就可以缓冲多个不同长度的消息;
Prevent message frame buffer overwrite:如果勾上,防止接收到的新消息覆盖缓冲区中的消息桢,这可以防止丢失以前接收到的消息桢;
Delete receive buffer during CPU startup:如果勾上,当CPU的工作模式从STOP切换到RUN(CPU启动)时,模块的接收缓冲区自动清空。
更多关于串口接口模块的组态和参数设置,请参考手册《ET 200S 串行接口模块》第2.9章节的内容,手册链接:9260793

4.2 编程n

4.2.1 PLC侧编程n

1.程序调用:从库Libraries -> ET200s SI -> ET200S Serial Interface -> ET200s SI中调用功能块,调用发送 FB3(S_SEND)和接收 FB2(S_RCV),并为其分配背景数据块分别为DB30和DB20,将块参数LADDR设为硬件组态中1 SI模块的起始逻辑地址256。n

串口通讯之ET200S 1SI模块进行ASCII通讯
图13 ET200S串口模块的逻辑地址n

2.创建发送数据块DB1和接收数据块DB2n

串口通讯之ET200S 1SI模块进行ASCII通讯

图14发送/接收数据块DB1/DB2n

3.调用发送功能块
ET200S 1SI 的发送功能块FB3 S_SEND 的参数设置见下表2。n

LADDR 硬件组态中串口模块的起始逻辑地址,本例中为256
DB_NO 发送数据块号,本例中为1(DB1)
DBB_NO 发送数据的起始地址,本例中为0(从DB1.DBB0开始)
LEN 发送数据的长度,本例中为10
REQ 发送数据触发位,上升沿触发,本例中为M0.0
R 取消通讯,本例中不用
COM_RST 如果为1 ,重新启动FB,本例中为M0.2
DONE 发送完成位,发送完成且没有错误时为TRUE,
ERROR 错误位,为TRUE说明有错误
STATUS 状态字,标识错误代码,察看ET200S串行接口模块手册获得相应的说明

表2 FB3 S_SEND 的参数定义n

串口通讯之ET200S 1SI模块进行ASCII通讯
图15 在程序中调用FB3 S_SENDn

4.调用接收功能块
ET200S 1SI的接收功能块FB2 S_RCV的参数设置见下表3。n

LADDR 硬件组态中串口模块的起始逻辑地址,本例中为256
DB_NO 接收数据块号,本例中为2(DB2)
DBB_NO 接收数据的起始地址,本例中为0(DB2.DBB0)
LEN 接收数据的长度,本例中为MW4,只有在接收到数据的当前周期,此值不为0 ,需要编程读出
EN_R 使能接收位,本例中为M0.2
R 取消通讯,本例中不用
COM_RST 如果为1 ,重新启动FB,本例中为M0.2
NDR 接收完成位,接收完成并没有错误时为TRUE
ERROR 错误位,为TRUE时说明有错误
STATUS 状态字,标识错误代码,查看ET200S串行接口模块手册获得相应的说明

表3 FB2 S_RCV的参数定义n

串口通讯之ET200S 1SI模块进行ASCII通讯

图16 在程序中调用FB2 S_RCVn

4.2.2 PC机参数设置
参数分配:串口选择COM1(默认),传输波特率为9.6Kb/s, 8位数据位,无校验,1位停止位,这些参数要和ET200s中1SI ASCII模块设置一致,同时将串口调试软件打开。n

串口通讯之ET200S 1SI模块进行ASCII通讯
图17 串口调试软件参数设置n

4.3 通讯测试n

1.ET200S 1SI发送数据,调试软件接收数据
首先将硬件配置和程序下载到PLC,将DB1中前10个字节设为十六进制的01 02 03 04 05 06 07 08 09 10 ,然后将FB3的M0.0从FALSE置成TRUE,ET200S将发送数据10个字节数据,可以从串口调试软件的接收字符窗口中看到收到的数据(十六进制),结果如下图18所示。n

串口通讯之ET200S 1SI模块进行ASCII通讯
图18 ET200S 1SI发送数据调试软件接收数据测试结果

2.调试软件发送数据,ET200S 1 SI接收数据
首先将硬件配置和程序下载到CPU中,将FB2的M0.1设为TRUE,使能ET200S 接收。在PC机的串口软件打开,在发送字符输入窗口输入16进制数据1122334455667788 9900,然后点击“手动发送”按钮发送数据,则在PLC侧DB2的前10个字节能接收到数据,接收的长度为10,测试结果如下。

串口通讯之ET200S 1SI模块进行ASCII通讯

图19调试软件发送数据ET200S 1SI接收数据测试结果

5.总结
本文档以串口模块ET200S 1SI和PC机之间的通讯简单介绍了ASCII协议的组态设置和编程。使用3964(R) 协议进行通讯和ASCII类似,细节请参考手册《ET 200S 串行接口模块》的相关章节,手册链接9260793

关键词
串口通讯,ASCII,ET200S,ET200S 1SI

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc326698.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论