您好!欢迎光临工博士商城

西门子PLC模块专营

  产品:6377    

咨询热线:18182118630

QQ QQ
您当前的位置:首页 » 新闻中心 » 西门子PLC自由口通讯
产品分类
新闻中心
西门子PLC自由口通讯
发布时间:2021-07-21        浏览次数:182        返回列表

       以前我们讲过关于自由口通讯的实例,今天我们讲一下自由口通讯配合中断的实例。
 
       在一些特定场合,比如说与松下系列伺服驱动器的控制时,为了保证数据的安全,我们需要进行多次往返的数据交换,这就需要严格控制通讯的时间。那么这个时候对于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.所示。
 


     


 此文来源于网络 2021-07-21


想了解更多详情点击:西门子伺服电机、PLC、变频器,低压
 



 

联系热线:18182118630   联系人:朱经理 联系地址:上海市宝山区富联一路98弄6号

技术和报价服务:星期一至星期六8:00-22:00 西门子PLC模块专营