首页 > 化工知识 > 工业串口通信之如何使用ET200S的1 SI串口模块

工业串口通信之如何使用ET200S的1 SI串口模块

时间:2020-09-25 来源:方正智芯 浏览:

上一篇文章我们介绍了西门子S7-300的CP340/CP341串口模块,今天我们来聊聊分布式系统ET200S的串口模块1 SI。

 

 

ET200S的串口模块1SI 有两种型号:

第一种(订货号:6ES7 138-4DF01-0AB0)支持RS232RS422RS485的电气接口,两种软件协议:ASCII和9346R,下图是博途v13硬件组态中对该模块的描述:


第二种(订货号:6ES7 138-4DF11-0AB0)支持RS232RS422RS485的电气接口,两种软件协议:Modbus和USS,博途v13的硬件描述如下图:

也就是说,两种1 SI模块支持的电气接口都是一样的,但是软件的协议不同。还记得在CP340系列中,西门子根据电气接口的不同,分成了三种模块,CP340-RS232,CP340-20mA-TTY,CP340-RS422RS485,但是ET200S的1 SI串行模块可以同时适应三种电气的接口,你只需要根据不同的电气接口要求,连接不同的端子就可以了。但是要注意,接线完成后,必须在硬件组态中设置相应的接口类型。至于怎么设置我们将在下文的硬件组态中介绍,先来看下1 SI串口模块的芳容:

RS232C电气接口的端子定义如下(注意:和我们以前讲的9针D型串口的定义是不一样的):

端子1:发送数据

端子2:请求发送数据

端子3:数据终端就绪

端子4:数据载波检测

端子5:接收数据

端子6:允许发送

端子7:数据发送就绪

端子8:信号地

最简单的RS232接线方式可以把端子1(TxD)与通信伙伴的RxD相连,把端子5(RxD)与通信伙伴的TxD相连,然后把端子8(PE)与通信伙伴的信号地(PE)相连接。下图是两个模块的RS232电气连接示意图:


如果你需要了解流控制的相关知识,请看前面我写过的文章“工业串口通信之有话好好说”。

如果你需要用该模块进行RS422通信(全双工),请看下图:


端子1:发送数据(-)

端子2:发送数据(+)

端子5:接收数据(-)

端子6:接收数据(+)

端子8:信号地

如果你使用该模块进行RS485通信(半双工),端子定义如下:


注意:对于RS422和RS485,若通信的距离超过50米,建议增加一个330欧姆左右的终端电阻以保证通信的效果。

介绍完电气如何接线,接下来我们介绍下硬件的组态和软件的编程:

在Step7的硬件组态中,1 SI的目录有18个选项,如下图:

如下图:

以ASCII为例,可选项包括:

1 SI ASCII (32 Byte)

1 SI ASCII (4 Byte)

1 SI ASCII (8 Byte)

这里括号里的字节表示数据吞吐率,字节数越大,吞吐率越大,数据传输的速度越快,但同时在ET200S上占用的I/O存储区也越多。32 Byte 传输速率最大;4 Byte占 I/O存储区最小。鱼与熊掌不可兼得,具体怎么用视现场实际情况而定。

博途v13中该模块的组态在"Communications modules"-"1 SI"中,只有两种可以选择:


可以在"Adress area"中选择占用的I/O字节数,即上面提到的吞吐率;在"protocol"中选择使用的软件协议:ASCII或3964R;

第二种模块(订货号:6ES7 138-4DF11-0AB0)可以选择Modus协议或USS协议,如下图:

前面我们提到过需要在硬件组态中设置电气接口的类型,Step7中在1SI模块的属性Interface中选择,如下图:


在博途v13中你需要首先选择通信协议(protocol),然后在下面的协议中选择接口类型(interface),比如选择ASCII协议,在ASCII中就会有Interface的选项,如下图:


接口配置好之后,还需要设置通信协议的具体参数,比如ASCII协议中的波特率,数据位,停止位等等,这里我们就不再赘述了,如果你不太清楚的话,可以参考我们之前的文章的相关介绍。

硬件组态完成后,还需要在软件中调用相应的功能块完成通信。下面我们以博途v13为例介绍如何调用1 SI的串口通信功能块。

首先新建一个功能块,然后在右边的指令列表中找到"通信处理器(Communication processor)"-"ET200S serial interface",这里面有1SI模块的很多通信功能块,如下图:

数据接收:
功能块S_RCV用来接收数据,它能接收ET200S 1SI模块的数据并把数据存到指定数据库(DB)的指定位置,该功能块的调用界面如下图:

输入参数(Input):

EN_R:使能数据接收,布尔量

R:取消请求,停止接收数据,布尔量

LADDR: ET200S 1SI 的硬件地址,整形变量

DB_NO:接收数据块的编号,整形变量,不能为0

DBB_NO:接收数据库的字节地址,整形变量

输出参数(Output):

NDR:成功接收到新数据并且没有错误,布尔量

ERROR:接收过程中发生错误,布尔量

LEN:接收到的数据的长度,整形变量

STATUS:状态字

COM_RST:重启功能块,布尔量

数据发送

功能块S_SEND用来发送数据,该功能块从指定数据块(DB)的指定位置(DBB)传输指定长度(LEN)的数据到 ET200S 的1SI模块,并将数据通过1SI模块发送到通信线路中,功能块的调用界面如下图:

输入参数(Input):

REQ:请求发送数据,上升沿,布尔量

R:取消发送请求,布尔量

LADDR: ET200S 1SI 的硬件地址,整形变量

DB_NO:发送数据块的编号,整形变量,不能为0

DBB_NO:发送数据块的字节地址,整形变量

LEN:发送的长度,整形变量

输出参数(Output):

DONE:数据发送成功且没有错误,布尔量

ERROR:发送不成功,有错误产生,布尔量

STATUS:状态字,当有错误时,存放错误代码

COM_RST:重启功能块,布尔量

 

发送和接收的参数说明:

对于S7 300/400 的CPU,DBB_NO+LEN的范围为大于等于0,小于8190

对于S7-1500的CPU,DBB_NO+LEN的范围为大于等于0,小于等于DB块的大小

输出参数LEN的范围:大于等于1,小于等于224

到这里我们就把ET200S的串口模块1SI给大家介绍完了,从硬件接线,组态到软件的编程,你是否对这个模块有了更深一步的理解了呢?如果你有什么问题,可以直接给信息留言,我们进一步交流。下一篇文章我们将介绍紧凑型PLC S7-1200的串口模块,敬请期待。

长按扫描下面的二维码,关注“方正智芯”的原创文章,提供工业控制领域的技术和经验的分享,持续关注,持续进步

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐