plc系统编程3指令表FBDdocx.docx
《plc系统编程3指令表FBDdocx.docx》由会员分享,可在线阅读,更多相关《plc系统编程3指令表FBDdocx.docx(19页珍藏版)》请在冰豆网上搜索。
plc系统编程3指令表FBDdocx
5/1.3指令表(IL)
•通过指令表编程语言(IL),可以以有条件或者无条
件的方式来调用功能块,进行赋值,在一个代码段中
以有条件或者无条件的方式进行跳转。
•一个指令表包含一系列指令。
每一个指令都要从新的一行开始。
IL代码段演示:
•格式:
•—个运算符;
•如果需要的话,~个限良词;
•如果需要的话,一个或多个操作数;
•如果要使用多个操作数,它们之间应该用运号分开。
卷指令裔可以後用一个标号,这个标号后面会带有一个冒号。
指令的后面可帶有一个注年。
•-个指令行的長度不能越过300个学符。
•淮.偏程环境中没有限制IL代码段的长度。
IL代码段的长度只受PLC内存的限制。
•一个指令表应该总是以LD运算符开始。
•指令是自上而下逐行执行的;可以通过括号来改变这个顺序。
5-1・4功能块语言(FBD)
•一个FBD代码段含有一个单页面窗口,该页面有网格背景•一个网格有十个网格单位坐标点,网格单位是两个对象之间的最小间隔;
•FBD编程语言不是面向单元格的,但对象可以通过网格单位来对齐;
•一个FBD代码段有360个水平坐标点,240个垂直坐标点
1、FBD偏程方出:
•应FBD偏辑爰中,程序由FFBia成,如果您需要护展功能块的针冲,只需用氯标按住功能块底部的黑盍,向下拖即可,最多可以增加到32个输入针冲。
口亠口•口
•PFB是基本功能(EF).基本功能块(EFB).用户自走义
功能块(DFB).过程的总称。
共有3种方出第一种:
通过“PFB输入助手”调用FFB(推荐):
•第一步:
打开FFB输入助手窗口后,仪“FPB类燮”丈本框中直接输入FFB类矍,也可通过下拉莱单从最近
使用的名称列表中选择FFB类矍,或者点击按钮,进入
FFBH•型递择畲口逸择•如下图所示。
功晦加世fi|
F|名称J7PEFPEFBFDFB
•第二步:
A4/糸列栏中选择舍有所需功能块的库,如果不知道要寻找的PFB属于哪一个库儲选择vLibset>项,查看所有可用FFB的列表;然后从名称栏选择需要的功能块,单
击OK确认选择,该窗□关闭,FFB输入助手激活。
•第三步:
在“卖例”丈本桓修改缺省的功能块卖例名称,如不熟垂该功能块的使用,可单击“类矍帮助”,打开该功能块的蛊线帮助;对于一些复杂的功能块,糸统还提供
“特殊助手”选项,引导使用。
•第四步:
给功能块的形参分配卖参確输入助手窗D双击形参后的“输入字段”单元,然后输入相关参数,也可以将功能块放置到程序中后再选择引脚自行填写实参。
第二种:
通过“数据选择”调用FFB:
•蛊打开“数据选择”窗口后,选择FFB类型的方出同上,如
果之前>&“工具”>“选项”对话桓的“语言和数据”选项卡中,勾选了“自动将变量分配给新的图形对象”的复没有勾选该复选桓p则不会打开输入助手。
第三种:
通过“类矍库浏W中的拖放功能调用PFB:
•打开“类燮库浏览春”后,选择您所需要的功能块,用氯标按住不动,直接拖到程序偏辑乐中放置即可。
•FFB的执行顺序由其在代码段中的後置决走(从左到右.
从上到下执行),如果FFB以图形方或连接而不是卖参侧执行顺序由信号流决定;
•FFB的执行顺序偏号显示庭功能块结构的右上角;应
FFB的图形网络中,只有当FFB的输入所连揍的所有元
素(其他PFB输出等)都处理完举后,才执行该FFB;
•与同一FFB不同输岀连接的FFB轨行顺序:
从上到下执行;FFB的执行顺序与其应图形网络中的铉置无关。
•更改PFB的执行顺序,可采用链珞图形化连接来代菩卖参;也可以改变图形网络住置;或者扈属性对话桓中修改其执行顺序,如下图所示,可设置该功能块A其他某个功能块执行后立即执行。
出10住杆控钏
SR_CALL
'—ENENO
—SR_NAME
2.子程序调用:
Condition
MySR
•如果EN的状态为1,则调用相应子程序fSR_Name的变量名称丿;
•不使用输岀ENO显示此类功能块的错谟状态;
•输出ENO始终为1,它可用于同对调用多个子程序。
调用多个子程序的结构:
•待调用的子程序必须与调用的FBD段铉于同一任务中;
•子程序也可以从子程序内进行调用;
•子程东调用是对DEC61131-3的补右強须枝朋确激活。
3>控制元素:
•控制元素用于
或导出的功能3
名尊
演小
描述
跳转
NEXT
T
如果左議播的状态是仁就会产生一个到标id的跳转(任当前代码段),
如果耍生成一个有条件跳转+要把一金眺转对象链接到一个布尔FFB倫出。
如果要生成一个无条件跳转-可以琲过堵如AND这样的功能把数値1赋绐跳传苛轨
标记
LABEL-
标记(摊转冃标)□文本表示,其末尾有一个目号。
这个文本堆峯可以有32个字符,任整个代码段中必兔艮唯一的。
文本必*符台常规命名惯例.,跳转标记只陡敗任代码段左边缘的头两个网格Z间。
?
1*«:
赏转标记不傩“穿越f网樹中的对象,也就£ift,任何对象都不能放于从跳转标记到代码段右边缘的母线Z间。
这对观转链接也同样适用*
返回
YRETURN〉
毎一,子程序和DFB(导出功能块)枉被处理完毕以后都会退出,也就足说,返回到被调用的主程序。
如果子程if/DFB提早离开,可以通过返回对象强胡快其返回主程序。
如果左链接的状态足仁会从子程序或DFB(导出功能块)返回到主程序。
返回对象只能用于DFB或#SR子程序。
它们不能用ft主程序内。
如果要生成一个有条件返回+需要把一个返回对釵琏接到一个布尔FFB输岀1:
:
vail
5、丈本对象:
•4.FBD功能块语言中可使用丈本对象;
・丈本对象的丸小取决于丈本的长度;
•对象尺寸由丈本大小决走,它可以沿垂直和水平最开,占用更多的网格单元;
•丈本对象不能与PPB重金;但可与铤接重金。
6、执行顺序:
1)简介:
•执行顺序由FFB应代码段内的铉置决定(从左到右、从上到下执行丿;
•若以图形方式铤接,执行顺序由信号流决定;
•执行顺序由执行号码(伐于FFB桓杀左上角数学丿表示
•对代码段的执行,是按基于每个FFB毬接,从上到下,逐个网划克,成;
•不能使用链樓创建环珞,因为这种惜况下无出确走执行顺序,必须使用卖际参数创建回路;
•旨图形没有毬接来确走的网络规行顺序对,这个执行顺
序是可以人为千预的;
•若A网络使用B的输出,则農完成B网划的处理后,才能开始处理A网划;
•所有网络元素,只有農其所有输入状态都经过计算之后,才能进行处理;
•只有京处理了网给上的所有输出后,此网络的处理才算结隶;
3)在网络内的信号波
•只右与其输入相铤接的所有元素(TPB输岀等丿处理完毕后,才能处理FFB;•与同一FFB的不同输岀链接的FFB的执行顺序为从上到下轨行;
•FFB的执行顺序不受它蛊网给中的伐置的彩响;
如果多个FFB连接到“调用”FFB的同一输出,则此规则不适用,这种情况下,执行顺序由图形顺序决定(从上到下)。
4)优先级
描述
优先级规则
1链路
在FBD段中定义信号流时,链路具有最
高优先级。
逐个网络
2用户定义用户对执行顺序的访问。
在完成一个网络的处理后,才能开始处理另一个网络。
输出相链接的各个FFB按照从上到下的
逐个梯级
顺序处理。
最低优先级,(只有在其他规则都不适用时才会应用此规则)。
4)例:
NW!
AND
NW2
14
.1920
7,更欧执行顺序:
•有对候需更改糸统建仪的执行顺序,操作过程如下:
例:
初始状态,下图给出两个网络,在这两个网络中,执行顺序仅由功能块在段中的位置定义,而未考虑功能块0.4/0.5和67/0爭需雲不同的机行顺序。
.6.7
•通过使用
2)网络位置
•通过
更改网
络在段
中的位
置可获得正确的执行顺序。
B
an
3)明确的定义:
•通过明确更改FFB的执行顺序获得正确的执行顺序;
•为指示那些FFB的执行顺序已经更改,赤色字段中显示有执行序号。
•在第一个网络中,功能块位置0.4和0.5进行了交换;
•这种情况下俩个功能块输入的来源相同),两个功能块的执行顺序也会交换(从上往下进行处理)。
•在第二个网络中,功能块位置0.7和0.8进行了交换;
•这种情况下俩个功能块输入的来源不同),功能块的执行顺序不会交换(根据功能块输出的调用顺序进行处理)。
1)不允许的环路:
•不允许只通过铤接配置环珞,因为无出说明信号流(一个FFB的输出是下一个FFB的输入,这个FFB的输出又是第一个FFB的输入丿o
2)通过实际参数生成环路:
•此类逻辑必须通过反績变量解决,以便能确定传号流;•必须对反績变量进行初始化;初始值用于逻辑的第一次执行中,执行以后,初始值会菠卖际值尊换;
•请注意两个功能块的两种不同的执行顺序(卖例名称后面的括号中的數学丿O
演示FBD代码段的演示:
EN输入ENO输出求反ST表达式
5-1・5结构化丈本(ST)
•结构化文本(StructText)编程类似于计算机语言编程,利用它可以方便地建立、编辑和实现复杂的算法,特别在数据处理、计算存储、决策判断、优化算法等涉及描述多种数据类型的变量应用中非常有效。
・・
•ST程序是由一组语句列表组成,这些语句将由控制器按顺序执行。
通过这些语句,可在一个代码段中有条件或无条件地调用功能块进行赋值,执行重复语句和在同一个代码段中执行条件跳转或无条件跳转指令。
•ST程序语句由操作符、操作数、表达式(可选)、注释(可选)构成。
每条语句以分号结尾,多条语句(以分号分隔)可以放置在同一行,每行限制为300个字符,1条语句可以断行(多行放置),语句输入后,将立即执行一次语法和语义检查,检查结果将以彩色文本显示。
•在使用ST语言编程时,对于已声明的变量,可在目标位置直接输入变量名称,也可通过数据选择输入变量。
•通过数据选择输入变量的方法是:
菜单命令“编辑”>“数据选择”或者右键菜单“数据选择”打开数据选择对话柜入口栏杆左制+)~~
爲能入口有车)and甌P』冈&]
•然后从最近使用的名称列表中选择变量名称,也可使用按钮打开一个变量选择对话框选择变量。
对于未声明的变量,将光标置于目标位置,输入变量名称,经过系统自动检查后,系统使用红色波浪线标记变量名称,标识其为未声明变量,然后你可以在单击右键创建变量,也可到数据编辑器中去声明变量,声明后,变量名称下的红色波浪线消失。
例:
(笊入口吃杆揑制时
IFr*e(入口百车)arid灯andnot入口轻杆手动抬起THENset(入口栏杆自动抬起);
EgF;
IF车己进入ornot紧停并关THENreset(入口栏杆自动抬起);
EM0_IF:
入口栏杆抬起:
=(入口栏杆目动抬起or入口栏杆手动抬起);肄停车场车浒数量控制.少于100酒时绿灯盘■JS到10。
辆红灯盍聃)
车辆计数盟(OJ:
=车己进入
绿灯:
二LT.1NT(INI:
=当前停车数星,
1M2;=100);
红疔:
=E(LINT(INI:
=当前停车数星.
1H2:
=10Q);
斡岀口栏杆揑制衬
岀车后10s计时器UN:
=出口有车.
PT:
=ttlfls.
0=>10站间到);
IF(lO^TRa诃紧停开关andnot岀口栏杆手动抬起)or岀口栏杆手动抬起THEN出口栏杆抬起:
二1:
ELSE出口栏秤抬起:
二0;
EST代码段演示:
指令
运算符操作数
D=・4*A*C;(水BfisisCnlcul日ticmr)
检查窗口
XI
%QF4.23
Coniment
IFDVaoTHENNROOTS三0;ELSIFD=0.0THEN
NROOTS:
=1;XI:
=-B/(2.0出A);
ELSE
NROpTS:
=2;
XI:
=|(・B+SQRT(D))/(2.OF;一X2:
=(-B-SQRT(D))/(2.0*A);END_IF;
表达式
错误提示Vai^T=15;(*Undeclared变星*)
J-1E1061UndefinedSymbol'Vaix