西门子6SL3060-4AW00-0AA0
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所示。
图1 模块指示灯含义
rs232c、rs422和rs485三种接口通讯的终端模块端子分配和电缆连接,如下图2/3/4所示。
图2-1 rs232c接口终端模块端子分配
图2-2 rs232c接口终端模块电缆连接
图3-1 rs422接口终端模块端子分配
图3-2 rs422接口终端模块电缆连接
图4-1 rs485接口终端模块端子分配
图4-2 rs485接口终端模块电缆连接
注意:rs485接口内部已经短接,不需要外部短接处理,只要直接连接1,2,8。
2. 软件环境
2.1 step7 v5.4 sp5
用于编写s7-300/400程序,此软件需要从西门子购买,本文档中的部分代码使用step7 v5.4 sp5的软件编写。
2.2 et200s 1si 串行接口模块的功能块
step 7 软件中不包含et200s 1si模块做串口通讯的功能块,需要单独安装一个软件,然后在libraries下才有et200ssi的库,功能块可供通讯调用,该软件从以下的链接下载。
2.3 串口调试器
第三方提供的串口调试工具,可以从互联网上免费下载,可用于测试串口通讯。
3. 硬件列表和接线
3.1 硬件列表
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 硬件设备
3.2 硬件接线示意图
以rs232c的方式接线为例说明,1 si 模块按照rs232c的接线方式连接到的232口,连接示意图如下所示。
图5 硬件结构和接线示意图
4.组态设置和编程
4.1 组态和配置
1.打开step7,点击file->;new...创建一新项目,项目名称为et200s ascii。
图6新建项目对话框
2.用鼠标右键点击项目名称,选择insert new bbbbbb->;simatic 300 station,更改站的名称为 317-2pn/dp ,如下图7所示。
图7 插入s7-300站
3. 在硬件组态中按订货号和硬件安装次序依次插入机架、cpu和et200s标准从站模块,如下图8所示,注意所选串行接口模块为32字节的1si ascii (这里仅考虑数据传输的吞吐率,不考虑占用的i/o存储区的大小)。
图8组态硬件
4.双击1 si ascii 模块,点击bbbbbeter选项,配置串口通信 参数。
图9 参数分配
本例中,“interface”设为rs232c接口,勾选断线诊断,流量控制:无。通信波特率:9.6kb/s,数据位:8位,停止位:1位,奇偶效验:无,字符延迟时间:4ms,其他的参数都采用默认设置。注意:设定的参数要和通讯伙伴的相 同。
部分参数说明:
1.接口的选择
图10 接口设置
三种接口中:rs232c和rs422接口可以选择“断线检测”和“数据流量控制” 的功能, rs485/422可以设置“接收线路的初始化状态”。
2.字符桢的格式:支持10位和11位的字符桢格式,包括数据传输的波特率,数据位,停止位和奇偶校验位。
3.接收字符桢结束判断条件
图11 结束判断条件
on expiration of character delay time: 以固定的字符延迟时间为每帧数据的结束方式;
on receipt of end-of-text character: 以结束字符作为每帧数据的结束方式;
on receipt of fixed number of characters: 以固定的字符长度作为每帧数据的结束方式。
4.缓冲区处理方式
图12 缓冲区设置
dynamic message frame buffer:如果勾上,模块就可以缓冲多个不同长度的消息;
prevent message frame buffer overwrite:如果勾上,防止接收到的新消息覆盖缓冲区中的消息桢,这可以防止丢失以前接收到的消息桢;
delete receive buffer during cpu startup:如果勾上,当cpu的工作模式从stop切换到run(cpu启动)时,模块的接收缓冲区自动清空。
更多关于串口接口模块的组态和参数设置,请参考手册《et 200s 串行接口模块》第2.9章节的内容,手册链接:
4.2 编程
4.2.1侧编程
1.程序调用:从库libraries ->; et200s si ->; et200s serial interface ->; et200s si中调用功能块,调用发送 fb3(s_send)和接收 fb2(s_rcv),并为其分配背景数据块分别为db30和db20,将块参数laddr设为硬件组态中1 si模块的起始逻辑地址256。
图13 et200s串口模块的逻辑地址
2.创建发送数据块db1和接收数据块db2
图14发送/接收数据块db1/db2
3.调用发送功能块
et200s 1si 的发送功能块fb3 s_send 的参数设置见下表2。
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 的参数定义
图15 在程序中调用fb3 s_send
4.调用接收功能块
et200s 1si的接收功能块fb2 s_rcv的参数设置见下表3。
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的参数定义
图16 在程序中调用fb2 s_rcv
4.2.2 pc机参数设置
参数分配:串口选择com1(默认),传输波特率为9.6kb/s, 8位数据位,无校验,1位停止位,这些参数要和et200s中1si ascii模块设置一致,同时将串口调试软件打开。
图17 串口调试软件参数设置
4.3 通讯测试
1.et200s 1si发送数据,调试软件接收数据
首先将硬件配置和程序下载到plc,将db1中前10个字节设为十六进制的01 02 03 04 05 06 07 08 09 10 ,然后将fb3的m0.0从false置成true,et200s将发送数据10个字节数据,可以从串口调试软件的接收字符窗口中看到收到的数据(十六进制),结果如下图18所示。
图18 et200s 1si发送数据调试软件接收数据测试结果
2.调试软件发送数据,et200s 1 si接收数据
首先将硬件配置和程序下载到cpu中,将fb2的m0.1设为true,使能et200s 接收。在pc机的串口软件打开,在发送字符输入窗口输入16进制数据88 9900,然后点击“手动发送”按钮发送数据,则在plc侧db2的前10个字节能接收到数据,接收的长度为10,测试结果如下。
图19调试软件发送数据et200s 1si接收数据测试结果