线下实训
HOME
线下实训
正文内容
plc通信编程实例 西门子PLC利用自由口实现通讯,配合中断效果好!图文实例讲解!
发布时间 : 2025-03-16
作者 : 小编
访问数量 : 23
扫码分享至微信

西门子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

西门子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

相关问答

plc485通讯编程实例?

您好,以下是PLC485通讯编程实例:1.确定PLC通讯口:首先需要确定使用的PLC通讯口,例如COM1口。2.定义串口参数:定义串口参数,包括波特率、数据位、停止...

三菱plc和仪表485通讯实例?

PLC的485与仪表的485均属于硬件接口。例①,PLC的485的接口多通过MUdbUS一RTU通信协议与其它没备连接进行数据交换。PLC与触摸屏之间也是通过485的9针接口,通...

plc与变频器485通讯编程实例?

PLC和变频器的参数。PLC采用FX2N-32MT-001型号,变频器采用FX2N-485-BD型号。设置通...PLC与变频器485通讯编程实例以FX2N-32MT-001与FX2N-485-B...

1200plc不同项目如何通讯?

要实现1200PLC之间的通信,可以使用不同的通信协议和方法。一种常见的方法是使用以太网通信,通过以太网模块连接PLC,并使用TCP/IP协议进行数据传输。另一种方...

欧姆龙plc485通讯编程实例?

您好,以下是PLC485通讯编程实例:1.确定PLC通讯口:首先需要确定使用的PLC通讯口,例如COM1口。2.定义串口参数:定义串口参数,包括波特率、数据位、停止...

西门子1200plc485通讯实例?

西门子1200PLC通过485通讯可以实现不同设备之间的数据传输和通信。在这个实例中,我们将通过RS485总线连接两个PLC,通过修改相关程序,可以实现两个PLC之间的数...

PLC通讯程序怎么写?

PLC通讯程序的具体编写流程与所采用的PLC品牌和型号有关,但大致可分为以下步骤:确定通讯接口,选择通讯协议,配置PLC参数,编写PLC程序并与上位机进行通讯。在...

step7与plc485通讯步骤?

要实现step7与plc485通讯,首先需要在step7软件中配置485通讯模块的参数,包括通讯速率、数据位、奇偶校验等。然后,在Step7中编写PLC程序,使用通讯函数块来读...

两个三菱plc之间通讯程序怎么编写?

两个三菱PLC之间通讯程序的编写需要使用三菱PLC编程软件GXDeveloper或GXWorks2。以下是一个简单的示例,用于在两个三菱PLC之间建立通信:1.首先,在PLC1上创...

1500plc之间的通信怎么实现?

主要看你是什么品牌的PLC,不同品牌的PLC支持的协议是不一样的,一般组态王是支持Modbus和ModbusTCP协议,如果PLC支持这两种协议,可以直接通信,如果不支持需...

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

QQ

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

热线

188-0000-0000
专属服务热线

微信

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