语句表指令介绍

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SET RLO置位 CLR RLO复位
10
?以下程序段对应与什么样的梯形图
A AN AN ON O A A ON = "STAT-a1".ROB_CTRL.Pr_AtomOn "STAT-a1".ROB_FLT.Flt_Seq_Program_5 "STAT-a1".ROB_FLT.Flt_General_2 "EPS-CTRL_1".AT.ROB2_EN "GHOST_RUN" "GHOST-W-COL" "PARA-STA".a1_ENABLE "CR-ATa1"
再使用 OPN DB2,×××
容易出问题。
38
状态字
状态字表示CPU执行指令时所具有的状态,用户程序可以访问和检
测状态字,并可以根据状态字中的某些位决定程序的走向和进程。
15 · · · · · · 8 BR 7 6 5 OS 4 OV 3 OR 2 1 0 FC
CC1 CC0
STA RLO
首次检测位 *
指令介绍
1. 位操作指令 2. 比较指令 3. 格式转换指令 4. 计数器 5. 块操作 6. 逻辑控制 7. 算术指令 8. 装载与传送指令 9. 程序控制指令 10. 移位指令 11. 定时器 12.字逻辑操作指令 13. 累加器相关指令
1
1.位操作指令
A AN O ON X XN 与 与非 或 或非
16
整数MW20>MW22, RLO置位,M2.0输出。
梯形图指令
双整型数MD20>MD24, RLO置位,M2.0输出。
17
比较实数
18
应用
19
3. 格式转换指令
BTI/BTD BCD到整型数/双整型数 ITB/DTB 整型数/双整型数到BCD ITD 整型数到双整型数 DTR双整型数到实数 INVI 整型按位取反(16位) INVD 双整型按位取反(32位) NEGI 整型按位取反加1,得到负数 NEGD 双整型按位取反加1,得到负数 NEGR 实数得到负数 CAD 交换累加器1低位内容,0-7 <-> 8-15对换 CAW交换累加器1内容,ABCD 换成 DCBA。 RND、 RND+ 、RND- 、TRNUC 圆整、截尾。
打开数据块方式
访问背景数据块时,可以使用DI,也可以使用DB打开数据块。
32
应用
把共享数据块的内容 送到背景数据块内
首先打开共享数据块DBMS; 然后从中读出DBD1176(此 处访问共享数据块,所有使 用DBD***);最后,传送到 DID相应地址中去(此处访问 背景数据块,所有使用 DID***,且不要指定数据块 号,因为在调用FB时已经指 定了数据块 );
57
加法运算各种结果下的状态位指示。
58
+I 与 + 的用法
L + T
20 200 MW 192
59
乘法运算各种结果下的状态位指示。
60
如果运算结果超出变量范围,如上例里面结果超出16位的 MW184,赋值后出现错误结果,因此在乘法运算时尤其 注意应该考虑结果会溢出的情况。此时可以读出状态字, 1011指示结果超出32767,应该赋值给32位整型。
8
停止时有灯按照一 定的频率闪烁,程 序如上图。
X XN 的组合逻辑关系图, X/X组合在状态不同时输出为1; X/XN组合在状态相同时输出为1;
9
()前后的操作,先看括 号前的指令,再接合括 号内指令。得出输出。 把括号前的A看成 是串连逻辑,括号 与括号之间为串连 关系。 O前后为并联逻辑, 也就是说只要前后 有一个为1,结果 为1;
I 2.1
//Program scan resumes here after jump to jump label JOVR.
44
根据状态位BR/OV/OS跳转
注意此处JO与JOS的区别,JO只是判断前面的一 个计算是否溢出,而JOS则判断前面所有计算是 否有过溢出。
45
46
根据运算结果跳转
47
48
如何单步运行
• 1,打开online功能块;(语句表格式) • 2,设置运行模式为test模式; • 3,插入断点,单步运行。
49
可以观察 PLC的寄 存器数值, 查看各个 工作区域 变化值。
50
51
52
53
54
JUO使用:
• 除以0; • 使用非法指令; • 浮点数比较,与无穷大或无穷小比较。
5
系统把某一变量恒定置 位或者复位的方法。 还有: A “FALSE” R “FALSE” AN “TRUE” S “TRUE”
6
使用同一个 信号分别设 置本地与远 程操作。
紧停信号串 联,因为只 要一个出现 故障,则系 统断电。
7
根据某一时钟脉冲,再作出其它一些时钟脉冲。 本例子中,根据M6.1-1秒钟的时钟脉冲,作出一个3秒钟的时 钟脉冲来。 其中#IF.H1_Imp3Sec为一直小于3的计数变量,其在每次M6.1 为1时加1,加到3时,把M6.7置位输出,否则,复位M6.7,这 样M6.7每3秒变化一次,也就是一个3秒钟的时钟周期。
取反 输出 中间值 复位 置位 RS/SR触 发器 正负边沿 检测 保存RLO 到BR中 NOT RLO取反 SET RLO置位 CLR RLO复位 FN 负边沿检测 FP 正边沿检测
对于简单的指令, 如(#),(P)等, 如果在LAD中看不 清楚,可以转换成 语句表,了解整个 执行流程。
2
基本置位复位
14
◎◎
ACCU1
$$
ACCU2
L *** //执行完此句时,把L的数值***装入累加器1,累加器1 内数值◎◎装入累加器2;
***
ACCU1
◎◎
ACCU2
L ### //执行完此句时,把L的数值###装入累加器1,累加器 1内***数值装入累加器2;
###
ACCU1
***
ACCU2
15
梯形图指令 始终是先输入的与后 输入的比较。如果大 于,则>I指令输出1。
=> RND+ =>
=> RND + =>
MD20 = "+101"
MD20 = "-100"
27
4. 计数器指令
如果S引脚输入1,则计数器值为PV内数值; 如果R引脚输入1,则计数器计数器值清零; 如果CU引脚从0->1,则计数值加一,到999为止且保持不变; 如果CU引脚从1->0,则计数值减一,到零为止且保持不变;
=> RND => => RND => => RND =>
MD20 = "+100" MD20 = "-101" MD20 = "+101"
MD10 = "-100.5"
=> RND =>
MD20 = "-100"
26
截去小数点后数
向上圆整
MD10 = "100.5"
MD10 = "-100.5"
11
• • • • • • • • • • • • • •
A( A( O ON ) A( ON O ) A O ) A =
M 1000.0 M 100.5
M 1000.1 M 1000.2 M 1000.3 M 1000.6 M 1000.7 M 100.4
12
13
2. 比较指令
== ACCU2等于ACCU1 <> ACCU2不等于ACCU1 > ACCU2大于ACCU1 < ACCU2小于ACCU1 >= ACCU2大于等于ACCU1 <= ACCU2小于等于ACCU1 如果满足条件,则RLO赋值, 根据不同的参数类型有不同指令: 整型数 ==I, <>I, >I, <I, >=I, <=I 双整型数 ==D, <>D, >D, <D, >=D, <=D 浮点数 ==R, <>R, >R, <R, >=R, <=R
逻辑操作结果*
状态位 或位 溢出位 溢出状态保持位 条件码0 条件码1
二进制结果位
39
6. 逻辑控制指令
40
无条件跳转指令
JL:跳转表格
JU:无条件跳转
41
根据JL后面指令和JL指向标签栏之间 的跳转个数决定如何跳转。
42
根据RLO条件跳转指令
43
BR很多时候用于输出ENO。
A A
I 1.0 I 1.2
21
BCD与整数之间的转换,负数的BCD格式 与常规不同。
22
BCD与双整型转换
双整型转换与BCD
23
INVI:整型各位取反
NEGI:整型各位取反加1 即得到负数
24
得到负数
CAD、CAW指令
25
圆整到 最近整数
MD10 = "100.5" MD10 = "-100.6" MD10 = "100.6"
61
除法运算各种结果下的状态位指示。
62
除法:ACCU2-L/ACCU1-L,然后结果放到ACCU1L,而余数放到ACCU1-H,影响的状态位如上页 所示; 所以在上图中,当结果放置到MW192时,看不到 余数,而放到MD196时,可以看到高位的余数数 值。
33
L DBLG 判断数 据块大小是否合 适
OPN DB10 //Open data block DB10 as shared data block. L DBLG //Load length of shared data block (length of DB10). L MD10 //Value for comparison if data block is long enough. <D JC ERRO //Jump to ERRO jump label if length is less than value in MD10.
20Baidu Nhomakorabea
BCD码
• BCD码的形式将重量信号传输给大屏幕进行显示 • BCD码(二到十进制编码) • 把十进制数的每一位分别写成二进制形式的编码,称为二进制编 码的十进制数,或BCD(Binary Coded Decimal)编码。 • BCD码编码方法很多,通常采用8421编码,这种编码方法最自然 简单。其方法使用四位二进制数表示一位十进制数,从左到右每 一位对应的权分别是23、22、21、20,即8、4、2、1。例如十进制 数975的8421码可以这样得出 • 975(D)=1001 0111 0101(BCD) • 用四位二进制表示一位十进制会多出6种状态,这些多余状态码称 为BCD码中的非法码。BCD码与二进制之间的转换不是直接进行 的,当需要将BCD码转换成二进制码时,要先将BCD码转换成十 进制码,然后再转换成二进制码;当需要将二进制转换成BCD码 时,要先将二进制转换成十进制码,然后再转换成BCD码。
55
LOOP跳转
56
7. 算术指令
(16位整型) +I ACCU 1 + ACCU 2 -I ACCU 2 -ACCU 1 *I ACCU 1 * ACCU 2 /I ACCU 2 / ACCU 1 + 整型常数 (16, 32位) (32位双整型) +D ACCU 1 + ACCU 2 -D ACCU 2 - ACCU 1 *D ACCU 1 * ACCU 2 /D ACCU 2 / ACCU 1 MOD 取余数
34
L DBLG 装载共享数据块长度 L DBNO 装载共享数据块编号 L DILG 装载背景数据块长度 L DINO 装载背景数据块编号
35
• DB_CC_STAT为 DB4,保存控制台 激活的信号; • 同时把此信号存 放到输出里。
36
37
CDB
解决了在一个功能块内调用两个共享数据块的问题; 否则使用OPN DB1,×××
28
29
把数值12赋给c3。
加减计数
30
5. 块操作指令 OPN 打开数据块 CDB 交换数据块内容 L DBLG 装载共享数据块长度 L DBNO 装载共享数据块编号 L DILG 装载背景数据块长度 L DINO 装载背景数据块编号
31
CDB交换数据块内容,例如把背景 数据块里面的内容与共享数据块交 换,可以访问共享数据块,进行操 作处理。
JCB
JOVR
//Jump if RLO = 1 to jump label JOVR. Copy the contents of the RLO bit into the
BR bit.
L T JOVR:
IW8 MW22 A
//Program scan continues here if jump is not executed.
RS/SR触发器转 换成语句表以后 为R指令和S指令 组合
3
(N)检测前面M1.2的状 态,其数值放置在M1.3内 ,与下一次M1.2相比。
=输出,赋值指令
(P)检测前面M1.2 的状态,其数值放置 在M1.4内,与下一次 M1.2相比。
4
NEG检测M1.6 的状态。
因为Q4.4的状态只 是保持一个周期, 所以使用一个自锁, 观察状态。
相关文档
最新文档