课程中心
HOME
课程中心
正文内容
plc编程rcv 图解实战 西门子S7-1200调用并配置TSEND_C,T_RCV通信指令
发布时间 : 2025-03-28
作者 : 小编
访问数量 : 23
扫码分享至微信
Scan me!

图解实战 西门子S7-1200调用并配置TSEND_C、T_RCV通信指令

1.在 PLC_1 的 OB1 中调用“TSEND_C” 通信指令

在第一个 CPU 中调用发送通信指令,进入 “Project tree” > “ PLC_1” > “Program blocks” > “OB1” 主程序中,从右侧窗口 “Instructions” > “Extended Instructions” > “Communications” 下调用 “TSEND_C” 指令,并选择 “Single Instance” 生成背景 DB块。然后单击指令块下方的“下箭头”,使指令展开显示所有接口参数,如图1.所示。

2. 定义PLC_1 的“TSEND_C”连接参数

PLC_1 的 TSEND_C 指令的连接参数需要在指令下方的属性窗口“Properties”> “Configuration”>“Connection parameter”中设置,如图2.所示。

3.定义 PLC_1 的“TSEND_C”发送通信块接口参数

① 根据所使用的接口参数定义符号表在“Project tree”> “PLC_1” > “PLC tags”中定义所使用的符号名,如图3.所示。

② 创建并定义PLC_1的发送数据区 DB 块。通过“Project tree”>“PLC_1”>“Program blocks”>“Add new block”,选择“Data block” 创建 DB 块,选择绝对寻址,点击“OK”键,定义发送数据区为 100个字节的数组,如图4.及图5.所示。

注意:对于双边编程通信的 CPU ,如果通信数据区使用 DB 块,既可以将 DB 块定义成符号寻址,也可以定义成绝对寻址。使用指针寻址方式,必须创建绝对寻址的 DB 块。

③ 定义 PLC_1 的“TSEND_C”发送通信块接口参数,如图6.所示。

4.在 PLC_1 的OB1中调用接收指令T_RCV 并配置基本参数

为了实现 PLC_1 接收来自 PLC_2 的数据,则在 PLC_1 中调用接收指令T_RCV 并配置基本参数。接收数据与发送数据使用同一连接,所以使用不带连接管理的 T_RCV 指令。根据所使用的接口参数定义符号表,如图3.所示。配置接口参数,如图7.所示:

西门子PLC利用自由口实现通讯,配合中断效果好!图文实例讲解!

以前我们讲过关于自由口通讯的实例,今天我们讲一下自由口通讯配合中断的实例。

在一些特定场合,比如说与松下系列伺服驱动器的控制时,为了保证数据的安全,我们需要进行多次往返的数据交换,这就需要严格控制通讯的时间。那么这个时候对于PLC来说通讯就是最重要的,所以我们需要打断PLC的正常功能,优先处理通讯,这就需要通讯中断。

实例:2台S7-200 SMART CPU(端口0)采用自由口通信方式实现相互通信

(本文仅为展示自由口通讯和中断,如果想要实现这两个PLC的通讯其实最好是使用向导进行以太网通讯,有机会我们也会进行讲解!)

通信任务:CPU1 每秒触发一次 XMT 指令将 CPU 的实时时钟发送到 CPU2;CPU2 接收到 CPU1 发送的信息后立即将 CPU2 的实时时钟回复到 CPU1。

接线:每个 S7-200 SMART CPU 都提供一个以太网端口和一个 RS485 端口(端口0),标准型 CPU 额外支持 SB CM01 信号板(端口1),信号板可通过 STEP 7-Micro/WIN SMART 软件组态为 RS232 通信端口或 RS485 通信端口。

CPU 通信端口引脚分配

1、CPU1 编程

1.1、CPU1 主程序编程如图 所示:

CPU1主程序

程序讲解:

1. 设置 SMB30 = 2#00001001 (自由口通信,波特率 9600 bps,8 位数据位,无校验)。

2. 设置 SMB87 = 2#10010100,使用空闲线检测为信息接收的起始条件,使用字符间定时器为信息接收的结束条件。

3. 设置空闲线定时器 SMW90 = 5 ms,字符间定时器 SMW92 = 5 ms,允许最大接收字符个数 SMB94 = 10。

4. 连接中断子程序 INT_0 到通信端口 0 发送完成事件,并启用中断。

5. 每秒钟读取一次 CPU 的实时时钟,并将发送缓冲区长度设置为 8 个字符。

6. 执行 XMT 指令之前设置 SM87.7 = 0,同时执行 RCV 指令,终止消息接收。

7. 每秒钟执行一次 XMT 指令将 CPU 的实时时钟发送出去。

1.2、 CPU1 发送完成中断子程序 INT_0 编程

中断子程序INT_0用于恢复 SMB87 的设置(SM87.7 = 1),并执行 RCV 指令开始接收 CPU2的应答信息。程序如图4. 所示:

CPU1 中断子程序 INT_0

2、CPU2 编程

2.1、CPU2 主程序编程如图所示:

CPU2主程序

1. 设置 SMB30 = 2#00001001 (自由口通信,波特率 9600 bps,8 位数据位,无校验)。

2. 设置 SMB87 = 2#10010100,使用空闲线检测为信息接收的起始条件,使用字符间定时器为信息接收的结束条件。

3. 设置空闲线定时器 SMW90 = 5 ms,字符间定时器 SMW92 = 5 ms,允许最大接收字符个数 SMB94 = 10。

4. 连接中断子程序 INT_0 到通信端口 0 接收完成事件,中断子程序 INT_1 到通信端口 0 发送完成事件,并启用中断。

5. 使用 SM0.1 调用 RCV 指令地执行。

2.2、 CPU2 接收完成中断子程序 INT_0 编程

中断子程序INT_0用于读取 CPU 实时时钟,并调用 XMT 指令将实时时钟信息发送出去。程序如图所示。

CPU2 接收完成中断子程序 INT_0

2.3、 CPU2 发送完成中断子程序 INT_1 编程

中断子程序 INT_1 用于执行 RCV 指令,并开始新的信息接收任务。程序如图 7.所示。

CPU2 发送完成中断子程序 INT_0

相关问答

变频器rcv什么意思?

答:变频器rcv接受指令的意思。CPU串行通信口可由用户程序控制,这种操作模式称作自由口通信模式。在该模式下,用户程序可以使用接受中断、发送中断、发送指...

PLC串口通讯原理?

第三方设备大部分支持,西门子S7PLC可以通过选择自由口通信模式控制串口通信。最简单的情况只用发送指令(XMT)向打印机或者变频器等第三方设备发送信息。不管...

西门子s7200plc他的xmt指令,谁能和我探讨一下,我看不懂,发出来的值和我设置的值完?

xmt指令一个字节中,0是计数位,1~7是信息字符存储位rcv指令字节区中,0位是计数位,1位是起始字符,中间是信息字符存储位,最后一位是结束字符xmt指令一个字节中...

敢问大家,plc电柜s7-200smart通信你了解吗

[回答]plc电柜S7-200SMARTCPU集成的RS485端口以及SBCM01信号板都是非隔离型通信端口,允许的大通信距离为50m,该距离为网段中首一个通信节点到后一个节点的...

谁能回答!plc控制柜s7-200smart通信资源端口怎样连接

[回答]plc控制柜smartRS485/RS232通信资源是CPU与HMI之间的数据交换(PPI协议)。CPU使用自由端口模式与其它设备之间的串行通信(例如:XMT/RCV通信、ModbusR...

帮个忙,plc控制柜s7-200smart通信方式是什么

[回答]plc控制柜smartRS485/RS232通信资源是CPU与HMI之间的数据交换(PPI协议)。CPU使用自由端口模式与其它设备之间的串行通信(例如:XMT/RCV通信、ModbusR...

plc电柜s7-200smart通信资源端口怎样连接感谢回答

[回答]plc电柜我们需要注意的是:S7-200SMARTCPU集成的RS485端口以及SBCM01信号板都是非隔离型,与网段中其它节点通信时需要做好参考点电位的等电位连接或...

帮个忙,plc变频控制柜s7-200smart通信资源的连接方式有哪些...

[回答]plc变频控制柜我们需要注意的是:S7-200SMARTCPU集成的RS485端口以及SBCM01信号板都是非隔离型,与网段中其它节点通信时需要做好参考点电位的等电位...

谁能帮助我!plc变频柜s7-200smart通信资源,通信端口怎样连...

[回答]plc变频柜smart以太网通信资源:CPU与STEP7-Micro/WINSMART软件之间的数据交换。CPU与HMI之间的数据交换。CPU与其它S7-200SMARTCPU之间的GET/PUT通....

 洪晓玲  广州区号多少 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部