欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    plc的交通灯设计.doc

    • 资源ID:1082293       资源大小:200.50KB        全文页数:14页
    • 资源格式: DOC        下载积分:10积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要10积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    plc的交通灯设计.doc

    1、第一章 PLC锅炉控制程序概述一个锅炉监控系统主要包含一下几个部分:设备状态的采集;系统状态的采集;锅炉和各种执行机构的控制。设备状态的采集主要是锅炉输出的状态点,循环泵和补水泵给出的状态点,以及水箱等其他设备的状态点。锅炉输出的状态点主要包括锅炉的运行状态点、锅炉故障状态点、锅炉出水温度、锅炉回水温度、锅炉排烟温度;循环泵和补水泵以及辅助其工作的变频设备的状态点一般是由水泵控制柜或变频控制柜中集中取出的。水箱的液位状态一般直接送到PLC控制柜。系统状态的采集根据锅炉系统的不同有差别。一般来讲,目前设计的系统主要分为一次侧与二次侧。一次侧的是锅炉水循环系统,二次侧水循环系统常用的换热器有两种一

    2、种是板式换热器,另一种是容积式换热器。一次侧采集的状态包括一次侧供水温度、一次侧回水温度、一次侧供水压力、一次侧回水压力;二次侧采集的状态包括二次侧供水温度、二次侧回水温度、二次侧供水压力、二次侧回水压力;如果需要根据室外温度实现锅炉监控系统的自动控制那么还需要增加室外温度的采集。锅炉和各种执行机构的控制主要是对锅炉本体的启停控制和各种电动阀门的控制。这里所说的对锅炉本体的启停控制主要是通过锅炉自身的控制器提供的控制点控制锅炉。锅炉本体自带的控制器这里暂不介绍。锅炉提供的控制点是开关量控制点,一般是常开点。根据影响锅炉运行的状态点的组合条件,给出允许锅炉启动信号。简单的说就是需要什么样的条件锅

    3、炉才能启动或停止。阀门的控制有两种方式,一种是开关量控制阀门打开与关闭,另一种是模拟量输出控制阀门打开与关闭。图表 1 系统图第二章 PLC程序设计第一节 程序结构本文中所采用的PLC是西门子公司的产品S7-200系列,CPU的型号是cpu226cn.西门子PLC编程工具的使用可以参照西门公司的程序使用手册或者在程序中按F1调出帮助文件参考。下面介绍一下PLC程序的主要结构。首先看图表2PLC主程序初始化数据转换与采集锅炉控制自动控制通讯端口设置预置常数锅炉状态采集系统状态采集数据转换公式采集滤波发送中断接收中断图表 2 PLC程序结构西门子PLC程序是面向结构的程序语言,结构中的主体子程序想

    4、要运行必须在主程序中注册。本文中的程序结构如图2所示,主程序中包括了初始化子程序,数据转换子程序,锅炉控制子程序,自动控制子程序,发送中断与接收中断。初始化子程序的作用是通讯端口的设置和一些程序中需要预置的一些常数。比如数据转换运算中用到的公式里面的常数或者很长一段时间不需要改动的数值。数据转换子程序负责将采集模块采集的变量转换成我们需要的数据格式,包括采集和转换2个步骤。锅炉控制子程序控制锅炉的启动和停止,以及相关的状态输入和输出。自动控制子程序根据自动控制的理论设计完成锅炉的自动控制。具体的控制方案需要与实际使用的图纸以及设计需求相结合,总结出一套稳定性和先进性的控制方法。发送中断和接收中

    5、断子程序用于通信时的信息发送与接收。第二节 PLC内存介绍既然我们知道了需要采集的数据类型和大小,以及设置数据需要得内存大小,那么我们就能够把内存的使用标准化,即是哪类数据就用哪类规定的内存块。这样作的好处是,即使预先不知道一个内存地址的实际意义,也能知道这个地址显示的是何种数据。下面我们详细介绍这块内容。首先我们了解一下PLC内存的地址范围,以西门子S7-200系列PLC为例。图表 3 位地址范围图表 4 字节地址范围图表 5 字地址范围图表 6 双子地址范围我们看到PLC的内存分为这样几个区域I 离散输入和映象寄存器Q 离散输出和映象寄存器M 内部内存位 SM 特殊内存位(SM0 - SM

    6、29为只读内存区)V 变量内存 T 定时器当前值和定时器位C 计数器当前值和计数器位HC 高速计数器当前值AI 模拟输入AQ 模拟输出 AC 累加器寄存器L 局部变量内存S SCR 每个区域的具体功能可以参看西门子编程工具自带的帮助文件。第三节 内存标准化分配下面我们结合实际的例子讲清楚内存如何标准化。PLC内存中的I区、Q区、AI区和AQ区使用范围的大小一般来说是根据我们在工程中的实际需要配置的。我们工程中的数字量状态采集用I区,如锅炉的故障状态、水泵运行状态、水箱液位等等这些只有通断信号,没有范围变化的信号。同理,Q区是数字量的输出,如锅炉的启停、阀门的开关控制信号等等;AI区和AQ区分别

    7、是采集和输出连续变化的模拟量通道,例如锅炉排烟温度、电动阀门开度、锅炉压力、系统压力等等。这些地址的分配是由PLC自动分配的,可以已经连接的PLC上读出。内存的标准化主要是除I/Q/AI/AQ等区域的标准化。从现实出发,我们工程中经常用到的就是CPU222、CPU224和CPU226这三个型号的 PLC。如果想让我们的程序在这三个型号的CPU中都能运行,那么我们就必须选内存范围最小的CPU, 内存范围最小的是CPU222。我们就把CPU222中的程序当作模板。CPU222中VD区的范围是02044,MD的范围是028,AC的范围是03。我们之所以用VD/MD/AC区来说明范围大小是因为D表示D

    8、ouble Word是32位的地址,而1位位地址(如V0.0)、8位字节地址(如VB0)、16位字地址(如VW0)都是包含在这个范围内的。了解了上述内容后,我们开始进入本中最主要的部分格式化标准。一、锅炉及其相关设备的状态格式:锅炉和阀门的控制使用的是开关量输出,锅炉有启动与停止两种动作,阀门也是开启和关闭两种动作。所以我们可以把这些控制动作归结在一个字节内表示。如下表:控制字节定义如下: 位说明锅炉启动锅炉停止阀门开启阀门关闭允许启动位次序01234567图表 7 控制字节定义 位说明手动启动手动停止自动启动自动停止自动手动位次序01234567图表 8 自动手动控制位说明液位状态低限报警液

    9、位状态高限报警锅炉房燃气报警计量间燃气报警位次序01234567图表 9 报警输出字节反馈字节的定义如下: 位说明锅炉运行状态锅炉故障流水开关状态阀门当前状态水泵运行状态水泵故障位次序01234567图表 10 状态字节定义 位说明液位状态低限报警液位状态高限报警锅炉房燃气报警计量间燃气报警位次序01234567图表 11 报警输入字节锅炉的数量是有限的,于是我们把控制字节和状态字节的使用做数量上的限定和分配。目前的情况来看,我们一个PLC能控制的锅炉数量最多是10台,理由是我们的PLC上I/O数量是有限的。所以我们把控制字节规定使用10个字节,状态字节规定10个字节,预留30个字节。这样我们

    10、就标准化了锅炉的控制。地址范围规定从VB0-VB49,其中VB0-VB9为锅炉控制字节,MB30-MB39为自动或手动控制字节,VB10-VB19为影响锅炉运行的状态字节。VB20-VB24为报警输出字节,VB25-VB29为报警输入字节,VB40-VB49为预留字节备用。二、各种模拟的输入输出标准化接下来我们介绍锅炉控制系统中的各种模拟量如何配置内存。我们的锅炉系统中存在大量的模拟量信号,这些信号一般来说输入都是由模拟量采集模块将连续的变化量(大部分为420mA的电流信号,05V或010V的电压信号)转换离散的数字量,存储到PLC内存里;输出是由模拟量输出模块将我们要输出的存储在内存中的数字

    11、离散信号转换为电压信号或者电流信号。无论是内存中采集上来的数值还是我们输出的数值都不是我们得到的理想的数值,还需要转换程序将这些量转换成可读懂的数据。数据的转换我们放在下面的章节介绍。锅炉控制系统中的模拟量输入值主要是:锅炉出水温度、锅炉回水温度、锅炉排烟温度、锅炉出水压力、锅炉回水压力、一次供水压力、一次回水压力、一次供水温度、一次回水温度、采暖供水温度、采暖回水温度、采暖供水压力、采暖回水压力、生活供水温度、生活回水温度、生活供水压力、生活回水压力、水流量、供热量、阀门开度、室外温度、变频器频率等等。根据设计院设计的不同,所需要采集的数据种类不同。锅炉控制系统中的模拟量输出值主要是:各中需

    12、要模拟量控制的阀门开启值和变频器的给定频率。了解了上述内容,我们就能够标准化内存使用,具体的内存分配如下所述:考虑到这些模拟量经过程序转换之后一般为实数类型(REAL)的数值,所以每个数值存储到内存后所占用的内存空间为4个字节,即32位的数值。那么我们可以这样标准化采集量。1、锅炉相关的数值内存分配锅炉出水温度(4个字节)锅炉回水温度(4个字节)锅炉出水压力(4个字节)锅炉回水压力(4个字节)锅炉排烟温度(4个字节)一共位20个字节或者说5个双字。因为一个PLC控制锅炉台数的上限是10台,所以总供需要200个字节。于是我们把VB100-VB299的内存段分配给与锅炉相关的采集值。详细的分配是:

    13、 数值名称锅炉台数锅炉出水温度锅炉回水温度锅炉出水压力锅炉回水压力锅炉排烟温度第一台VD100VD104VD108VD112VD116第二台VD120VD124VD128VD132VD136第三台VD140VD144VD148VD152VD156第四台VD160VD164VD168VD172VD176第五台VD180VD184VD188VD192VD196第六台VD200VD204VD208VD212VD216第七台VD220VD224VD228VD232VD236第八台VD240VD244VD248VD252VD256第九台VD260VD264VD268VD272VD276第十台VD280V

    14、D284VD288VD292VD296图表 12 锅炉相关模拟量采集存储地址2、一次侧采集值内存分配一次侧采集值总共只有4个一次出水温度(4个字节)一次回水温度(4个字节)一次出水压力(4个字节)一次回水压力(4个字节)共16字节,制定分配区域 VB300-VB399 数值名称一次出水温度一次回水温度一次出水压力一次回水压力起始位置VD300VD304VD308VD312图表 13 一次侧模拟量采集存储地址3、采暖采集值内存分配采暖出水温度(4个字节)采暖回水温度(4个字节)采暖出水压力(4个字节)采暖回水压力(4个字节)采暖区电磁阀开启值(4个字节)不同的系统设计不同,有些系统分为不同的采暖

    15、区域,不过数量上最多不超过10个区域。每个区域共使用20个字节所占内存空间为200字节。因此我们制定分配给采暖数据的内存区域为VB400-VB599 数值名称采暖区采暖出水温度采暖回水温度采暖出水压力采暖回水压力阀门开度采暖一区VD400VD404VD408VD412VD416采暖二区VD420VD424VD428VD432VD436采暖三区VD440VD444VD448VD452VD456采暖四区VD460VD464VD468VD472VD476采暖五区VD480VD484VD488VD492VD496采暖六区VD500VD504VD508VD512VD516采暖七区VD520VD524VD

    16、528VD532VD536采暖八区VD540VD544VD548VD552VD556采暖九区VD560VD564VD568VD572VD576采暖十区VD580VD584VD588VD592VD596图表 14 采暖区模拟量采集存储地址4、生活热水采集值内存分配生活热水出水温度(4个字节)生活热水回水温度(4个字节)生活热水出水压力(4个字节)生活热水回水压力(4个字节)生活热水区电磁阀开启值(4个字节)不同的系统设计不同,有些系统分为不同的生活区域,不过数量上最多不超过10个区域。每个区域共使用20个字节所占内存空间为200字节。因此我们制定分配给生活热水数据的内存区域为VB600-VB79

    17、9数值名称生活区生活热水出水温度生活热水回水温度生活热水出水压力生活热水回水压力阀门开度生活一区VD600VD604VD608VD612VD616生活二区VD620VD624VD628VD632VD636生活三区VD640VD644VD648VD652VD656生活四区VD660VD664VD668VD672VD676生活五区VD680VD684VD688VD692VD696生活六区VD700VD704VD708VD712VD716生活七区VD720VD724VD728VD732VD736生活八区VD740VD744VD748VD752VD756生活九区VD760VD764VD768VD772

    18、VD776生活十区VD780VD784VD788VD792VD796图表 15 生活区模拟量采集存储地址5、其他采集值内存分配这里我们考虑剩余的模拟采集量种类已经不多,而且每类数量也不多。暂设计每类最多5个数值,分配20个字节。而且暂时考虑的种类是:水流量(4个字节)共5个,占用20字节;供热量(4个字节)共5个,占用20字节;室外温度(4个字节)共5个,占用20字节;变频器频率(4个字节)共5个,占用20字节;上述四个模拟量值只用到变频器频率VB879如需其他采集值内存分配地址顺延.总分配区域为VB800-VB899水流量: 值名称流量一流量二流量三流量四流量五起始位置VD800VD804V

    19、D808VD812VD816图表 16 水流量模拟量采集存储地址供热量: 值名称供热量一供热量二供热量三供热量四供热量五起始位置VD820VD824VD828VD832VD836图表 17 供热量模拟量采集存储地址室外温度: 值名称室外温度一室外温度二室外温度三室外温度四室外温度五起始位置VD840VD844VD848VD852VD856图表 18 室外温度模拟量采集存储地址变频器频率: 值名称变频器频率一变频器频率二变频器频率三变频器频率四变频器频率五起始位置VD860VD864VD868VD872VD876图表 19 变频器频率模拟量采集存储地址6、模拟输出内存分配模拟量输入分配完后我们开

    20、始为输出用的模拟量分配内存。在锅炉控制系统中,通过模拟两控制的设备无非两种,一种是各种电动阀门,另一种是变频器的频率给定。而且,这两类设备的数量也是非常有限的。我们这里考虑各种阀门总共数量最多为10个,变频器数量最多10个。因此,对于模拟量输出所占用的内存分配共需要内存40个字节,考虑到可能有额外的设备需要控制,所以总共分配100个字节,范围从VB900-VB999电动阀门开启值: 值名称阀门一阀门二阀门三阀门四阀门五起始位置VW900VW904VW908VW912VW916值名称阀门六阀门七阀门八阀门九阀门十起始位置VW920VW924VW928VW932VD936图表 20 模拟量输出存储

    21、地址变频器给定值: 值名称变频器一变频器二变频器三变频器四变频器五起始位置VW940VW944VW948VW952VW956值名称变频器六变频器七变频器八变频器九变频器十起始位置VW960VW964VW968VW972VW976图表 21 模拟量输出存储地址三、通信程序内存标准化本文使用的是西门子PLC自由口协议(西门子产品的通信端口设置详见软件帮助或产品手册),尽管不同公司产品的通信口用法不同,但还是有规律可循的。通信程序一般分为三步分:1、端口设置部分;2、发送子程序部分;3、接收子程序部分。我们只要在制定的内存填上需要的数据,然后启动通信端口开始通信就可以传输数据了。详细的通信程序介绍我

    22、们放在下面的章节,此处我们先给通信程序分配固定的PLC内存。在锅炉控制系统中,通信的主要目的是为了上传采集数据和下传设备的给定值(设定值)。而且通信协议不是很复杂,因此,我们给每个需要和PLC通信的设备分配200个字节的内存。考虑用到的设备数量最多不超过5个,我们分配VB1000VB1999,MB0MB4作为这个5个设备的内存使用区。实际使用的时候,我们经常会遇到几个设备使用相同的发送区,发送相同的命令。所以这段内存可以灵活使用。四、初始化程序内存使用标准化初始化程序的作用有两个,一个是配置通信端口,另一个是设置初始值。根据经验,初始化区域分配500个字节的内存已经足够使用。所以,我们将VB2

    23、000-VB2499段的内存分配给初始化程序。五、自动控制程序内存使用由于每个系统的设计和结构不同,因而自动控制程序的内容也不同。我们这里只能根据以往经验分配1500个字节,范围VB2500VB3999的内存地址给自控程序使用。对于一般的锅炉控制系统已经足够使用。自控程序包括:数据转换程序和锅炉控制程序。建议VB2500-VB2699作为锅炉控制程序使用,数据转换使用VB3000-VB3999。我们在代码分析中详细讲解这两个程序。第四节 代码分析与例程讲解第一部分 数据转换程序首先我们介绍一下为什么要进行数据的转换。原因就是我们从变送器传送到采集模块的信号为电压信号或电流信号,这些信号经过模数

    24、转换程序把原来连续的物理量转换为可被PLC内存存储的离散的数字量。内存中的数字量的形式也不是我们平常使用的格式,内存中一般为16位的二进制数据,而我们在显示设备上需要的是十进制的数值。所以就必须通过转换程序把二进制数值转换为我们需要的十进制数值。下面我们结合代码介绍数据转换程序一、PLC模拟量模块转换程序1、程序代码TITLE=PLC模块数据转换程序Network 1 / 采样 :这段代码主要作用是把16位(一个字)的数据转换为实数类型的数据,并且启动计数器和累加器LD SM0.0ITD LW0, LD26 /16整数转换为32位整数DTR LD26, LD30 /32位整数转换为实数+R L

    25、D30, LD12 /启动累加器INCW LW16 /启动计数器Network 2 / 滤波与转换:这段代码通过一系列运算进行数据滤波,并且将数值转换为可读性很好/ 的十进制数据。同时累加器与计数器归零便于下一次采集使用。LDW= LW16, LW6 /比较当前采样次数是否等于预制采样次数ITD LW6, LD42DTR LD42, LD46 /将采样次数有16位整数转换位32位实数MOVR LD12, LD18/R LD46, LD18 /求出采样平均值MOVR 0.0, LD12 /清空累加器MOVW +0, LW16 /清空计数器-R 6400.0, LD18*R LD8, LD18 /

    26、转换为十进制数值+R LD2, LD18 /修正Network 3 LD SM0.0MOVR LD18, LD22 /输出Network 4 LD SM0.0 /返回主程序CRET我们可以注意到,这里所使用的内存全部是L内存的。我们这样做的目的是想把这段程序作为一个可以被其他程序使用的子程序,所以使用的是局部变量。子程序容易移动;我们可以单独挑出一个功能,并将其复制至其他程序中,而无需或很少需要重复操作。注释:V内存的使用限制子程序的可移植性,因为一个程序的V内存地址赋值可能与另一个程序中的赋值发生冲突。相反,将局部变量表用于所有地址赋值的子程序却很容易移动,因为不必担心会出现编址冲突。(详细

    27、说明参照西门子公司编程工具帮助文件)2、变量说明输入:需要转换的采集量(16位整数)修正值:对转换后的数据做修正(实数)采样次数:采样的次数(16位整数)比例值:通过另外一个子程序计算出来的数值(实数)累加器:一个临时存储累加值的内存(实数)计数器:一个临时存储当前采样次数的地址(16位整数)Temp_hits_av:临时存储输出值的地址(实数)输出:我们需要的结果(实数)3、求比例值的子程序程序代码:TITLE=求比例值的子程序Network 1 / 根据实际值的上下限和 PLC采集值的上下限,计算出实际值与采集值的比例LD SM0.0MOVR LD0, LD20-R LD4, LD20 /

    28、实际值上限减去实际值下限,求出差值1MOVR LD8, LD24-R LD12, LD24 /采集值上限减去采集值下限,求出差值2MOVR LD20, LD16/R LD24, LD16 /差值1除以差值2求出比例值Network 2 LD SM0.0CRET /返回主程序4、比例值计算子程序变量说明H:实际值上限(实数)L:实际值下限(实数)H_PLC:PLC采集值上限(实数)L_PLC:PLC采集值下限(实数)Outcome:输出的比例值(实数)H和L表示的是实际值上下限,所谓实际值就是变送器的量程范围。例如:一个温度传感器的量程是0200,那么将200赋值给H,0赋值给L即可。H_PLC

    29、和L_PLC是PLC的采集值,范围一般在6400.032000.0。Outcome:这个是计算结果,也就是实际值与采集值的比例。二、RM417采集模块数值转换程序RM417模块是我们经常用到的一种模拟量采集模块技术指标如下:通道数:单端16通道输入信号范围:05V;5V;0-10V;0-20mA;4-20mA;20mA。A/D转换分辨率:12BitA/D转换时间:20kHZ(单通道)处理芯片:AT89C2051通讯方式:RS485接口,2线制驱动距离:1200米通讯格式:9600-8N1 通讯协议:被动查询输出数据格式:12Bit 16进制数据输出稳定度:1 Bit隔离电压:500V供电电压:

    30、DC24V1% 100mA端口瞬间电压保护:10V端口RC滤波:20kHZ从技术指标中我们可以看出,这个模块的输出数据格式是12Bit 16进制数据,而我们需要的是实数型的数据,所以必须将模块输出数据转换为我们需要的数据格式。1、程序代码:TITLE=RM417数据转换程序Network 1 LD SM0.0MOVW LW0, LW12 /输入值-I LW2, LW12 /模块采集值下限ITD LW12, LD14DTR LD14, LD18MOVR LD18, LD8 /dived是模块采集值上下限差值/R LD4, LD8 /输出结果Network 2 / 返回主程序LD SM0.0CRE

    31、T / 返回主程序2、RM417数据转换程序变量说明输入:模块采集的数据(16位整数)I_ module:模块采集数据的下限(16位整数)Dived:模块采集数据上下限的差值(16位整数)输出:是一个比例值,表示在实际值范围内的比例。比如温度范围0200,那么,输出200实际的温度值。三、转换程序的使用图表 22 PLC模拟量输入转换图表 23 RM417模拟量转换通过将各种需要的数值导入数据转换功能块,我们就可以直接得到结果。当然,这些需要导入的数据是我们预先要计算出来或在初始化程序中设置的。要注意的问题是,RM417通过通信接收后的数据是ASCII码,需要转化为2进制的数据。上面的文章提到

    32、了过,通信内存区使用VB1000-1999;初始化内存使用VB2000-VB2500;数据转换内存使用VB3000-VB3999。所以,我们只要知道这段内存的地址,即使没有注释也可以了解这段内存的作用。第二部分 通信程序我们这里介绍的通信程序,主要是PLC和RM417之间的通信。PLC与其他设备的通信程序和这个程序大同小异,只是发送区的配置不同。一、协议介绍上位机下传4个ASCII字母: 0 1 R 其中为前导符,01为RM417的模块号,R为读数据,则RM417返回66个ASCII字符,共66个字节,这66个字符是16个通道的数据,每4个ASCII字符为一个通道,共416 = 64个字符,最

    33、后两个字符为校验和。每个通道的4个ASCII码字符,是一个十六进制字,例如:收到30 45 45 45四个字节显示为0FFF,对应0FFFH十六进制数,也就是十进制4095,如果输入范围选择为0 5V,说明通道上加的是5V信号。校验和是收到的64个字节异或的结果,这个结果是十六进制的一个字节,用2个ASCII字节显示。例如:收的前64个字节的异或结果为7AH,则校验和的两个字节为37 41,显示为7A。在RS485的端子处,有一个跳线,用于选择终端匹配电阻,当模块处于RS485双绞线的终点时,应使其短路,选择使用终端匹配电阻,当模块处于RS485线的中间位置时,不要短路跳线。二、通讯程序代码分

    34、析按功能介绍各个组成部分通信需要的各种参数也在初始化中设置。以下为通信设置的程序:Network 1 / 通讯设置/ Network CommentLD SM0.1 /第一次扫描执行初始化MOVB 16#09, SMB30 /将SMB30(通信口1)设置为十六进制的09即00001001绿色部分00代表:无校验蓝色部分0代表:每个字符8个数据位红色部分010代表:通信速率为9600bps黄色部分01代表:使用自由口协议MOVW +0, VW1000 /将计数器VW1000清零ATCH INT0, 8 /连接中断0,中断事件8端口 0:接收字符 MOVB 0, SMB35 /设置定时中断 1 的

    35、时间间隔(从 1 至 255,以 1 毫秒为增量)。ENI /中断允许(ENI)指令全局性启用所有附加中断事件进程。Network 2 LD SM0.0 S M0.0, 1 /设置通信允许 本程序中使用2个中断,一个发送中断int_1和一个接受中断int_0Int_0 /接收中断LD SM0.0DTCH 11 /中断指令取消中断事件(EVNT11定时中断1)与所有中断例行程序之间的关联,并禁用中断事件。R M0.0, 1 /禁止通信Network 2 LD SM0.0+I +1, VW1000 /接收字符个数的计数器+D +1, AC1MOVB SMB2, *AC1 /接收字符Network

    36、3 /当接收字符到达指定个数66个时把计数器清零并置位通信允许位,中断返回LDW= +66, VW1000 MOVW +0, VW1000S M0.0, 1CRETIInt_1 /发送中断 Network 1 LD SM0.0MOVD &VB1100, AC1 MOVB 4, VB1010 /设置发送字节个数MOVB , VB1011 /发送的第一个字节MOVB 0, VB1012 /发送的第二个字节MOVB 1, VB1013 /发送的第三个字节MOVB R, VB1014 /发送的第四个字节XMT VB1010, 0 /传送(XMT)指令在自由端口模式中使用,通过通讯端口0传送从地址VB3

    37、110开始的数据。DTCH 11 /中断指令取消中断事件(EVNT11定时中断1)与所有中断例行程序之间的关联,并禁用中断事件。R M0.0, 1 /禁用通信Network 2 LD SM0.0 /中断返回CRETI同时还要为通信设置一个时间,这个设置要在主程序中完成。Network 1 / 通讯设置LD SM0.0A M0.0 /通信允许位A SM0.5 /在 1 秒钟的循环周期内,接通为 ON 0.5 秒/关断为 OFF 0.5 秒EUMOVB 0, VB1100 /数据接收区MOVB 5, SMB35 /定时中断 1 的时间间隔(从 1 至 255,以 1 毫秒为增量)。ATCH INT

    38、1, 11这里接收区的地址可以根据自己的需要改变,我们的通信内存分配位VB1000-VB1999,属于这段的内存可以作为接收字符使用。习惯上我们规定每个通信端口分配200个字节,100个作为发送段,100个作为接收段。如果发送或者接收的字符数量大于100,那么可以扩大区段的范围。第三步分 锅炉控制程序锅炉控制程序也是控制系统的核心部分。锅炉控制程序的目的是保障锅炉的正常工作,故障时立即报警,并准确判断报警位置,为锅炉操作人员提供最大的方便。锅炉控制系统分为两种方式:自动控制与手动控制手动控制是最基本的控制功能,熟悉了手动控制的方式与方法对我们理解锅炉的自动控制有非常大的帮助。一、锅炉的启动和停

    39、止需要控制的设备主要有锅炉燃烧机、锅炉碟阀、变频器、三通调节阀等等。锅炉燃烧机控制锅炉的启动和停止,锅炉碟阀控制锅炉水循环的通断,通过变频器可以控制泵的运转实现系统水流的循环,三通阀的设置主要是为了节能的需要,可以调节整个系统的热量分配。1、锅炉启动前需要燃气阀开、锅炉碟阀开、燃烧机无故障、循环水泵无故障并且运行等必要的前提条件。只能在所有条件都满足的条件下才能从PLC给燃烧机输出允许锅炉启动的信号。这些条件组合输出允许锅炉启动信号的代码:1号锅炉的状态检测是这样表示的。图表 24 锅炉启动前状态检测这个条件无论是自动控制还是手动控制都需要给到锅炉燃烧机才能启动锅炉。2、锅炉启动的代码:图表

    40、25 锅炉启动代码锅炉启动过程是这样的:首先、判断是自动启动还是手动启动;第二、判断是否有启动信号,是何种启动信号(自动启动/手动启动);第三、判断锅炉碟阀是否打开,也就是说锅炉本体是否能够形成水循环。这样做的目的是处于安全的考虑,如果锅炉本体水流不能循环会发生危险。锅炉阀没有打开,那么如图表24所示的锅炉启动前提条件必不满足,图表25中的锅炉允许启动信号不满足导致锅炉不能启动。待锅炉碟阀打开后启动条件满足,启动程序输出启动信号;需要注意的一点是自动启动和手动启动信号的互锁,即选择自动控制时复位手动启动信号,选择手动控制时,复位自动启动信号。第四、锅炉启动信号输出。3、锅炉停止的代码锅炉停止是

    41、相对于锅炉启动的一个逆向过程。看到网络5中代码的作用是复位计时器和PLC的继电器输出。二、锅炉的阀门控制模拟量控制的阀门一般是用420毫安电流信号控制阀门开度,对应的阀门开度从0%-100%,对应PLC内存的数据大小从640032000。换句话说,我们输出一个大小在6400与32000之间的整数,即可传送到阀门一个开度在0到100之间的给定值。根据这个原理,我们设计代码如下:Network 1 / 三通阀阀门设置 LD SM0.0MOVW VW900, VW3600 /将数据传如转换数据区,VW900是0100的整数。AENO*I +256, VW3600 /数据乘以256AENOMOVW V

    42、W3600, VW3602AENO+I +6400, VW3602 /数据6400AENOMOVW VW3602, AQW0 /输出给定值三、锅炉水泵的控制 水泵分为工频控制和变频控制工频控制就是启动和停止2个控制点,相对变频控制操作简单。变频控制需要给定变频器一个频率给定值,一种方式是通信传输,另一种方式给定模拟量值。我们这里只介绍给定模拟量的控制方式。Network 1 / 变频器给定 LD SM0.0MOVW VW940, VW3600 /VW940为频率给定值输入,范围050HZAENO*I +256, VW3600 /数据乘以256AENOMOVW VW3600, VW3602AENO+I +6400, VW3602 /数据6400AENOMOVW VW3602, AQW2 /输出给定值四、锅炉系统的自动控制自动控制程序根据设计差异有所不同,没有统一的标准。


    注意事项

    本文(plc的交通灯设计.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922