使用和利时PLC的锅炉控制源代码
基于PLC的锅炉水温PID控制系统方案

1 设计任务设计一个基于PLC的锅炉水温PID控制系统,要现锅炉水温为80度,稳态误差1度,最大超调1度。
当锅炉的水温低于或者高于80度时,可以通过外部端子的开关或者远程监控,使系统自动进行PID运算,保证最后锅炉的水温能够维持在80度左右。
2 系统硬件设计2.1 器件选择本温度控制系统采用德国西门子S7-200 PLC。
S7-200 是一种小型的可编程序控制器,适用于各行各业,各种场合中的检测、监测与控制的自动化。
S7-200系列的强大功能使其无论在独立运行中,或相连成网络皆能实现复杂控制功能。
因此S7-200系列具有极高的性能/价格比。
S7-200 系列的PLC有CPU221、CPU222、CPU224、CPU226等类型。
此系统选用的S7-200 CPU226,CPU 226集成24输入/16输出共40个数字量I/O 点。
可连接7个扩展模块,最大扩展至248路数字量I/O 点或35路模拟量I/O 点。
13K字节程序和数据存储空间。
6个独立的30kHz高速计数器,2路独立的20kHz高速脉冲输出,具有PID控制器。
2个RS485通讯/编程口,具有PPI通讯协议、MPI通讯协议和自由方式通讯能力。
I/O端子排可很容易地整体拆卸。
在温度控制系统中,传感器将检测到的温度转换成4-20mA的电流信号,系统需要配置模拟量的输入模块把电流信号转换成数字信号再送入PLC中进行处理。
在这里我们选择西门子的EM235 模拟量输入/输出模块。
EM235 模块具有4路模拟量输入/一路模拟量的输出。
它允许S7-200连接微小的模拟量信号,±80mV围。
用户必须用DIP开关来选择热电偶的类型,断线检查,测量单位,冷端补偿和开路故障方向:SW1~SW3用于选择热电偶的类型,SW4没有使用,SW5用于选择断线检测方向,SW6用于选择是否进行断线检测,SW7用于选择测量方向,SW8用于选择是否进行冷端补偿。
所有连到模块上的热电偶必须是一样类型。
采用PLC的锅炉燃烧控制系统

采用PLC的锅炉燃烧控制系统2007-11-17 来源:中国自动化浏览:599[推荐朋友] [打印本稿] [字体:大小]1、引言燃烧控制系统是电厂锅炉主控系统,主要包括燃料控制系统、风量控制系统、炉膛压力控制系统。
目前大部分电厂锅炉燃烧控制系统仍然采用PID 控制。
燃烧控制系统由主蒸汽压力控制和燃烧率控制组成串级控制系统,其中燃烧率控制由燃料量控制、送风量控制、引风量控制构成,各个子控制系统分别不同测量、控制手段来保证经济燃烧和安全燃烧。
如图1所示。
图1 燃烧控制系统结构图2、控制方案锅炉燃烧自动控制系统基本任务是使燃料燃烧所提供热量适应外界对锅炉输出蒸汽负荷要求,同时还要保证锅炉安全经济运行。
一台锅炉燃料量、送风量和引风量三者控制任务是不可分开,可以用三个控制器控制这三个控制变量,但彼此之间应互相协调,才能可靠工作。
对给定出水温度情况,则需要调节鼓风量与给煤量比例,使锅炉运行最佳燃烧状态。
同时应使炉膛内存一定负压,以维持锅炉热效率、避免炉膛过热向外喷火,保证了人员安全和环境卫生。
2.1 控制系统总体框架设计燃烧过程自动控制系统方案,与锅炉设备类型、运行方式及控制要求有关,对不同情况与要求,控制系统设计方案不一样。
将单元机组燃烧过程被控对象看作是一个多变量系统,设计控制系统时,充分考虑工程实际问题,既保证符合运行人员操作习惯,又要最大限度实施燃烧优化控制。
控制系统总体框架如图2所示。
图2 单元机组燃烧过程控制原理图P为机组负荷热量信号为D+dPbdt。
控制系统包括:滑压运行主汽压力设定值计算模块(由热力系统实验获数据,再拟合成可用DCS折线功能块实现曲线)、负荷—送风量模糊计算模块、主蒸汽压力控制系统和送、引风控制系统等。
主蒸汽压力控制系统采用常规串级PID控制结构。
2.2 燃料量控制系统当外界对锅炉蒸汽负荷要求变化时,必须相应改变锅炉燃烧燃料量。
燃料量控制是锅炉控制中最基本也是最主要一个系统。
PLC在锅炉控制系统中的应用

23锅炉汽包水位控制 系统 . 汽包水位是影响锅炉 安全运 行的重要参数 ,水位
过高 ,会破坏汽水分离装 置的正 常工作 ,严重时会导
水泵的开关或者阀门 。不能对它们精确连续调节 ,使
控制手段单调 ,控制精度低 。
2 控制方案原理
2 1燃烧过程控制 .
致蒸汽带水增 多,增加在管壁上 的结垢 和影响蒸汽质 量 。水位过低 ,则会破坏水 循环 ,引起水冷壁管的破
裂 ,严重时会造成千锅 ,损坏 汽包。所以其值过高过 低都可能造成重大事故 。在负荷急剧增加时 ,导致汽 包压 力下降 ,使汽包 内水 的沸点温度下降 ,水的沸腾
P C构成的锅炉控制系统, L 给出系统硬件的构成, 通过 P C实现锅炉的各种控制调节功能。 L
【 关键 词】 锅炉控制 可编程控制器 变频器 节能
Ab ta t Ont a i o ay igteo iia o to y tm o lrtep p r u owadt erfr igpa a sr c: b ss fa lzn rgn l nr l se i b i ,h a e t r r eom n lnt t he n h c s n e p f h h c nr l db LC,n rd c dteb i r o t l y tm a o ss f o t o ue n LC, n rsne e o tol yP e it u e o l sc nr se t t n it h s c mp tr daP o h e os h c o a a a dp ee tdt h
维普资讯
,
。 。“ 崖 穰 。
P C在锅炉控制系统中的应用 L
PLC控制锅炉输煤系统

PLC控制锅炉输煤系统2008-07-15 08:38:11本文已公布到博客频道情感·经历分类摘要本文介绍的是用PLC来对锅炉输煤系统进行控制。
锅炉输煤系统,是指从卸煤开始,一直到将合格的煤块送到煤仓的整个工艺过程,它包括以下几个主要环节:卸煤生产线、煤场、输煤系统、破碎与筛分、配煤系统以及一些辅助生产环节。
本设计中主要研究的是其中的输煤系统部分,即煤块从给煤机传输到原煤仓的过程。
采用了顺序控制的方法。
首先,介绍了PLC的一些基本常识问题。
在具体的设计中,先讲述了PLC设计的一些基本方法及步骤。
详细介绍了西门子公司的型号为S7-200的PLC的一些基本知识。
之后重点讲述了PLC 程序设计中的启动,停止,位置选择及输出报警等问题,也讲了I/O点分配的一些事项并对本设计中的对象进行了地址分配。
在上位机的设计中,我用了工业组态软件——组态王来进行操作界面制作,并使之与PLC进行通讯,使之达到远程控制的功能,中间又重点讲述了制作操作界面的步骤及方法。
关键词: 输煤系统,PLC,I/O,组态王Design of PLC Control SystemThe System of Transport Coal in BoilerAbstractThis paper design for the boiler which is beaten the coal measures together with PLC . The transportation system of coal in boiler is that beginning with unload coal from car, and until to warehouse. The system includes several chief segments: coal does unload manufacture part, coal warehouse, transportation system of coal, fragmentation coal, sift through and other supplementary system. The transportation system of coal is the chief part of this design. In other words is that a course from the machine of supply coal to the warehouse of coal.We chose the method of sequential control in the system. First, the paper tells us some fundamental general knowledge problems of PLC and the fundamental means and step in this design. The type detailed to introduce some fundamental in formations of the PLC of S7-200 of the siemens corporation. Then we can know some problem about PLC programming 's start, stop and output alarm, and also say that I/O touches some matters distributing has been underway the address assignment allocation to the target in native design . In ordinate engine design , I use the industry configuration , and software - configuration monarch comes to manipulate interface manufacturing , and cause it carry on the news dispatch against PLC , causing it attain the remote control meritorious service capacity , move and means manufacturing the operation interface are stress give an account of once more to the middle .Keywords: the system of transport coal in boiler, PLC, I/O, Kingviews目录1 绪论101.1 锅炉系统概述101.2 锅炉输煤系统102 可编程控制器(PLC) 112.1 可编程控制器(PLC)简介112.1.1 PLC的历史112.1.2 PLC的基本概念112.1.3 PLC的基本机构122.1.4 PLC的扫描工作方式122.1.5 PLC的I/O模块142.1.6 PLC的功能及特点142.1.7 PLC的分类152.1.8 PLC的通信联网162.2 PLC控制系统设计步骤及内容17 2.2.1分析评估及控制任务172.2.2 PLC的选择192.2.3 I/O地址分配212.2.4 系统设计212.2.5 系统调试222.3 SIMATIC S7-200 232.3.1 SIMATIC S7-200概述232.3.2 SIMATIC S7-200的CPU型号233 PLC输煤控制系统设计253.1 输煤系统简介253.1.1 系统组成253.1.2 系统目标273.1.3 控制对象及控制方案273.1.4 系统设计的关键问题及解决方案28 3.1.5 系统的I/O分配293.2 系统设计333.2.1 系统启动部分设计333.2.2 系统停止部分设计363.2.3 系统位置选择及输出报警设计374 操作界面设计394.1 工业组态软件——组态王394.1.1 组态王简介394.1.2 关于组态王变量的问题394.1.3 组态王的动画连接424.1.4 本设计中组态王的界面设计45论文总结46致谢47参考文献48附录设计程序49。
和利时DCS在与西门子S7-400PLC通讯中的应用

1 和 0 时D C S —M A C S 与 西 门 子S 7 — 4 O O P L C
法 ,着 重 从和 利 时 O C S的 网络设 置、软 件 配置 的 方面做 了说 明。 以便 在今 后 的生产 调 试 中可以 增 加 其 他 功 能的应 用 ,使 整 个工 厂
自动化 的 功 能 更加 强 大 。
2西门子D P / D P C o u p I 6 r 耦合器简介
西门子 D P / D P C o u p l e r 耦合器用于连接两
个P R OF I B us —DP主站 网络 ,以便在这 两个 主站 网络之 间进行数据通讯 ,并且这两个主站 网络 的通讯速率 ,站地址都可 以不 同, 其数
N e t wo r k &C o mmu n i c a t i o n・ 网络与通信
和 利时 D C S在 与西 门子 S T - 4 0 0 P L C通讯中的应 用
文/ 肖国卫
能更好 ,更安全的配合工作 ,两个 自动化系统 本 ,用 于设 备级 控 制 系统 与分 散 式 I / O 的通 本文 主要 介绍 了在 河 北武 山 水 泥 有 限 公 司 纯 低 温 余 热 电 站 工 程 中,和 利 时 D C S系 统 在 与 西 门 子 ¥ 7 - 4 0 0 P L C都 做 为 D P主 站 时 ,
1 . 2 西门子 s 7 — 4 0 0 P L C 中,C P U模 块 也 决这个 问题 。
支持 的 P r o i f b u s . D P 现 场总 线进行 通讯 。这就
为和 利 时 MA CS和 西 门子 西 门子 s 7 - 4 0 0 P L C 之 间通过 P r o i f b u s — D P现场 总线进 行通讯 创造
PLC在锅炉控制中的应用

PLC在锅炉控制中的应用作者:孙鹏来源:《中国科技博览》2017年第13期[摘要]伴随着我国国民经济发展驶入快车道,以及工业逐步实现现代化,作为现代能源的重要转化设备锅炉,在现代工业中依旧扮演着重要角色。
现阶段为了更加高效的利用能源,促进能源转化,避免环境污染、资源浪费,在锅炉的控制与管理上需要更加科学合理的措施。
可编程序控制器(Programmable logic contoroller)简称PLC,这一依靠计算机终端控制的高科技设备在锅炉控制中扮演着重要角色,但是在实际应用的过程中也存在着一些不足,使得可编程序控制器这一技术难以进一步发展广泛,更有甚造成了不必要的经济损失,所以必须要对PLC 在锅炉控制与管理的应用上认真研究与总结,本文对此进行了深入细致的分析和探讨。
仔细分析了PLC的功能与特性,设计了控制系统的硬件组成。
在实践中,验证了本套控制系统控制性能优良,可靠程度高。
[关键词]PLC、锅炉控制、应用中图分类号:TK223.7 文献标识码:A 文章编号:1009-914X(2017)13-0377-011 PLC及其优越性简介Programmable logic contoroller中文译为可编程序控制器,简称PLC,其核心是微处理器,是工业生产中用于控制的计算机设备,由于可编程序控制器的关键技术就是微机技术,因此PLC既具备逻辑控制性能,又具有数据处理、计算等微机具备的基本功能。
现阶段社区供暖采用的锅炉必须进行精确的实时控制,然而当前仍有部分锅炉设备采用较为落后的继电器逻辑控制。
继电器逻辑控制自动化程度不高,绝大多数操作需要手工完成,所能完成的逻辑控制功能极少,程序的模拟数量不能很好的控制,即使锅炉的开关可以控制,但是其电气线路复杂,性能得不到保证,且维修繁琐,实际锅炉系统控制中每台炉就需要一套继电器控制系统,然而本文所介绍的可编程控制器设计的控制系统则是在集中供热系统的基础上实现了系统的自动控制功能,而且整套系统的控制是经过优化处理。
plc锅炉控制系统的设计(附原理图、外文翻译)
摘要在当今各种工业企业的动力设备中,锅炉仍然是一重要的组成部分。
随着现代化工业的飞速发展,对能源利用率的要求越来越高,作为将一次能源转化为二次能源的重要设备之一的锅炉,其控制和管理随之要求越来越高。
但在我们国家,除了一些大中型锅炉采用了先进的控制技术外,绝大多数中小企业所用的锅炉,如10T/h、20T/h锅炉,大部分还在采用仪表/继电器控制,甚至还是人工操作,已无法满足要求。
据此,本文针对一台10T/h 工业锅炉,提出了一套PLC的控制系统方案。
本文以一台10T/h锅炉的PLC控制系统为背景,理论与实践相结合,详细阐述了集PLC技术,变频器技术,通信技术于一体的先进控制技术在该锅炉控制系统中的应用。
在该系统中,应用了Siemens公司的S7-300系列PLC,根据锅炉的控制特点,分析系统的控制要求,实现给煤自动调节,送风自动调节,引风自动调节,水泵给水的自动调节,根据系统控制要求分析系统所需的PLC配置,以及备控量的I/O点数及I/O口分配,查阅S7-300使用手册在理论上分析确定PLC的组成及使用事项,并用其编程软件Step7设计锅炉控制的梯形图、STL语句及PLC通信网络,实现锅炉的水位三冲量控制、燃烧过程自动控制、蒸汽压力自动控制等功能;基于锅炉运行安全的考虑,该系统中锅炉由PLC控制,PLC、上位机组成一个MPI网,运用Siemens公司的MPI全局通讯技术及WinCC的软件设计,实现锅炉的上位机的冗余控制,关键词:锅炉变频器PLC PID WinCC Step7 MPI 全局通讯AbstractNowadays the boilers are still an important component among various power equipments in industrial enterprises. Along with the fast development of modem industry,high efficient energy utilization is pursued more and more. And the boiler are a kind of Primary equipments for converting raw energy into secondary energy,so their control and supervision is very important for promoting energy utilization efficiency. But in our country,only some big and medium-sized boilers have adopted.Advanced control technique. Most boilers being used by medium and small enterprises,such as 10T/h and 20T/h boilers,are controlled by mete/relays,or even manually. That can not meet demand. In this paper,a control system scheme of PLC+IPC is Proposed,which is aiming at a 10T/h industrial boilers.An advanced boiler control technique composed of PLC,inverter,and communication are detailly described with respect theory and application in this paper,which is based on two PLC control systems of 10T/h boilers in certain plant.The S7-300 series PLC of siemens company is adopted in the boiler control systems. The Step7 programming software is used to design the ladder chart,the STL language and the PLC correspondence network. Automatic control for the boilers has been realized,such as three impulse control for the water level,burning Process control,vapor pressure control. Moreover,an amicable man-machine interface,automatic storage of important boiler run data,and automatic print of reports in need is realized by using the configurations software WinCC of Siemens company. Each boiler in the system is controlled by one PLC respectively. PLC and IPC shaped into a MPI net. By using the MPI overall situation telecommunication technique and the WinCC software of Siemens company redundancy controls of the two IPC are designed for the safety. The automatic control of public facilities such as deoxidization equipment is also realized in the system.Key words: boiler,inverter,PLC,PID目录摘要 (I)ABSTRACT..................................................................................................................... I I 第一章绪论.. (1)1.1工业锅炉控制现状 (1)1.2工业锅炉控制的任务和特点 (1)1.2.1 工业锅炉控制的任务 (1)1.2.2工业锅炉给水自动控制 (2)1.2.3工业锅炉燃烧过程自动控制 (4)1.3PLC控制的优点 (7)1.4本文主要内容 (8)第二章锅炉控制系统的总体设计 (9)2.1系统控制要求 (9)2.2锅炉本体构造 (9)2.3系统设计思想 (10)2.3.1电机控制模式 (10)2.4各主要回路控制策略 (12)2.4.1锅炉生产工艺流程图及汽水系统 (12)2.4.2 主程序框图如下: (14)2.4.3 自动控制系统结构框图: (15)2.4.4 给水调节回路 (15)2.4.5汽包压力调节回路 (16)2.4.6炉膛负压调节回路 (17)2.4.7水位控制程序框图: (19)2.4.8燃烧控制回路程序框图: (20)第三章系统硬件组成 (21)3.1总体结构 (21)3.2系统硬件组成 (21)3.3主要器件选择 (21)3.4系统供电 (34)3.5系统接地 (35)3.6系统运行方式 (36)3.7PLC配置及I/O点分配: (36)3.7.1锅炉给水 (37)3.7.2锅筒 (38)3.7.3给煤 (38)3.7.4鼓风和引风 (40)3.7.5 炉膛 (42)3.7.6 出渣机: (42)3.7.7 蒸汽管路和省煤器: (42)第四章系统软件和设置 (44)4.1PLC软件设计 (44)4.1.1 Step7简介 (44)4.1.2 Step7的PlD功能块 (48)4.1.3 PLC程序总体结构 (53)4.1.4功能模块编程 (55)4.2系统通讯 (60)4.3本章小结 (60)结束语 (61)致谢 (62)参考文献 (63)附录1原理图 (65)附录2外文 (66)附录3翻译 (69)第一章绪论1.1 工业锅炉控制现状目前在我们国内,锅炉仍然是各种工业企业的动力设备中重要的组成部分。
锅炉plc控制
1 概述锅炉是化工、炼油、发电等工业生产过程中必不可少的重要的动力设备。
它所产生的高压蒸汽,既可以作为风机、压缩机、大型泵类的驱动透平的动力源,又可作为蒸馏、化学反应、干燥和蒸发等过程的热源。
但是,除了一些大中型锅炉采用了先进的控制技术,如DCS、FCS,一般的小型锅炉的控制仍较落后,仍在使用DDZ-n型电动单元组合仪表。
燃烧控制手动调节,锅炉的燃烧控制就是依靠人工调节给煤,人工调节风门对锅炉的鼓、引风风量进行控制,实现锅炉燃烧状态控制的目的。
传统的锅炉风机控制系统中,锅炉鼓风、引风控制采用接触器控制,故障率较高,影响了锅炉的正常稳定运行,制约了生产;风量调节控制靠改变风门挡板的开度来实现的(电机恒速运行),能源浪费大;锅炉给水采用手动控制执行器控制,在用汽量波动大时,安全性不够高等。
手动控制给煤量、鼓风量、引风量,不能实现最优风煤比和炉膛负压,司炉工在运行时凭经验对燃烧系统进行调节,不能保证最经济的运行并且劳动强度大;锅炉的燃烧控制系统和水位调节系统是通过对调风板和阀门对风量和给水量,进行控制来实现燃烧控制和水位控制,存在严重的节流损失;水位控制采用单冲量水位调节,水位控制不稳定,存在严重的安全隐患。
即使现在的仪表不少已趋智能化在锅炉上也实现了自动或半自动控制。
但是,由于其不菲的价格、缺乏管理功能等种种原因,其应用受到很大限制。
而现在大多数中小锅炉往往是通过人工调节的方式来完成这个燃烧状态控制调节工作,通过人的感觉器官的识别并经过大脑的分析处理做出动作的决定,借助压力、温度显示仪表来实现锅炉燃烧状态控制。
近年来,随着电力电子技术、计算机技术、自动控制技术的迅速发展,电气传动技术面临着一场历史革命,即交流调速取代直流调速和计算机数字控制技术取代模拟控制技术已成为发展趋势。
电机交流变频调速技术是当今节电、改善工艺流程以提高产品质量和改善环境、推动技术进步的一种主要手段。
变频调速以其优异的调速和起制动性能,高效率、高功率因数和节电效果,广泛的适用范围及其它许多优点而被国内外公认为最有发展前途的调速方式。
PLC控制锅炉温度
PLC控制锅炉温度引言在工业领域中,锅炉是非常重要的设备之一。
它们被广泛应用于许多不同的行业,如发电厂、化工厂、纺织工厂等。
锅炉的基本功能是产生蒸汽或加热水,以满足工业过程中的需要。
控制锅炉温度对于保持工艺的稳定性和安全性非常关键。
传统的锅炉控制方法往往依赖于人工操作和经验,但这种方式存在一些弊端,如控制精度不高、人为错误等。
为了解决这些问题,现代工业中普遍使用PLC(可编程逻辑控制器)技术来自动控制锅炉温度。
本文将介绍PLC控制锅炉温度的原理和应用,并给出一个基本的PLC程序示例。
PLC控制锅炉温度的原理PLC控制锅炉温度的基本原理是通过传感器来检测锅炉的温度,并将检测到的温度值与设定值进行比较。
根据比较结果,PLC会发送信号给执行元件(如电磁阀、电机等)来调节锅炉的燃烧状况,以使得温度保持在设定值附近。
具体来说,PLC控制锅炉温度可以分为以下几个步骤:1.读取锅炉温度传感器的数值。
2.将检测到的温度值与设定值进行比较,计算温度偏差。
3.根据温度偏差,判断执行元件(电磁阀、电机等)应该做出的动作: 开启、关闭或调整。
4.发送控制信号给执行元件,执行相应的动作。
5.循环执行以上步骤,实时监测和控制锅炉温度。
PLC控制锅炉温度的应用PLC控制锅炉温度的应用十分广泛。
下面列举了几个常见的应用场景:1. 发电厂在发电厂中,锅炉是产生蒸汽的关键设备。
通过PLC控制锅炉温度,可以确保发电厂的稳定运行和安全性。
PLC系统可以实时监测并自动调节锅炉的燃烧状态,以达到预定的温度要求。
2. 化工工厂在化工工厂中,锅炉通常用于加热反应器或提供热能。
通过PLC控制锅炉温度,可以精确控制反应器的温度,以提高化学反应的效率和产品质量。
同时,PLC系统可以及时发现并修复锅炉故障,减少停工时间和维修成本。
3. 纺织工厂在纺织工厂中,锅炉通常用于加热染色液或提供蒸汽给纺织机械。
通过PLC控制锅炉温度,可以保证染色工艺的稳定性和一致性,提高产品的色彩均匀度。
和利时网络变量使用说明(5.2.4版本)
网络变量用于不同控制站之间的数据交互,组态方法中包括在其中一个控制站工程中组态写属性的网络变量(发送方),在另一个控制站的工程中组态读属性的网络变量(接收方),具体方法如下,以5#锅炉为例:
1、打开控制器算法组态,点开资源选项,双击“目标设置”,在“网络变量”中选中“支
持的网络变量接口名称”在“支持的网络变量接口名称”中设置为“UDP”,点确定,如下图所示,注意:UDP必须大写。
2、添加网络变量算法函数库
在资源选项中,双击库管理器,添加库函数NetVarUdp_lib.lib,系统将自动添加其他库函数:SysLibSocketForLinux.lib, SysLibCallback.lib, HSNetVarHSIE.lib,如下图所示
3、添加网络变量组。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PROGRAM PLC_PRG()hs_tcp(EN:=TRUE , Address:=5 );success:=hs_tcp.Q ;initial();read_io();read_analog();winterpump_start();summerpump_start();supplypump_start();lifepump_start();v1_start();v2_start();zv04_start();boiler_start();flow_start();to_retain();PROGRAM boiler_start()*zv01 open*)tp_zv01openpulse(IN:= mskv1_b1runstate OR mskv0_b1start, PT:= t#5s);IF(tp_zv01openpulse.Q =TRUE) THENqx_zv01open:=TRUE;ELSEqx_zv01open:=FALSE;END_IF(*boiler1 start*)IF( mskv0_b1start=TRUE AND ix_zv01open=TRUE AND ix_b1lalarm=FALSE AND ix_b1talarm=FALSEAND ix_b1palarm=FALSE AND ix_firealarm=FALSE AND (b_summerpumpstarted=TRUE OR b_winterpumpstarted=TRUE)AND ix_b1burnfault=FALSE AND ix_summerpumpfault=FALSE AND ix_winterpumpfault=FALSE AND ix_supplypumpfault=FALSE)THENqx_b1start:=TRUE;ELSEqx_b1start:=FALSE;(*boiler1 stop*)END_IFPROGRAM flow_start()Timer_flowstart(IN:=TRUE,PT:=T#1s);IF Timer_flowstart.Q THENIF(retain_hall>999999)THENretain_hall:=0;END_IFtemp_dt1:=(t_feed-t_back);temp_dt2:=(t_feed-mskv8_te02);temp_dt:=temp_dt1+temp_dt2;temp_j:=mskv8_ffeed*4.1868;temp_j:=temp_j/3600;mskv8_j:=temp_j;temp_gj:=temp_j/1000000000;retain_hall:=retain_hall+temp_gj;mskv8_hall:=retain_hall;timer_flowstart(in:=FALSE);END_IF(*(4.1868*mskv8_ffeed*(t_feed-t_back)/3600/1000000000); *)PROGRAM from_retain()mskv0_v1auto:=retain_v1auto;mskv0_v2auto:=retain_v2auto;mskv0_supplypumpauto:=retain_supplypumpauto; mskv9_fwinterpump:=retain_fwinterpump;mskv9_fsummerpump:=retain_fsummerpump;mskv9_tjiejuv1:=retain_tjiejuv1;mskv9_fsupplypump:=retain_fsupplypump;mskv9_vv1:=retain_vv1;v_v1:=retain_vv1;mskv9_vv2:=retain_vv2;v_v2:=retain_vv2;PROGRAM initial()IF(b_firstpoweron=TRUE) THENqx_b1start:=FALSE;qx_b2start:=FALSE;qx_b3start:=FALSE;read_analog();t_mesurev1:=t_out;from_retain();b_firstpoweron:=FALSE;END_IFPROGRAM lifepump_start()timer_lifepump(in:=TRUE,pt:=t#2s);IF(timer_lifepump.q=TRUE)THENIF(t_backlife<=38) THENqx_lifepumpa:=TRUE;qx_lifepumpb:=TRUE;END_IFIF(t_backlife>=55)THENqx_lifepumpa:=FALSE;qx_lifepumpb:=FALSE;END_IFtimer_lifepump(in:=FALSE);END_IFPROGRAM read_analog()timer_readanalog(in:=TRUE,pt:=t#100ms);IF(timer_readanalog.Q=TRUE) THENhhe_tout(EN:=TRUE , IN:=iw_tout , HIGH:=50 ,LOW:=-50 ,MODE:=0 ); t:=hhe_tout.out;t_out:=t;mskv8_tout:=t;(**)hhe_tguofu(EN:=TRUE , IN:=iw_tguofu , HIGH:=100 ,LOW:=0 ,MODE:=0); t:=hhe_tguofu.OUT;mskv8_tguofu:=t;hhe_pguofu(EN:=TRUE , IN:=iw_pguofu , HIGH:=1.6 ,LOW:=0 ,MODE:=0); t:=hhe_pguofu.OUT;mskv8_pguofu:=t;hhe_te02(EN:=TRUE , IN:=iw_te02, HIGH:=100 ,LOW:=0 ,MODE:=0); t:=hhe_te02.OUT;mskv8_te02:=t;(**)hhe_tg1(EN:=TRUE , IN:=iw_tg1 , HIGH:=100 ,LOW:=0 ,MODE:=0); t:=hhe_tg1.OUT;mskv8_tg1:=t;hhe_tg2(EN:=TRUE , IN:=iw_tg2 , HIGH:=100 ,LOW:=0 ,MODE:=0 ); t:=hhe_tg2.OUT;mskv8_tg2:=t;hhe_tg3(EN:=TRUE , IN:=iw_tg3 , HIGH:=100 ,LOW:=0 ,MODE:=0 ); t:=hhe_tg3.OUT;mskv8_tg3:=t;hhe_tfeed(EN:=TRUE ,IN:=iw_tfeed , HIGH:=100 ,LOW:=0 ,MODE:=0 );t:=hhe_tfeed.OUT;mskv8_tfeed:=t;t_feed:=t;hhe_tnatatorium(en:=TRUE,in:=iw_tnatatorium,high:=100,low:=0,mode:=0); t:=hhe_tnatatorium.OUT;mskv8_tnatatorium:=t;hhe_tshelter(en:=TRUE,in:=iw_tshelter,high:=100,low:=0,mode:=0);t:=hhe_tshelter.OUT;mskv8_tshelter:=t;hhe_tswimpool(en:=TRUE,in:=iw_tswimpool,high:=100,low:=0,mode:=0); t:=hhe_tswimpool.OUT;mskv8_tswimpool:=t;hhe_tgeothermy(en:=TRUE,in:=iw_tgeothermy,high:=100,low:=0,mode:=0); t:=hhe_tgeothermy.OUT;mskv8_tgeothermy:=t;hhe_tback(en:=TRUE,in:=iw_tback,high:=100,low:=0,mode:=0);t_back:=hhe_tback.OUT;mskv8_tback:=t_back;hhe_tb1co2(en:=TRUE,in:=iw_tb1co2,high:=400,low:=0,mode:=0);t:=hhe_tb1co2.OUT;mskv8_tb1co2:=t;hhe_tb2co2(en:=TRUE,in:=iw_tb2co2,high:=400,low:=0,mode:=0);t:=hhe_tb2co2.OUT;mskv8_tb2co2:=t;hhe_tb3co2(en:=TRUE,in:=iw_tb3co2,high:=400,low:=0,mode:=0);t:=hhe_tb3co2.OUT;mskv8_tb3co2:=t;hhe_tfeedlife(en:=TRUE,in:=iw_tfeedlife,high:=100,low:=0,mode:=0);t_feedlife:=hhe_tfeedlife.OUT;mskv8_tfeedlife:=t_feedlife;hhe_tbacklife(en:=TRUE,in:=iw_tbacklife,high:=100,low:=0,mode:=0);t_backlife:=hhe_tbacklife.OUT ;mskv8_tbacklife:=t_backlife;hhe_ttransa(en:=TRUE,in:=iw_ttransa,high:=100,low:=0,mode:=0);t:=hhe_ttransa.OUT;mskv8_ttransa:=t;hhe_ttransb(en:=TRUE,in:=iw_ttransb,high:=100,low:=0,mode:=0);t:=hhe_ttransb.OUT;mskv8_ttransb:=t;hhe_vv1(en:=TRUE,in:=iw_vv1,high:=100,low:=0,mode:=2);t:=hhe_vv1.OUT;mskv8_vv1:=t;hhe_vv2(en:=TRUE,in:=iw_vv2,high:=100,low:=0,mode:=2);t:=hhe_vv2.OUT;mskv8_vv2:=t;hhe_fsummerpump(en:=TRUE,in:=iw_fsummerpump,high:=100,low:=0,mode:=0); t:=hhe_fsummerpump.OUT;mskv8_fsummerpump:=t;hhe_fwinterpump(en:=TRUE,in:=iw_fwinterpump,high:=100,low:=0,mode:=0); t:=hhe_fwinterpump.OUT;mskv8_fwinterpump:=t;hhe_fsupplypump(en:=TRUE,in:=iw_fsupplypump,high:=100,low:=0,mode:=0); t:=hhe_fsupplypump.OUT;mskv8_fsupplypump:=t;hhe_pfeed(en:=TRUE,in:=iw_pfeed,high:=1.6,low:=0,mode:=0);t:=hhe_pfeed.OUT;mskv8_pfeed:=t;hhe_pnatatorium(en:=TRUE,in:=iw_pnatatorium,high:=1.6,low:=0,mode:=0);t:=hhe_pnatatorium.OUT;mskv8_pnatatorium:=t;hhe_pshelter(en:=TRUE,in:=iw_pshelter,high:=1.6,low:=0,mode:=0);t:=hhe_pshelter.OUT;mskv8_pshelter:=t;hhe_pswimpool(en:=TRUE,in:=iw_pswimpool,high:=1.6,low:=0,mode:=0);t:=hhe_pswimpool.OUT;mskv8_pswimpool:=t;hhe_pgeothermy(en:=TRUE,in:=iw_pgeothermy,high:=1.6,low:=0,mode:=0); t:=hhe_pgeothermy.OUT;mskv8_pgeothermy:=t;hhe_pback(en:=TRUE,in:=iw_pback,high:=1.6,low:=0,mode:=0);t:=hhe_pback.OUT;mskv8_pback:=t;p_back:=t;hhe_psupply(en:=TRUE,in:=iw_psupply,high:=1.6,low:=0,mode:=0);t:=hhe_psupply.OUT;mskv8_psupply:=t;p_supply:=t;hhe_ffeed(EN:=TRUE ,IN:=iw_ffeed , HIGH:=200 ,LOW:=0 ,MODE:=0 );t:=hhe_ffeed.OUT;mskv8_ffeed:=t;timer_readanalog(in:=FALSE);END_IFROGRAM read_io()timer_readio(in:=TRUE,pt:=t#1s);IF(timer_readio.Q =TRUE) THENmskv1_lshuixiang:=ix_lshuixiang;mskv1_hshuixiang:=ix_hshuixiang;mskv1_b1runstate:=ix_b1runstate;mskv1_b2runstate:=ix_b2runstate;mskv1_b3runstate:=ix_b3runstate;mskv1_summerpump:=ix_summerpump;mskv1_winterpump:=ix_winterpump;mskv1_supplypump:=ix_supplypump;mskv1_lifepumpa:=ix_lifepumpa;mskv1_lifepumpb:=ix_lifepumpb;mskv1_b1lalarm:=ix_b1lalarm;mskv1_b2lalarm:=ix_b2lalarm;mskv1_b3lalarm:=ix_b3lalarm;mskv1_b1talarm:=ix_b1talarm;mskv1_b2talarm:=ix_b2talarm;mskv1_b3talarm:=ix_b3talarm;mskv1_b1palarm:=ix_b1palarm;mskv1_b2palarm:=ix_b2palarm;mskv1_b3palarm:=ix_b3palarm;mskv1_b1burnfault:=ix_b1burnfault;mskv1_b2burnfault:=ix_b2burnfault;mskv1_b3burnfault:=ix_b3burnfault;mskv1_zv01open:=ix_zv01open;mskv1_zv01close:=ix_zv01close;mskv1_zv02open:=ix_zv02open;mskv1_zv02close:=ix_zv02close;mskv1_zv03open:=ix_zv03open;mskv1_zv03close:=ix_zv03close;mskv1_winterpumpfault:=ix_winterpumpfault;mskv1_firealarm:=ix_firealarm;timer_readio(in:=FALSE);END_IFPROGRAM summerpump_start()heh_summerpump(EN:=TRUE , IN:=mskv9_fsummerpump ,HIGH:=100 ,LOW:= 0, MODE:=0); qw_fsummerpump:=heh_summerpump.OUT;(**)timer_summerpump(in:=TRUE,pt:=t#2s);IF(timer_summerpump.Q=TRUE) THENIF(mskv0_summerpump=TRUE)THENqx_summerpump:=TRUE;ELSEqx_summerpump:=FALSE;END_IFtimer_summerpump(in:=FALSE);END_IF(**)timer_summerpumpstart(in:=ix_summerpump,pt:=t#60s);IF(timer_summerpumpstart.Q =TRUE) THENb_summerpumpstarted:=TRUE;ELSEb_summerpumpstarted:=FALSE;END_IFPROGRAM supplypump_vf()(*Variable frequency*)timer_pidsp(in:=TRUE,pt:=t#30s);IF(timer_pidsp.Q =TRUE) THENdp:=0.13-p_supply;ddp:=dp-dp_oldsp;dp_oldsp:=dp;IF(dp>0.005 OR dp<-0.005) THENf:=kp_fsp*ddp+ki_fsp*dp;IF(f>10)THENf:=10;END_IFIF(f<-10)THENf:=-10;END_IFf_supplypump:=f_supplypump+f;END_IF(**)IF(f_supplypump>=100) THENf_supplypump:=100;END_IFIF(f_supplypump<=0) THENf_supplypump:=0;END_IFtimer_pidsp(in:=FALSE);END_IFmskv9_fsupplypump:=f_supplypump;heh_supplypump(EN:=TRUE , IN:=mskv9_fsupplypump , hIGH:=100 ,LOW:= 0, MODE:=0); qw_fsupplypump:=heh_supplypump.OUT;PROGRAM to_retain()retain_v1auto:=mskv0_v1auto;retain_v2auto:=mskv0_v2auto;retain_supplypumpauto:=mskv0_supplypumpauto;retain_fwinterpump:=mskv9_fwinterpump;retain_fsummerpump:=mskv9_fsummerpump;retain_tjiejuv1:=mskv9_tjiejuv1;retain_vv1:=mskv9_vv1;retain_vv2:=mskv9_vv2;ROGRAM v1_auto()timer1_pidv1(in:=TRUE,pt:=t#10s);IF(timer1_pidv1.Q =TRUE) THENt:=0.7*t_out+0.3*t_oldout;t_oldout:=t;timer1_pidv1(in:=FALSE);END_IF(*end timer1_pidtv001*)(*begin timer2_pidtv001*)timer2_pidv1(in:=TRUE,pt:=t#30s);IF(timer2_pidv1.Q =TRUE) THENt_sumv1:=t_sumv1+(t-t_mesurev1)/120;IF(t_sumv1>t_conv1) THENt_sumv1:=0;t_mesurev1:=t;END_IFIF(t_sumv1<-t_conv1) THENt_sumv1:=0;t_mesurev1:=t;END_IFtimer2_pidv1(in:=FALSE);END_IFt_y:=mskv9_tjiejuv1-xielv*t_mesurev1;(*end timer2_pidtv001*)(*begin timer3_pidtv001*)timer3_pidv1(in:=TRUE,pt:=t#120s);IF(timer3_pidv1.Q =TRUE) THENdt1:=(t_feed+t_back)/2-t_y;ddt:=dt1-dt_oldv1;dt_oldv1:=dt1;IF(dt1>0.2 OR dt1<-0.2) THENv:=kp_vv1*ddt+ki_vv1*dt1;IF(v>10)THENv:=10;END_IFIF(v<-10)THENv:=-10;END_IFv_v1:=v_v1+v;IF(v_v1>99) THENv_v1:=99;END_IFIF(v_v1<1)THENv_v1:=1;END_IFEND_IFtimer3_pidv1(in:=FALSE);END_IF(*end timer3_pidtv001*)PROGRAM v1_start()IF(mskv0_v1auto=TRUE) THENv1_auto();mskv9_vv1:=v_v1;qw_temp:=mskv9_vv1;heh_v1(en:=TRUE,in:=qw_temp,high:=100,low:=0,mode:=1);qw_vv1:=heh_v1.OUT;ELSEqw_temp:=mskv9_vv1;heh_v1(en:=TRUE,in:=qw_temp,high:=100,low:=0,mode:=1);qw_vv1:=heh_v1.OUT;END_IFPROGRAM winterpump_start()heh_winterpump( EN:=TRUE ,IN:=mskv9_fwinterpump , hIGH:=100 , LOW:=0 , MODE:=0 ); qw_fwinterpump:=heh_winterpump.OUT;(**)timer_winterpump(in:=TRUE,pt:=t#2s);IF(timer_winterpump.Q =TRUE) THENIF(mskv0_winterpump=TRUE)THENqx_winterpump:=TRUE;ELSEqx_winterpump:=FALSE;END_IFtimer_winterpump(in:=FALSE);END_IF(**)timer_winterpumpstart(in:=ix_winterpump,pt:=t#60s); IF(timer_winterpumpstart.Q =TRUE) THENb_winterpumpstarted:=TRUE;ELSEb_winterpumpstarted:=FALSE;END_IFPROGRAM zv04_start()timer_zv04(in:=TRUE,pt:=t#2s);IF(timer_zv04.Q =TRUE)THENIF(p_back>1.8)THENqx_zv04:=TRUE;END_IFIF(p_back<1.5)THENqx_zv04:=FALSE;END_IF;timer_zv04(in:=FALSE);END_IF。