西门子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程序设计的分析,充分了解和掌握程序设计的思路,对水电厂机组的安全维护具有现实的意义。
西津水电厂属于低水头河床式水电站,从20世纪90年代开始,逐步将历史经验沉淀的机组自动化信号元件配置改造成为具有现代高技术含量的计算机监控系统。在技术改造过程中,将几十年积累的经验与现代高技术相结合,在现地控制单元PLC程序设计中,形成一套比较完善的机组自动化控制程序。
水力机械事故保护程序是PLC程序设计重要模块,其中机组轴承过热保护是关键。水力发电机组的上导、推力、下导和水导轴承,均改造为塑料轴瓦。发信采样点数分别为上导2点、推力4点、下导2点和水导2点,温度升高报警值为55ºC,温度过高事故停机值为65 ºC。各测点的PLC编程都是类似的,为了避免重复,下面仅对典型的推力轴承过热保护PLC程序设计作简要分析。
PLC硬件、软件配置
PLC采用美国通用电气的GE90-70系列,通过通讯模块直接上以太网;感温元件采用PT100铂电阻。PLC编程软件使用GE公司开发的windows平台下的Proficy Machine Edition V5.60。
在编程前,根据现场设备确定开关量(包含中断量、输入和输出量)、模拟量和RTD量等外围信号的点数,先完成硬件配置,接下来就是统筹考虑,分配各功能模块的软元件,对每个软元件定义别名,并做一些简要的描述。做好了前期定义配置工作,就可以根据用户的应用流程进行PLC编程。表1仅为推力轴承RTD第一点过热保护设计所需要的软元件定义分配表,为便于阅读,已对原程序的软元件的定义作了适当的修改。
表1
PT100断线和阻值突变检测设计
PT100感温信号经过屏蔽电缆引至现地控制单元(LCU)的RTD模块,其回路中间可能经过部分端子转接。PT100在机组的长期运行过程中,信号回路有可能出现开路或接触不良,阻值出现很大或突变现象。为此,在编程时,必须首先考虑如何检测这些不正常的情况,避免温度保护误动,引发事故停机。具体编程思路见图1。
图1
对于1 Rung :PLC在扫描过程中,先判断AI0001的数值是否-1200~1200(1位小数点,以下同)之间,在这个区间外,就可以判断PT100断线,中间变量M01000线圈失能,“PT100故障”光字牌点亮,信号上送报警;如果AI0001的数值在这个区间内,则判断PT100不断线,中间变量M01000线圈使能,开接点接通。
对于2 Rung : M03000为通道故障,在其他模块定义。首先在PT100不断线的情况下,M01000开接点接通,经过定时器15s,M01001线圈瞬间接通又由于回路中串有自身闭接点而断开,同时AI0001的数值写入变量R02000中。
下一次扫描,在通道不故障的情况下,M03000开接点接通,判断AI0001与R02000的差值是否在-50~50,若在这个区间内,说明轴瓦温度在正常范围内递增或递减,没有出现突变现象,M01001线圈使能,AI0001的数值再次写入变量R02000中,为后续回路做准备。
温度升高和过高检测处理设计
在判断PT100正常的条件下,下一步就是进行温度升高和过高检测处理设计。这一步设计的指导思想是,温度升高仅发信,引起运行人员的注意,温度过高应在温度升高的基础上判断,并设置一个迂回值,防止在临界点抖动;停机开出驱动两两串接(即1和2、2和3、3和4,4和1),以提高判断的准确性和可靠性,防止误动。根据这个设计思想,具体编程思路见图2。
图2
对于3 Rung : 在PT100正常的条件下,M01001开接点接通。如果AI0001的数值超过550时,M01002线圈使能,点亮“推力轴承温度升高”光字牌,并上送故障信号;同理,在温度升高的基础上,如果AI0001的数值超过650时,M01003线圈使能,点亮“推力轴承温度过高”光字牌,并上送该点事故信号,而另一支路为嵌位回路,AI0001的数值在645~710时,M01003线圈一直使能,防止M01003抖动。
对于4 Rung : 在PT100正常的条件下,如果第一、二点RTD测温均超过65 ºC,并经定时器8s后,Q01000线圈使能,程序认为机组推力轴瓦温度过高,则由后面的回路驱动出口事故停机。推力轴瓦RTD 测点共有四点,每相邻两点两两串接,形成四条支路并联驱动Q01000。
开关量和光字牌输出设计
为保证机组的安全,PT100故障、轴瓦温度升高应发信,轴瓦温度过高必须发信并驱动出口事故停机。各点信号均点亮相应的光字牌,所有信息应上送上位机。事故出口回路一般设有压板和事故复归按钮,方便运行人员投切保护回路或事故解除后复归保护回路和信号。具体编程思路见图3。
图3
对于5 Rung : Q01000开接点经过轴承过热压板I00101驱动Q01001、Q01002,Q01001开接点与事故复归按钮I00100串联作为自保持回路。由Q01001驱动开出继电器,外围操作回路事故电磁阀1DPK动作,机组事故停机。事故解除后,Q01000复归,可由运行人员按下事故复归按钮,I00100闭接点断开一下,Q01001、Q01002线圈失能,再由其他回路驱动外围操作回路复归事故电磁阀1DPK。
对于6 Rung、7 Rung、8 Rung:这三步均为相应的光字牌点亮回路。由M01000闭接点驱动Q01003,点亮“PT100故障”光字牌;由M01002开接点驱动Q01004,点亮“推力轴承温度升高”光字牌;由M01003开接点驱动Q01005,点亮“推力轴承温度过高”光字牌。所有信息应上送上位机报警。
经验总结
西津水电厂机组自动化经过技术改造后,几十年的运行维护经验在高技术的光环下大放光彩,凸显了勃勃生机。完善成熟的机组PLC控制程序是计算机监控系统最重要的应用程序之一,经过十几年运行实践证明,西津水电厂机组PLC控制程序是安全可靠的,特别是水机事故保护并没有出现过因PLC编程而误动的现象。
(摘编自《电气技术》,原文标题为“水力发电机组轴承过热保护PLC程序设计分析”,作者为杨献。)
相关问答
win10频繁蓝屏,BUGCHECK,事件id1001,检测错误:0x0000013...
[回答]我们了解到您关于Windows10蓝屏的问题。错误代码:0x00000139,表明系统内核代码或数据损坏,根据您提供的日志信息分析,导致蓝屏的文件为rtwlane_13...
由plc采集数据到组态软件里面,plc的程序应该怎样写啊!-盖德...
如果是通过modbus,我做过geplc和abbac800f的,就是读寄存器里的数据。要加modbus卡回复1#清泉东子每个组态软件都有个数据库,这个数据库可以选...
事件查看器中的错误记录:来源DistributedCOM事件ID:10010-...
[回答]--1001002
多米app下载安装最新版(官方)最新下载IOS//手机版APP_微思
多米app下载安装最新版软件特色1,按U键显示/隐藏用户面板。2,用小船穿越水域,获得分数。3,在射箭游戏中,使用鼠标左键和空格键来瞄准和射箭。4,在游戏中跳跃...
apex俱乐部错误1001怎么办?
如果遇到Apex俱乐部错误1001,可以尝试以下几种方法:检查网络连接:首先确保你的网络连接稳定,如果网络不稳定,可能会导致连接问题或错误代码。更新游戏:可能...
无线网卡Dhcp-Client日志错误ID1001地址配置状态事件-...
[回答]您是否尝试过更新网卡的驱动呢?这个可能是网卡驱动陈旧导致的分配地址错误。建议您访问硬件厂商网站,搜寻最新版本的网卡驱动进行安装。您是否尝试...
im电竞官方网站(中国)官方网站·IOS/APP下载/APP_微思
首页>应用软件>im电竞官方网站im电竞官方网站官方年满12周岁下载安装3374368次下载90.99%好评率86338人评论需优先下载im电竞官方网站安装...
东北大学(中国)软件学院怎么样?设有哪些专业?申请方
[回答]~接下来我为大家简单介绍一下我们东北大学(中国)的软件学院开设的专业以及研究情况专业设置:软件工程(国际班(英语))-本科、软件工程(国际班(日语))...
路由器定时设定显示错误代码1001-ZOL问答
B、打不开网页,但游戏以及QQ/MSN等其它网络应用方面的软件可以登录。进入步骤四C、打不开网页,所有应用(游戏以及QQ/MSN等)无法使用进入步骤五三建议重新设...
APK是什么意思-ZOL问答
安装:使用手机助手类软件或手机中安装有用(0)回复lijian2260一键刷机成功率百分之一…刷机是把系统改变,一般等同于系统升级。刷机前不需要root。刷好机...