北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章545 浏览8636930

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

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


0.jpeg

    

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

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

138_4DF01.png

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

138_4DF11.png

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

1SI_overview.jpg

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

1SI_termnial.jpg

端子1:发送数据

端子2:请求发送数据

端子3:数据终端就绪

端子4:数据载波检测

端子5:接收数据

端子6:允许发送

端子7:数据发送就绪

端子8:信号地

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


1SI_connection2.jpg

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

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

1SI_RS422_termnial.jpg

端子1:发送数据(-)

端子2:发送数据(+)

端子5:接收数据(-)

端子6:接收数据(+)

端子8:信号地

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

1SI_RS485_termnial.jpg

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

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

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

如下图:

    1SI_hardware_catalog.jpg

以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"中,只有两种可以选择:

138_harware_portal.png

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

1SI_portal_interface.jpg

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

1SI_protocol.png

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

1SI_step7_interface.jpg

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

1SI_portal_p_interface.jpg

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

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

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

 1SI_COM_instruct.jpg

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

1SI_s_rev.png

输入参数(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模块发送到通信线路中,功能块的调用界面如下图:

1SI_send.png

输入参数(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的串口模块,敬请期待。

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

    



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

来源:本站|   大小:549 KB|   下载次数:1714次

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论