0

关于投票
PLC几种置位、复位的方法和比较

PLC几种置位、复位的方法和比较

位置位、复位操作方法上,有好几种方法,可以直接采用置位、复位指令,也可以采用数据传送指令、表格填充指令,甚至可以采用移位循环指令。
这几种方法在具体运用时,也要根据情况而定。下面用一个范例来讲解他们的不同之处。要求对Q0.0~0.7、Q1.0~1.7十六位输出进行置位、复位。
点击看大图
图 几种置位、复位的方法
在以上几种方法中,除移位循环指令外,其他指令比较好理解。
移位循环指令的方法,置位是对16#FFFF十六位常数左循环16位,送入输出字QW0(由Q0.0~0.7、Q1.0~1.7组成),无论16#FFFF如何循环,还是16#FFFF,16位输出。复位采用对QW0一次扫描周期一次执行16位左移位指令,将QW0中的数据全部移出(如果是带符号位的字,连符号位也移出),输出复位。
在上面的方法中,直接采用置位、复位的方法不仅可以对字节、字、双字中的位进行置位、复位操作,也可以对不成字节、字、双字的位进行操作。而数据传送指令、移位循环指令、填充指令只能对字节、字、双字中的位进行置位、复位操作,其中填充指令还只能对字操作。
比如单单对Q0.0~0.6七个位输出进行置位、复位,采用数据传送指令、移位循环指令、填充指令是很难实现的,此时只有采用直接置位、复位指令的方法。
系统分类: PLC/PAC
用户分类: 无分类
标签: 无标签
来源: 整理
发表评论 阅读全文(171) | 回复(1)

0

关于投票
关于PLC和变频器规范布线的建议

关于PLC和变频器规范布线的建议

在控制系统中,使用PLC的模拟量控制多台变频器,由于变频器本身产生强干扰信号的特性和模拟量抗干扰能力不与数字量抗干扰能力强的特性;因此为了最大程度的消除变频器对模拟量的干扰,在布线和接地等方面就需要采取更加严密的措施。
 
一.    关于布线
 
1. 信号线与动力线必须分开走线
 
使用模拟量信号进行远程控制变频器时,为了减少模拟量受来自变频器和其它设备的干扰,请将控制变频器的信号线与强电回路(主回路及顺控回路)分开走线。距离应在30cm以上。即使在控制柜内,同样要保持这样的接线规范。该信号与变频器之间的控制回路线最长不得超过50m。
 
2.信号线与动力线必须分别放置在不同的金属管道或者金属软管内部
 
由于水系统的两台富士变频器离控制柜较远分别为30m和20m,因此连接PLC和变频器的信号线如果不放置在金属管道内,极易受到变频器和外部设备的干扰;同时由于变频器无内置的电抗器,所以变频器的输入和输出级动力线对外部会产生极强的干扰,因此放置信号线的金属管或金属软管一直要延伸到变频器的控制端子处,以保证信号线与动力线的彻底分开。
 
3. 模拟量控制信号线应使用双股绞合屏蔽线,电线规格为0.5~2mm2。在接线时一定
要注意,电缆剥线要尽可能的短(5-7mm左右),同时对剥线以后的屏蔽层要用绝缘胶布包起来,以防止屏蔽线与其它设备接触引入干扰。
 
4. 为了提高接线的简易性和可靠性,推荐信号线上使用压线棒端子。压接端子选择如下图:
点击看大图
5:如无使用压线端子,接线时请注意:
点击看大图
一.    关于接地
 
1. 变频器的接地应该与PLC控制回路单独接地,在不能够保证单独接地的情况下,为了减少变频器对控制器的干扰,控制回路接地可以浮空,但变频器一定要保证可靠接地。在控制系统中建议将模拟量信号线的屏蔽线两端都浮空,同时由于在机组上PLC与变频器共用一个大地,因此建议在可能的情况下,将PLC单独接地或者将PLC与机组地绝缘开来。
 
 
2. 变频器的接地
 
•400V级:C种接地(接地电阻10Ω以下)。
•接地线切勿与焊机及动力设备共用。
•接地线请按照电气设备技术基准所规定的导线线径规格。
     如35KW的变频器接地线线径推荐为22 mm2,87KW的接地线线径推荐为50 mm2
•接地线在可能范围内尽量短。由于变频器产生漏电流,与接地点距离太远则接地端子的电位不安定。
•使用两台以上变频器的场合,请勿将接地线形成回路。如图
1. 变频器与电机间的接线距离。
变频器与电机间的接线距离较长的场合,来自电缆的高次谐波漏电流,会对变频器和周边设备产生不利影响。因此为减少变频器的干扰,需要对变频器的载波频率进行调整,请参考下表:
变频器、电机间的接线距离
50m以下
100m以下
100m以上
载波频率
15KHz以下
10KHz以下
5KHz以下
系统分类: PLC/PAC
用户分类: 无分类
标签: 无标签
来源: 整理
发表评论 阅读全文(83) | 回复(1)

0

关于投票
PLC正确接地的另类思维

PLC正确接地的另类思维

在PLC调试中,经常会遇到PLC干扰和接地问题。作为一名技术人员,如果具有一套完整PLC接地的思维模式和处理方法,就能在干扰面前,按照自己的思路,不慌不乱、按部就班地分析和处理。
目前,探讨PLC接地的文章和方法很多,但大多都是局限于理论和片面的经验。如果我们从排水管道的角度,另类思维一下,完整的PLC接地的思维模式和处理方法就很容易形成。现将我的一些经验简单的介绍给大家,更多具体的探讨详见中国工控网的工控论坛(http://www.chinakong.com/ASP/forum/disp.asp?owner=1&ID=17012)。
PLC接地就好比城市里的排水管道,产生的静电干扰就好比是排水管道里的水。管道如何让水尽快地排除需要做到以下几点:
1、排水管道的管径要大,排水就不会淤积,就像接地极一样,接地线的线经要尽可能的大。PLC的接地线不能低于2.5mm2
2、排水管道网尽可能的减少节点,让水直接排入地下,如果排水管道的节点多,水流自然就慢,好比接地极的静电放电就慢,干扰不能很快消除,因此,所有设备的接地必须直接用一个点接入地,这就是单点接地。如图1和图2所示(虚线为接地线)。
图1 错误的接地方式
图2 正确的接地方式
3、排水管网内的水是不均匀的,有的地方水多,有的地方水少,入地口最好放在水多的地方。这样,管道里的水就放得快。静电也是如此,接地点尽可能的放在容易产生静电的设备处,比如变频器、可控硅电加热等设备旁。如图2所示。
4、排水管道的内壁一定要光滑,光滑了,阻力就小,排水效果就好。接地极也是如此,接地电阻一定要小,电势差就小,放电产生的干扰就小。接地电阻不能小于4欧姆。
排水管道中的水尽快排出的道理,做为一般常人是很容易理解的。从排水管道的另向思维中,就很容易形成PLC接地的思维方式,有了正确的思维方式,就能很容易地从容面对PLC干扰了。
系统分类: PLC/PAC
用户分类: 无分类
标签: 无标签
来源: 整理
发表评论 阅读全文(108) | 回复(0)

0

关于投票
PLC常见故障处理

PLC常见故障处理

1. 维护概述
2. 查找故障的设备
3. 基本的查找故障顺序
4. 一般查找故障步骤
5. 组件的更换
6. 增设存储器

维护概述

一般各型PLC(以下以无锡华光电子工业有限公司生产的SR系列PLC,做为描述样板,其余各型PLC大同小异)均设计成长期不间断的工作制。但是,偶然有的地方也需要对动作进行修改,迅速找到这个场所并修改它们是很重要的。修改发生在PLC以外的 动作需要许多时间。

查找故障的设备

SR PLC的指示灯及机内设备,有益于对PLC整个控制系统查找故障。编程器是主要的诊断工具,他能方便地插到PLC上面。在编程器上可以观察整个控制系统的状态,当您去查找PLC为核心的控制系统的故障时,作为一个习惯,您应带一个编程器。

基本的查找故障顺序

提出下列问题,并根据发现的合理动作逐个否定。一步一步地更换SR中的各种模块,直到故障全部排除。所有主要的修正动作能通过更换模块来完成。 除了一把螺丝刀和一个万用电表外,并不需要特殊的工具,不需要示波器,高级精密电压表或特殊的测试程序。 字串5

1、PWR(电源)灯亮否?如果不亮,在采用交流电源的框架的电压输入端(98-162VAC或195-252VAC)检查电源电压;对于需要直流电压的框架, 测量+24VDC和0VDC端之间的直流电压,如果不是合适的AC或DC电源,则问题发生在SR PLC之外。如AC或DC电源电压正常,但PWR灯不亮,检查保险丝, 如必要的话,就更换CPU框架。

2、PWR(电源)灯亮否?如果亮,检查显示出错的代码,对照出错代码表的代码定义,做相应的修正。

3、RUN(运行)灯亮否?如果不亮,检查编程器是不是处于PRG或LOAD位置,或者是不是程序出错。如RUN灯不亮,而编程器并没插上,或者编程器处于RUN方式 且没有显示出错的代码,则需要更换CPU模块。

4、BATT(电池)灯亮否?如果亮,则需要更换锂电池。由于BATT灯只是报警信号,即使电池电压过低,程序也可能尚没改变。更换电池以后, 检查程序或让PLC试运行。如果程序已有错,在完成系统编程初始化后,将录在磁带上的程序重新装入PLC。

5、在多框架系统中,如果CPU是工作的,可用RUN`继电器来检查其它几个电源的工作。如果RUN继电器未闭合(高阻态),按上面讲的第一步检查AC或DC电源如AC 或DC电源正常而继电器是断开的,则需要更换框架。
字串9
一般查找故障步骤

其他步骤于用户的逻辑知识有关。下面的一些步骤,实际上只是较普通的,对于您遇到的特定的应用问题,尚修改或调整。查找故障的最好工具就是 您的感觉和经验。首先,插上编程器,并将开关打到RUN位置,然后按下列步骤进行。

1、如果PLC停止在某些输出被激励的地方,一般是处于中间状态,则查找引起下一步操作发生的信号(输入,定时器,线川,鼓轮控制器等)。 编程器会显示那个信号的ON/OFF状态。

2、如果输入信号,将编程器显示的状态与输入模块的LED指示作比较,结果不一致,则更换输入模块。入发现在扩展框架上有多个模块要更换, 那么,在您更换模块之前,应先检查I/O扩展电缆和它的连接情况。

3、如果输入状态与输入模块的LED指示指示一致,就要比较一下发光二极管与输入装置(按钮、限位开关等)的状态。入二者不同,测量一下输入 模块,如发现有问题,需要更换I/O装置,现场接线或电源;否则,要更换输入模块。

4、如信号是线川,没有输出或输出与线川的状态不同,就得用编程器检查输出的驱动逻辑,并检查程序清单。检查应按从有到左进行, 找出第一个不接通的触点,如没有通的那个是输入,就按第二和第三步检查该输入点,如是线川,就按第四步和第五步检查。要确认使主控继电器步影响逻辑操作。

字串5



5、如果信号是定时器,而且停在小于999.9的非零值上,则要更换CPU模块。

6、如果该信号控制一个计数器,首先检查控制复位的逻辑,然后是计数器信号。按上述2到5部进行。

组件的更换

下面是更换SR-211PC系统的步骤

一、更换框架

1、切断AC电源 ;如装有编程器,拔掉编程器 。
2、从框架右端的接线端板上,拔下塑料盖板,拆去电源接线。
3、拔掉所有的I/O模块。如果原先在安装时有多个工作回路的话,不要搞乱IU/O的接线,并记下每个模块在框架中的位置,以便重新插上时不至于搞错。
4、如果CPU框架,拔除CPU组件和填充模块。将它放在安全的地方,以便以后重新安装。
5、卸去底部的二个固定框架的螺丝,松开上部二个螺丝,但不用拆掉。
6、将框架向上推移一下,然后把框架向下拉出来放在旁边。
7、将新的框架 从顶部螺丝上套进去,
8、装上底部螺丝,将四个螺丝都拧紧。
9、插入I/O模块,注意位置要与拆下时一致。
如果模块插错位置,将会引起控制系统危险的或错误的操作,但不会损坏模块。
10、插入卸下的CPU和填充模块。
11、在框架右边的接线端上重新接好电源接线,再盖上电源接线端的塑料盖。 字串7
12、检查一下电源接线是否正确,然后再通上电源。仔细地检查整个控制系统的工作,确保所有的I/O模块位置正确,程序没有变化。

二、CPU模块的更换

1、切断电源,如插有编程器的话,把编程器拔掉。
2、向中间挤压CPU模块面板的上下紧固扣,使它们脱出卡口。
3、把模快从槽中垂直拔出。
4、如果CPU上装着EPROM存储器,把EPROM拔下,装在新的CPU上。
5、首先将印刷线路板对准底部导槽。将新的CPU模块插入底部导槽。
6、轻微的晃动CPU模块,使CPU模块对准顶部导槽。
7、把CPU模块插进框架,直到二个弹性锁扣扣进卡口。
8、重新插上编程器,并通电。
9、在对系统编程初始化后,把录在磁带上的程序重新装入。检查一下整个系统的操作。

三、I/O模块的更换

1、切断框架和I/O系统的电源。
2、卸下I/O模块接线端上塑料盖。拆下有故障模块的现场接线。
3、拆去I/O接线端的现场接线或卸下可拆卸式接线插座,这要视模块的类型而定。给每根线贴上标签或记下安装连线的标记,以便于将来重新连接。
4、向中间挤压I/O模块的上下弹性锁扣,使它们脱出卡口。
5、垂直向上拔出I/O模块。 字串4

系统分类: PLC/PAC
用户分类: 无分类
标签: 无标签
来源: 整理
发表评论 阅读全文(84) | 回复(0)

0

关于投票
PLC的编程语言(一):文本化语言

IEC61131-3国际标准的编程语言包括图形化编程语言和文本化编程语言。图形化编程语言包括:梯形图(LD-Ladder Diagram)、功能块图(FBD - Function Block Diagram)、顺序功能图(SFC - Sequential Function Chart)。文本化编程语言包括:指令表(IL-Instruction List)和结构化文本 (ST-Strutured Text)。IEC61131-3的编程语言是IEC工作组对世界范围的PLC厂家的编程语言合理地吸收、借鉴的基础上形成的一套针对工业控制系统的国际编程语言标准,它不但适用于PLC系统,而且还适用于更广泛的工业控制领域;IEC61131-3 的编程工具提供对现场总线系统的支持,并对现场总线装置的软件设计产生了很大影响。 字串1

本专题将分两部分介绍IEC61131-3的编程语言,本文是IEC61131-3编程语言的第一部分,重点介绍IEC61131-3的两种文本化编程语言;第二部分重点介绍IEC61131-3的两种三种图形化编程语言,将在下一篇文章作介绍。

字串6

一、结构化文本(ST) 字串5

结构化文本(ST)是一种高级的文本语言,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描述步、动作和转变的行为。

字串5

结构化文本(ST)语言表面上与PASCAL语言很相似,但它是一个专门为工业控制应用开发的编程语言,具有很强的编程能力用于对变量赋值、回调功能和功能块、创建表达式、编写条件语句和迭代程序等。结构化文本(ST)非常适合应用在有复杂的算术计算的应用中。

字串9

结构化文本(ST)程序格式自由,可以在关键词与标识符之间任何地方插入制表符、换行字符和注释。对于熟悉计算机高级语言开发的人员来说,结构化(ST)语言更是易学易用。此外,结构化文本(ST)语言还易读易理解,特别是用有实际意义的标识符、批注来注释时,更是这样。

字串1

1.1 操作符 字串2

结构化文本(ST)定义了一系列操作符用于实现算术和逻辑运算,如逻辑运算符:AND,&,XOR,OR; 算术运算符:<, >, <=, >=, =, <>, +, -, MOD, / 等,此外,还定义了这些操作符的优先级。如下是操作符预算的两个例子:

字串7

Start := Oilpress AND Stream AND Pump; 字串8

V : = K*(-W*T) 字串7

1.2 赋值语句

字串9

结构化文本(ST)程序既支持很简单的赋值语句,如 X:=Y, 也支持很复杂的数组或结构赋值,如Profile[3]:=10.3+SQRT((Rate+2.0)), Alarm.TimeOn:=RCT1.CDT。

字串1

1.3在程序中调用功能块

字串1

在结构化文本(ST)程序中可以直接调用功能块。功能块在被调用以前,输入参数被分配为缺省值;在调用后,输入参数值保留为最后一次调用的值。功能块调用的格式如下: 字串9

FunctionBlockInstance(

字串8

InputParameter1:=ValueExpression1, 字串7

InputParameter2:=ValueExpression2, …);

字串7

ValueExpression1……ValueExpressionN是符合功能块数据类型输入变量,InputParameter1……InputParameterN功能块的输入参数。FunctionBlockInstance是要调用的功能块。 字串8

1.4结构化文本(ST)程序中的条件语句

字串2

条件语句的功能是,某一条件满足时执行相应的选择语句。结构化文本(ST)有如下的条件语句: 字串6

IF …THEN…ELSE条件语句 字串2

该选择语句依据不同的条件分别执行相应THEN及ELSE语句。该条件语句可以嵌套入另一条件语句中,以实现更复杂的条件语句。条件语句的格式如下: 字串1

IF THEN 字串5

  字串9

ELSE

字串1

< statements2…> 字串7

END_IF;

字串6

“boolean expression”可以是“true”或“false”,根据“true”或“false”的情况,程序执行相应的statements1或statements2语句。 字串7

CASE 条件语句 字串4

该选择语句的执行方向取决于CASE语句的条件, 并有一返回值。实例见最后的应用举例。该条件语句的格式如下: 字串6

CASEOF 字串1

< integer selector value1> : < statements1…>

字串9

< integer selector value2> : < statements2…>

字串3

……

字串9

ELSE 字串5

< statements …> 字串1

END_CASE; 字串3

“integer expression”可以是一个数值,根据数值的不同执行相应的statements1或statements2等语句。 字串5

1.5 结构化文本(ST)程序中的迭代语句 字串8

迭代语句适用于需要一条或多条语句重复执行许多次的情况,迭代语句的执行取决于某一变量或条件的状态。应用迭代语句应避免迭代死循环的情况。 字串8

FOR…DO 字串8

该迭代格式语句允许程序依据某一整型变量迭代。该迭代格式语句格式如下: 字串2

FOR 字串4

TO 字串8

BY DO 字串3

字串4

END_FOR

字串2

“initialize iteraion variable”是迭代开始的计数值,“final value expression” 迭代结束的计数值。迭代从“initialize iteraion variable”开始,每迭代一次,计数值增加“increment expression”,计数值增加到“final value expression”,迭代结束。 字串8

结构化文本(ST)程序中还有其它的迭代语句,如WHILE … DO,REPEAT … UNTIL等,迭代原理与FOR…DO 格式基本相同。此外,结构化文本(ST)的迭代语句中还有EXIT,RETURN两种格式,分别用于程序的返回和退出。

字串7

1.6 编程举例:用结构化文本(ST)程序编功能块 字串2

本程序是一用结构化文本(ST)程序编功能块的例子。该实例描述的是如何用功能块控制箱体中的流体,箱体可以通过阀门被注满和倒空,如图所示,箱体的重量由一个称重单元监视。功能块通过比较两个输入值FullWeight和EmptyWeight以确定箱体是满的还是空的。 字串7

  字串2

点击看大图
图一 水箱控制及功能块示意图
 

该功能块提供了一个“Command”输入,该输入有四种状态,1.给箱体加水;2. 保持不变;3.起动“Stirrer”;4. 清空箱体。实现该功能块算法的结构化文本(ST)程序如下: 字串2

(*箱体状态*) 字串6

TYPE_T_STATE: (FULL,NOT_FULL,EMPTIED);END_TYPE; 字串8

(*阀门状态*) 字串7

TYPE_T_VALVE: (OPEN,SHUT);END_TYPE; 字串5

FUNCTION_BLOCK TankControl

字串6

VAR_IN (**) 字串5

Command:SINT; 字串6

Weight :REAL;

字串8

FullWeight,EmptyWeight : REAL; 字串2

END_VAR

字串9

VAR_OUT (**)

字串7

FillValve :T_VALVE:=SHUT;

字串9

EmptyValve :T_VALVE:=SHUT;

字串6

StirSpeed :REAL:=0.0; 字串7

END_VAR 字串6

VAR 字串7

State :=T_STATE :=EMPTYIED;

字串2

END_VAR

二、指令表(IL-Instruction List)

IEC61131-3的指令表(IL-Instruction List)语言是一种低级语言,与汇编语言很相似,是在借鉴、吸收世界范围的PLC厂商的指令表语言的基础上形成的一种标准语言,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描动作和转变的行为。 字串9

指令表语言能用于调用,如有条件和无条件地调用功能块和功能,还能执行赋值以及在区段内执行有条件或无条件的转移。指令表语言不但简单易学,而且非常容易实现,可不通过编译和连编就可以下载到PLC。IEC61131-3的其它语言如功能块图、结构化文本等都可以转换为指令表语言。 字串8

2.1指令表语言结构 字串9

指令表语言是由一系列指令组成的语言。每条指令在新一行开始,指令由操作符和紧随其后的操作数组成,操作数是指在IEC61131-3的“公共元素”中定义的变量和常量。有些操作符可带若干个操作数,这时各个操作数用逗号隔开。指令前可加标号,后面跟冒号,在操作数之后可加注释。 字串4

IL是所谓面向累加器(Accu)的语言,即每条指令使用或改变当前Accu内容。IEC61131-3将这一Accu标记为“结果”。通常,指令总是以操作数LD(“装入Accu命令”)开始。指令表程序如下所示:

字串8

2.2 指令表操作符 字串1

IEC 61131-3指令表包括四类操作符:一般操作符、比较操作符、跳转操作符和调用操作符。 字串8

2.2.1一般操作符符 字串2

指令表一般操作符是指在程序中经常会用到的操作符.

字串3

l 装入指令:LD N等。

字串3

l 逻辑指令:AND N( (与指令)、OR N( (或指令)、XOR N( (异或指令)等。 字串3

l 算术指令:ADD ((加指令)、SUB((减指令)、MUL ( (乘指令),DIV((除指令)、MOD ( (取模指令)等。 字串6

2.2.2 比较指令:GT ( (大于)、GE ( (大于等于)、EQ( (等于)、 NE( (不等于)、 LE( (小于等于)、 LT( (小于)等。

字串7

2.2.3 跳转及调用操作符

字串7

JMP C,N (跳转操作符)、 CALL C,N (调用操作符)等。

字串9

2.3 在指令表中调用功能及功能块

字串5

在IEC61131-3指令表的程序中,可以直接调用功能块和功能。指令表的功能块调用有 字串2

种格式,功能调用有两种格式。详细的调用可见IEC 61131-3标准。

字串4

2.4 用指令表定义功能及功能块 字串2

指令表可用于定义功能块和功能。当用指令表定义功能时,功能的返回值是结果寄存

字串1

内的最新值;当用指令表定义功能块时,指令表引用功能块的输入参数(VAR_INPUT),并且把值写到输出参数(VAR_OUPUT)。 字串8

2.5指令表与其它语言的移植性

字串2

指令表语言转换为其它语言是非常困难的,除非指令表操作符的使用范围及书写格式受到严格的限制,才有可能实现转换。IEC61131-3的其它语言较容易转换为指令表。

字串9

2.6IL的编程实例 字串7

本例是一个用指令表程序定义功能的实例,功能描述的计算平面上两点的移动距离。两点X,Y的坐标如下图所示。

字串2

  字串1

字串1

点击看大图
图二 用指令表编功能实例
 

用结构化文本描述的两点间距离的计算公式为:Travel_distance:=SQRT((X1-X2)*(X1-X2)+(Y1-Y2)*(YI-Y2)))。TMax是X,Y两点见的最大距离,当计算值小于TMax时,说明计算正确;当计算值大于TMax时,说明X,Y两点间的距离超出了最大距离,在这种情况下,功能是没有输出的。 字串3

用指令表编写的该功能的函数TRAVEL()如下:

字串9

FUNCTION TRAVEL : REAL

字串3

VAR_INPUT 字串8

X1,X2,Y1,Y2 : REAL (*点X,Y坐标*)

字串1

TMax : REAL (*最大移动距离*)

字串5

END_VAR 字串5

VAR

字串7

Temp : REAL; (*中间值*)

字串4

END_VAR

字串1

LD Y1 字串4

SUB Y2 (*计算Y2-Y1*) 字串1

ST Temp (*将Y2-Y1值存入Temp *)

字串4

MUL Temp (*计算(Y2-Y1)的平方*)

字串2

ADD( X1 字串7

SUB X2 (*计算(X1-X2)*)

字串3

ST Temp (*将(X1-X2)值存入Temp *)

字串5

MUL Temp (*计算(X1-X2)的平方*) 字串9

) (*将两平方值相加*) 字串9

CAL SQRT (*调平方根函数*)

字串5

ST TRAVEL (*设定计算结果*)

字串4

GT TMax (*比TMax 大吗?*)

字串1

JMPC ERR (*是,转到ERR 执行*)

字串8

S ENO (*设定ENO *) 字串3

ERR: 字串3

RET (*错误返回,ENO 不输出*)
系统分类: PLC/PAC
用户分类: 无分类
标签: 无标签
来源: 整理
发表评论 阅读全文(125) | 回复(1)

0

关于投票
IEC 61131标准数据类型

IEC 61131标准数据类型

IEC 61131字符串数据类型

用户自定义的字符串数据类型是具有可变数目的字符的字符串。声明一个用户自定义的字符串时,其长度被放在该数据类型后面的括号内。 字串7

字串3

用户定义字符串数据类型声明的例子。 字串3

TYPE
STRING10    :STRING(10)
END_TYPE

字串7

在这个例子中,字符串的长度是10个字符。
限制:最短的合理字符串长度为1,最长的合理字符串长度为32766。 字串6

IEC 61131结构数据类型

字串9

声明结构 字串5

字串1

结构数据类型包括了同一数据类型或不同数据类型的多个元素。 字串7

TYPE
machine:
STRUCT
x_pos    :INT;
y-pos    :INT;
depth    :INT;
rpm    :UINT;
END_STRUCT;
END_TYPE

字串5

在该例子中,结构数据类型‘machine’由x_pos、y_pos、depth和rpm等组分组成。所有的组分都描述了机器的特性。

字串7

编程举例

字串1

在必须要声明描述同一对象的多个数据的情况下,就应该使用结构。例如,一个钻孔机在一个工件上钻多个孔。所有的孔都具有工件上的x和y坐标位置、钻孔深度以及钻孔用的每分钟转数。对各个孔的具体值是不同的,但是所需的变量总是同样的。这种情况下,声明一个由分别用于位置、钻孔深度和每分钟转数的三个组分组成的结构会很有用。对于每个孔,可以给各组分赋不同的值。用于钻孔过程的功能块只需使用作为结构的同一个变量。

字串8

结构数组 字串7

可以在数组内使用结构,如下面的例子所示:

字串5

   
TYPE
machine:
STRUCT
x_pos    :REAL;
y_pos    :REAL;
depth    :INT;
rpm    :INT;
END_STRUCT;
my array    :ARRAY[1..10]    OF machine;
END_TYPE
   
一个结构数组的应用例子可能是具有多个钻孔机的转移线。通过数组下标,可以访问具体的钻孔机,并且通过各结构组分,可以分配用于钻孔的不同值。 字串3

带有数组的结构 字串7

可以在结构内使用数组,如下面的例子所示:

字串2

   
TYPE
graph    :ARRAY[1..10]    of INT;
drive:
STRUCT
rpm    :INT;
inputs    :IN_BOOL;
performance    :graph;
END_STRUCT;
END_TYPE
   
初始化结构

字串7

在编辑代码本体声明时,可以通过给各组分赋值的方式,来初始化结构。下图显示了一个例子: 字串1

变量声明:
VAR
var1   :machine;
first    :BOOL    :=TRUE;
END_VAR
   
使用ST语言的代码本体声明:
IF first THEN
var1.x-pos := REAL#1.3E+2
var1.rpm := 3000;
...
first := FALSE;
END_IF
...
字串4

IEC 61131数组编程举例 字串4

一个数组应该被典型地用于描述同一主题的数据。让我们想象一个每隔3秒钟就改变一个输入值的过程。有必要保存这些输入值中的每一个,以便将其与所设定点相比较。所有的输入值都具有相同的数据类型。这种情况下,声明一个数组很有用,因为在代码本体声明中,可以用一个循环语句(如FOR循环),容易地比较这两个值。数组的单个组分可以用数组下标来访问。  字串4

  字串7

  
类型声明:

字串7

TYPE
graph    :ARRAY[1..23]    OF INT;
set_point    :ARRAY[1..23]    OF INT;
END_TYPE
变量声明:

字串3

VAR
input        :graph;        (* 机器的输入值 *)
values        :set_point;        (* 相比较的值 *)
i            :INT :=1;        (* 用于数组下标的变量 *)
run            :BOOL    :=TRUE;
ERROR        :BOOL;
timer        :FB_TIMER;        (* 声明FB实例 *)
END_VAR
使用ST语言的代码本体声明: 字串4

timer (pt:=t#3s;in:=run);
IF timer.Q THEN    (* 向数组''graph''提供输入值 *)
input[i] := %IW0;    (* 给数组赋输入值 *)
run := 0;    (* 边沿检测,以便再次启动定时器 *)
i := i+1;    (* 更高的数组下标 *)
ELSE 
run :=1;    (* 递增记数 *)
END_IF;
IF i = 23
FOR i:=1 TO 23 BY 1 DO 
IF input[i] <> values[i] THEN     (* 比较数组
''graph''和''set point'' *)
ERROR := TRUE;
END_IF;
END_FOR;
i := 1;
END_IF;

字串5

IEC 61131数组数据类型

字串5

声明数组

字串2

字串6

数组数据类型包括同一个数据类型的几个元素。一个数组中的特定元素是通过一个数组下标来定义和访问的。一个数组可用于仅仅在类型声明的一行之内,声明同一类型的几个元素。 字串4

数组数据类型声明的例子:

字串7

TYPE
graph    :ARRAY[1..23]    OF INT;
END_TYPE 字串6

在本例子中,数据类型‘图形’包括了23个‘INT’数据类型的元素。数组的所有元素都被一个接一个地连续存储在PLC存储器里。 字串9

要想声明一个数组,您首先要在数据类型工作单的类型声明中声明该数组。然后,您就可以在POU的变量工作单中声明变量了(请参考下面的编程示例)。

字串6

多维数组 字串9

如果需要多维数组,则可以使用数组的数组。下图展示了一个数组的数组:

字串9

  
TYPE
graph    :ARRAY[1..10]    OF INT;
my array    :ARRAY [1..3] OF graph;
END_TYPE
  
在一个数组的数组中,单个元素是用两个下标来访问的,如下图所示:

字串2

  
变量声明:

字串1

VAR
var1   :my_array;
var2   :INT;
END_VAR
  
使用ST语言的代码本体声明:

字串6

var2 := var1[1] [3];
  
初始化数组 字串2

数组可以被初始化,即:可以对数组中的每个元素赋一个初值。正如上面所描述的那样,每一个元素都是通过其下标来访问的。一个数组的初始化可以在编辑代码本体声明时进行。

字串2

  
变量声明: 字串6

VAR
graph    :ARRAY[1..10]    OF INT;
END_VAR
  
使用ST语言的代码本体声明: 字串2

graph[1]:=7; 
graph[2]:=1092; 
.
.
.
graph[10]:=13; 
  
不必初始化一个数组的所有元素。如果未使用任何初始值,则数组元素是在启动程序的执行时用默认初值来初始化的。

字串5

字串8

IEC 61131用户自定义数据类型 字串1

用户自定义数据类型,是由应用程序员,利用文本编辑器,通过使用一个TYPE...END_TYPE声明来编辑的。导出数据类型可以是枚举数据类型、结构或数组。

字串7

  字串5

数组数据类型包括了一个数据类型的几个元素。一个数组可用于仅仅在类型声明的一行之内,声明同一类型的几个元素。

字串7

结构数据类型包括了不同的数据类型的几个元素。  字串1

用户定义字符串,是具有可变数目的字符的STRING数据类型。声明一个用户自定义的字符串时,其长度在数据类型后面的括号内。 字串1

枚举数据类型将可能值限制在所枚举的元素范围内。使用了该数据类型的变量,只能具有所枚举的值。 

字串7

IEC 61131-3中的类属数据类型

字串7

类属数据类型
类属数据类型是包括了基本数据类型的分级组的数据类型。ANY_INT包括DINT、INT、SINT、UDINT、UINT和USINT等基本数据类型。如果一个函数可以与ANY_INT相连,则意味着可以处理DINT、INT、SINT、UDINT、UINT和USINT等数据类型的变量。  字串6

  字串3

在下表中显示了类属数据类型:

字串9

ANY
ANY_NUM
ANY_REAL
REAL
ANY_INT
DINT, INT, SINT
UDINT, UINT, USINT
ANY_BIT
DWORD, WORD, BYTE, BOOL
STRING
TIME 字串7


系统分类: PLC/PAC
用户分类: 无分类
标签: 无标签
来源: 整理
发表评论 阅读全文(71) | 回复(0)

0

关于投票
9个经典练习助你成为PLC高手

9个经典练习助你成为PLC高手

菜鸟变高手,并不是难于上青天的事情。只是没有好的训练方式。下面的几个小程序可以帮助你在最短的时间内成为高手中的高手。但是无论使用什么PLC,一定要使用FBD语言编写。在你按顺序完成下面的练习后,你已经成为了真正的PLC高手。不过这些练习都是基于S7系列PLC制作的,不过不妨碍各位朋友的使用。
希望大家,尤其是菜鸟多多练习,一定要按照练习的步骤,循序渐进,很快,你就会让众人对你刮目相看!
感谢intercon-asia的大力支持!
I/O地址设置:
启动按钮   I0.0
复位按钮   I0.1
停止按钮   I0.2 (NC)
选择开关   I0.3 (保持型按钮)
启动指示灯 Q0.0
停止指示灯 Q0.1
执行器     Q0.2
 
练习1.
按下启动按钮后,执行器启动,当按下复位或停止按钮后,执行器立刻停止。该程序只有在选择开关按下后才能够执行,即当选择开关关闭后,程序必须马上停止。
 
练习2.
按下启动按钮后,执行器启动,当按下复位或停止按钮后,执行器立刻停止。该程序只有在选择开关按下后才能够执行,选择开关关闭后,程序必须马上停止且执行器无论处于何种状态,也必须停止。
 
练习3.
按下启动按钮后,启动指示灯在5秒钟后点亮,直到启动按钮松开。定时器只在启动按钮按住的时候有效。如果在5秒钟内松开启动按钮,计时器则复位。
 
在命令菜单中按下F1键可以打开各命令的帮助文件,选择一个能够满足上述要求的计时器。
 
练习4.
如果按下启动按钮,启动指示灯马上点亮。松开启动按钮后,指示灯在3秒后自动熄灭。
 
在命令菜单中按下F1键可以打开各命令的帮助文件,选择一个能够满足上述要求的计时器。
 
练习5.
按下复位按钮后,激活计数器,启动指示灯熄灭。按下启动按钮5次后,启动指示灯点亮。再次按下复位按钮后,计数器重新被复位且启动指示灯熄灭。
 
在命令菜单中按下F1键可以打开各命令的帮助文件,选择一个能够满足上述要求的计数器。
 
练习6.
如果执行器处于停止状态,停止指示灯以200ms的频率闪烁,启动指示灯熄灭。按下启动按钮后,执行器启动,停止指示灯熄灭。3秒后,执行器自动停止。计时器运行时,启动指示灯以500ms频率闪烁。
 
将MB100设置为系统默认的频率计时器。系统默认的时间如下:
M100.0=0.1秒
M100.1=0.2秒
M100.2=0.4秒
M100.3=0.5秒
M100.4=0.8秒
M100.5=1.0秒
M100.6=1.6秒
M100.7=2.0秒
 
 
练习7.
按下启动按钮后,启动指示灯亮3秒,然后熄灭且停止指示灯亮7秒,再熄灭后,启动指示灯亮3秒,依此循环。当按下复位按钮后,无论两灯处于什么状态,全部熄灭。
 
练习8.
按下启动按钮后或复位按钮的任意一个后,5秒之内必须按下另一按钮。如果5秒内启动按钮和复位按钮都按下并保持住,执行器启动。如果5秒内没有按下两个按钮,执行器无法启动。超过5秒一样不启动。
 
该练习为经典的双手启动回路程序。
 
练习9.

按下启动按钮后,启动指示灯亮。再按下启动按钮,启动指示灯灭。依此循环。

系统分类: PLC/PAC
用户分类: 无分类
标签: 无标签
来源: 整理
发表评论 阅读全文(68) | 回复(0)

0

关于投票
AB PLC 基础知识

                                                                AB PLC 基础知识

罗克韦尔自动化除了提供自动化基础硬件外,还提供大量的软件工具,并在其产品中包含了最新的Microsoft的32位Windows NT及ActiveXTM技术。这些软件为用户采用开放式的工业标准提供方便。另外借助DDE、ActiveX和ODBC兼容技术等,使现场数据能容易地同其他应用软件实现集成。这样对每一个应用软件无需多次重新建立标签数据库,从而极大地提高了软件可重复使用性。
    Rockwell Software提供了一个从车间到顶层的解决方案。首先可以利用RSWireTM开发控制电气原理图,并在RSLogixTM PLC编程软件中利用RSWire中输入的标签。借助RSView32,并再次利用这些标签,建立一个MMI系统对自动化设备和过程进行监控。再加入RSToolsTM和RSLadderTMActiveX控制,开发自己的应用软件,并和现场设备实现完美连接。现在,可以利用RSLinx与数据服务器共享现场数据了...如果将数据登录到企业数据库系统内,可以利用RSSqlTM。一旦将数据收集起来,可以利用RSMailmanTM为公司内的某些部门提供实时数据,以实现报警通知,或实现库存管理。
    Rockwell Software的软件一般可分为7类:(1)通信软件;(2)组件软件;(3)设计软件;(4)诊断软件;(5)人机界面软件;(6)编程软件;(7)RS和A-B文档

字串7


  
  1 通信软件
    (1)InterchangeTM系列软件是一个应用程序界面(API),它简化了各种主计算机操作系统与A-B处理器间的通信。
    (2)RSLinxTM系列软件是用于A-B可编程控制器的服务器软件,为A-B的PLC处理器与RA以及其他公司的(如微软)的许多软件产品提供了通信联结。它充分利用了Windows NT操作系统所具有的多线程,多任务,多处理器等性能,通过各种通信接口,可以与许多应用软件组合运行。而且界面直观易学。其主要特点有:
    ①由于所有32位A-B驱动程序都被封装在一个软件包内,使升级到新的处理器和新的网络更为容易。
    ②与RS,A-B及第三方软件产品或由用户利用RSLinx的开放CAPI或AdvanceDDETM开发的软件产品兼容。
    ③利用DDE接口对PLC-5和SLC500处理器数据进行同步读写访问。
    ④利用CAPI对PLC-5,PLC-2,PLC-3和SLC500处理器数据进行同步和异步读、写访问。
    ⑤支持多个通信设备的并行运行。
    ⑥利用复制/粘贴功能易于建立DDE热连接。
    ⑦利用网络DDE与其它计算机实现数据共享。

字串7


    ⑧优化DDE读操作实现对系统资源的有效利用,减少网络阻塞。
    ⑨块读写获取了最快通信速度,减少了网络的负荷。
    ⑩通过RSWho功能以及易于理解的诊断功能使系统观察更直观。
    (3)RSNetworkTM系列软件主要用于控制网和设备网的组态。
    (4)RSServerTM系列软件是工业DDE服务器系列软件,可使用它作为一个DDE接口软件去访问GE Fanuc Series90(SNP),GE Fanuc Series90 TCP/IP,Reliance Automax DCS可编程控制器,Allen-Bradley Bulletin 1400 PowerMonitor模块或GE Fanuc Genius I/O系统。
    (5)RSSQL系列软件将强大的处理引擎和直观的用户界面结合起来,把企业信息系统与现场连接起来,同时能在关系数据库系统(RDBMS)和过程控制系统之间建立处理联系。使用直观的点击式界面去组态处理以将处理器数据点与数据库表中的列连结起来。
    (6)WINtelligent TMLinx系列软件允许Microsoft Windows DDE兼容软件与A-B处理器和控制器交换数据,可将现场数据读入应用软件进行显示、登录以及趋势图操作。亦可从监控计算机设置某单独参数或下载配方到所支持的设备中。 字串8
  
  2 组件软件
    (1)RSToolsTM是用于工业过程的ActiveX控制的软件。利用该控制在ActiveX包容器,如Microsoft Visual Basic, Internet Explore以及RS的RSView32,采集和显示现场数据。这些控制可应用在不连续生产场合,过程控制和SCADA环境。对于分布式应用,RSTools 可作为RS的RSPortalTM产品的客户软件,可从Internet 或Intranet上从远程节点上获取数据。
    (2)RSPortalTM是Internet数据传输软件。它提供了TCP/IP网络上数据有效,快速安全地传输。它被设计成适应各种网络解决方案,可用在“企业范围”内的Intranet或“全球范围”内Internet上传输数据。
    (3)RSSnapshotTM是接DDE数据的Internet图象软件。它使装有任意硬件平台,操作系统或Web浏览器的客户计算机都能立即看到DDE服务器数据。
    (4)RSWorkbenchTM用于Visual Basic的开发环境。它作为VB开发环境的附加选件,使用户可以访问那些可重新使用的代码、图象及模板,并且是一个扩展的基于对象的绘图软件包。整个软件由几个模块组成,每个模块都有助于减少开发工业应用软件的时间。
    (5)RSWorkshopTM是一种综合开发工具包,用于VB的开发环境。它包括RSToolbox ActiveX控制和RSWorkbench VB编辑器附加项软件。用一个可重复使用的组件库和开发工具增强了Microsoft VB环境。

字串3


    (6)RSMailmanTM包括三个OLE自动化服务器,以增强基于MAPI的邮件系统功能。通过它,OLE自动化客户软件就可利用其中的高级信息接受管理,预定义消息编辑和进度安排等功能。
    此外,组件软件还包括RSAlarmTM, RSAnimatorTM, RSButtonTM, RSCompareTM, RSGaugeTM和RSLadderTM等。
  
  3 设计软件
    RSWireTM系列软件提供了从绘图板或机械设计进步到易于理解的软件解决方案,以进行准确无误的原理图设计,并同时产生支持文档。它使控制系统设计自动化,并能生成一个智能原理图。利用已有设计中的符号和宏库快速生成原理图。智能布线合理的连接符号,并在符号放置的连接点再的自动断开,保证正确表达设计内容。
  
  4 诊断软件
    SMART DiagnosticsTM系列软件是系统监视和诊断工具,周期性检查系统运行以及网络通信、控制器和过程变量的状态。
  
  5 人机界面软件
    (1)RSBatchTM系列软件用于批生产过程管理。无论是进行简单的单元级的运行还是执行高度复杂的具有网络结构的多种产品的任务,都可使用它。
    (2)RSPowerTM用于电力设备组态及监视。利用它可最大限度地发挥A-B Bullentin 1400 Powermonitor和Bullentin 1403 PowermonitorⅡ电力监视设备的特点。通过它可以在桌面上对电力设备组态而无需面板操作,并且在安装完软件的几分钟内生成自定义的画面开始监视电力设备。RSPower直观的组态过程,完善的图形工具条以及易浏览性使之成为一个生成代表电力系统运行状态的数据监视系统的有用工具。

字串2


    (3)RSTrendTM是数据采集及历史趋势软件。它提供完全的32位数据采集引擎和灵活的趋势显示,可有效地登录并监视PLC数据。通过简单的几个步骤来组态新项目,定义登录标签并开始登录。为快速选择工艺数据并显示趋势,这些程序功能被集中在一起,却彼此独立地发生作用。它还满足各种的数据采集需要:自动采集数据、数据转换,趋势图和登录报表只是其中一部分。
    (4)RSView32TM系列软件是一种易用的、可集成的、基于组件的MMI系统,具有用户所需的全部特征和功能,能有效地监视并控制机器和过程。它基于Microsoftware windows NT 和Windows 95平台设计,并且是第一个把ActiveX控制嵌入画面的MMI软件包。其主要特点有:
    ①图形与动画 软件本身提供绘图工具可生成简单或复杂的图形对象与文本,还包含常用图形对象的库,可以将这些通信图形对象拖放到画面种,也可以使用其它绘图软件包如AutoCADTM和CorelDRAW生成的对象。动画控制可以激活图形对象以使它们反映出过程变化。
    ②报警监视 可对开关量或模拟量标签组态报警,并使用警告摘要窗口显示报警信息。
    ③登录 在运行时记录系统信息。包括动作登录、报警登录和数据登录。所有登录信息保存为dBase IVTM(.DBF)格式,且能在第三方软件如Microsoft Excel,Crystal ReportTM和Foxpro中使用。

字串6


    ④趋势 可在一个趋势中绘制16条标签曲线,并且当标签穿越参考值时使用阴影来突出显示。组态趋势可在运行时动态调整坐标轴以控制数据的显示。
    ⑤事件检测 事件是可触发动作的RSView32表达式。利用事件检测使应用软件能对系统和过程中的事件进行自动响应。
    ⑥安全系统 项目级安全系统允许限制用户或用户组访问特定的画面或改变某些标签值。
    系统级安全系统允许将用户锁定在RSView32应用软件中,即不能退出到Windows操作系统。
    ⑦重复使用标签数据库 只要打开标签浏览器,可以导入逻辑编程软件中使用的全部数据库,或者选择梯形逻辑所用的标签,而不需导入整个数据库。
    ⑧重复利用画面 RSView32支持许多标准图形文件格式,可使用现存的图形而不必重画。
    ⑨扩展和升级项目与系统 当项目扩展时,可以容易地将RSView32升级到更多标签数据库限制版本,最多可扩展到32,000点,而对项目无需任何改变。
    ⑩互操作性 RS的产品可以集成工作,因而可建立自定义应用程序。
    与Microsoft产品共享信息 利用RSView32的开放式设计可容易地与Microsoft产品共享

系统分类: PLC/PAC
用户分类: 无分类
标签: 无标签
来源: 整理
发表评论 阅读全文(54) | 回复(0)
总共 , 当前 /