西门子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
西门子SMART200PLC读写台达TDV4896温控器案例
随着工业自动化向4.0靠近,各行各业对温度控制器(仪)等设备的控制管理也更上一层楼,我们以台达温控器DTV4896型作为案例来讲述如何通过控制器读写PV/SV(当前温度值/设置温度值)。
我们在做这个案例之前得必须满足一下软硬件条件:
1.)装有STEP7-Micr/Win SMART软件电脑一台,台式笔记本均可;
2.)西门子S7-200SMART PLC系列控制器一台,本案例为SR60一台;
3.)台达TDV4896温控器一台,不作硬性要求,支持ModbusRTU协议的都可以;
4.)自制RS485通讯电缆一条。
满足以上条件,我们可以开始进行下一步(熟悉台达TDV4896温控器的说明书上的重要知识要点)。
二. 台达DTV4896温控器外观如下图所示:
(台达温控器外观)
三, 台达TDV4896温度控制器接线图:
(台达温控器接线图)
四 ,台达温控器TDV4896实物接线图:
(台达温控器实际接线图)
五 ,台达面板按键说明(可以查阅台达TDV4896手册,我也是在上面摘录下来的)。
六, 台达温度控制器的通讯设置(通过手册摘录下来的,有兴趣可以查阅完整手册)。
參數設定操作說明
模式切換按鍵操作方式 : 开机设定于运转模式,显示 PV/SV 值。在运转模式下按 超过三秒,可切至设定模式。在运转模式下按 低于三秒,可切至调整模式。控制器在调整模式或设定模式下,按 一次,可切回至运转模式。
內部選項切換按鍵操作方法:
在运转模式、调整模式或设定模式下,按 作内部参数选择设定项目。
数字参数设定方法:
当找到预设定或修改的参数时,利用 更改设定,按 可移动欲更改的数字位置,选到的位置指示灯闪烁,完成更改后按 储存设定。
非數字參數的設定方法 :
当找到欲设定或修改的参数时,利用 更改设定,此时指示灯闪烁,完成更改后按 储存设定。
七 ,参数设置如下图所示:
八, 温度传感器类型如下图:
九,台达TDV4896温控器modbus参数地址:
16#1000=40001+4096=10#44097 温度当前值;
16#1001=40001+4097=10#44098 温度设定值。
其他的参数也如上这样换算成10进制参数就可以了,由于西门子在Modbus四区里面时从1开始算起来,所以就是40001的由来。
十, 我们开始在STEP7-Micr/Win SMART软件里面写入通信程序如下图所示:
十 一,读写程序如下图所示:
11.0.0)温度设定(写入)程序如下图所示:
11.1.0)实际温度(读出)程序如下图所示:
以上课件讲述了通信硬件要求及程序设计等,当然也有千种思路,仅供参考。
由于时间长促,案例难免有讲的不完善或者错误的地方。望大神们多多指教!
相关问答
由plc采集数据到组态软件里面,plc的程序应该怎样写啊!-盖德...
如果是通过modbus,我做过geplc和abbac800f的,就是读寄存器里的数据。要加modbus卡回复1#清泉东子每个组态软件都有个数据库,这个数据库可以选...
数控车床EX1001报警怎么处理?
按着过行程解除,把Z轴往负方向移下来就好了EX报警属于PMC报警,也就是外围报警。通常情况1001是紧急停止报警,只有1001报警可以查急停开关和硬限位开关。这些...
问PLC指令FROMK2k5D10K1具体含义?
FRPM指令是将增设的特殊单元缓冲寄存器(BFM)的内容读到可编程序控制器中。FROMK2k5D10K1中的K2是单元号;K5是“BFM#”的传送源;D10是传送地点;K1是传送...
三菱8421怎么用?
8421其实是代表4位二进制数对应十进制数的,比如一个存储通道内的低4位数为1001,用8421代表就是,8所在的位为1,1所在的位为1,也就是8+0+0+1=9,二进制的1001...
拨码开关接线要怎么做_住范儿家装官网
拨码开关接线,2条是脉冲输出线,1条是COM端线,1条是电源线。编码器的电源可以是外接电源,也可直接使用PLC的DC24V电源。电源“-”端要与编码器的COM...
在座的老表,你们谁明白!西藏技敏GK728辽事通健康码扫码器,...
[回答]一般用到的都是BCD码8/4/2/1四线输出,可将这4根线紧挨着接到PLC输入端,如X0-X。如果拨码开关以2进制编码方式输出,例如设定为5,则输入1001,PLC对应...
加工中心ex1071报警?
EX报警属于PMC报警,也就是外围报警。通常情况1001是紧急停止报警,只有1001报警可以查急停开关和硬限位开关。这些报警都是PLC的外部报警。fanuc系统:刚性攻丝...
三菱系统2216参数?
三菱系统2216的参数设置如下:1.原装系统开机后显示的是日文,为操作方便,先设置参数#1043=22(简体中文)。(有些系统如C64没有简体中文规格,则设置#1043=1...
刷机过后无限重启怎么处理-ZOL问答
电脑和plc用网线联接,怎么获得plc的ip地址4299浏览8回答ZOL问答问题详情电脑版首页资讯查报价排行榜问答论坛应用违法和不良信息举报电话:010-64...
EMERSONdeltav能否做空压机的防喘振控制?-盖德问答-化工人...
你可以提供...目前的情况就是压缩机集成厂家对我们不开放plc程序,造成我们处理故障很被动。由于单点连锁的设置,联锁无法切除。一旦一次元件有故...