语句表指令介绍

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

位或者复位的方法。
还有:
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秒钟的时钟周期。
22
BCD与整数之间的转换,负数的BCD格式 与常规不同。
23
BCD与双整型转换
双整型转换与BCD
24
INVI:整型各位取反
NEGI:整型各位取反加1 即得到负数
25
CAD、CAW指令
得到负数
26
圆整到 最近整数
MD10 = "100.5" MD10 = "-100.6" MD10 = "100.6" MD10 = "-100.5"
打开数据块方式
访问背景数据块时,可以使用DI,也可以使用DB打开数据块。 33
应用
把共享数据块的内容 送到背景数据块内
首先打开共享数据块DBMS; 然后从中读出DBD1176(此 处访问共享数据块,所有使 用DBD***);最后,传送到 DID相应地址中去(此处访问 背景数据块,所有使用 DID***,且不要指定数据块 号,因为在调用FB时已经指 定了数据块 );
正负边沿 检测 保存RLO 到BR中
NOT RLO取反 SET RLO置位 CLR RLO复位 FN 负边沿检测 FP 正边沿检测
对于简单的指令, 如(#),(P)等, 如果在LAD中看不 清楚,可以转换成 语句表,了解整个
执行流程。
2
基本置位复位
RS/SR触发器转 换成语句表以后 为R指令和S指令
49
如何单步运行
• 1,打开online功能块;(语句表格式) • 2,设置运行模式为test模式; • 3,插入断点,单步运行。
50
可以观察 PLC的寄 存器数值, 查看各个 工作区域 变化值。
51
52
53
54
55
JUO使用: • 除以0; • 使用非法指令; • 浮点数比较,与无穷大或无穷小比较。
组合
3
(N)检测前面M1.2的状 态,其数值放置在M1.3内 ,与下一次M1.2相比。
=输出,赋值指令
(P)检测前面M1.2 的状态,其数值放置 在M1.4内,与下一次 M1.2相比。
4
NEG检测M1.6 的状态。
因为Q4.4的状态只 是保持一个周期, 所以使用一个自锁, 观察状态。
5
系统把某一变量恒定置
SET RLO置位 CLR RLO复位
10
?以下程序段对应与什么样的梯形图
A M 2.0 AN M 2.1 AN M 2.2 ON M 2.3 O A M 2.4 A M 2.5 ON M 2.6 = M 2.7
11
• A( • A( • O M 1000.0 • ON M 100.5 •) • A( • ON M 1000.1 • O M 1000.2 •) • A M 1000.3 • O M 1000.6 •) • A M 1000.7 • = M 100.4
=> RND + =>
MD20 = "-100"
28
4. 计数器指令
如果S引脚输入1,则计数器值为PV内数值; 如果R引脚输入1,则计数器计数器值清零; 如果CU引脚从0->1,则计数值加一,到999为止且保持不变; 如果CU引脚从1->0,则计数值减一,到零为止且保持不变;
29
30
把数值12赋给c3。 加减计数
56
LOOP跳转
57
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 取余数
=> RND => => RND => => RND => => RND =>
MD20 = "+100" MD20 = "-101" MD20 = "+101" MD20 = "-100"
27
截去小数点后数
向上圆整
MD10 = "100.5"
=> RND+ =>
MD20 = "+101"
MD10 = "-100.5"
梯形图指令
始终是先输入的与后 输入的比较。如果大 于,则>I指令输出1。
17
双整型数MD20>MD24, RLO置位,M2.0输出。
梯形图指令
18
比较实数
19
应用
20
3. 格式转换指令
BTI/BTD BCD到整型数/双整型数 ITB/DTB 整型数/双整型数到BCD ITD 整型数到双整型数 DTR双整型数到实数
58
加法运算各种结果下的状态位指示。
59
+I 与 + 的用法
L 20 + 200 T MW 192
60
乘法运算各种结果下的状态位指示。
61
如果运算结果超出变量范围,如上例里面结果超出16位的 MW184,赋值后出现错误结果,因此在乘法运算时尤其 注意应该考虑结果会溢出的情况。此时可以读出状态字, 1011指示结果超出32767,应该赋值给32位整型。
INVI 整型按位取反(16位) INVD 双整型按位取反(32位) NEGI 整型按位取反加1,得到负数 NEGD 双整型按位取反加1,得到负数 NEGR 实数得到负数
CAD 交换累加器1低位内容,0-7 <-> 8-15对换 CAW交换累加器1内容,ABCD 换成 DCBA。 RND、 RND+ 、RND- 、TRNUC 圆整、截尾。
12
13
以下两段程序的区别
A(
A(
A M 2.0
A M 2.0
JNB _001
CALL FC 1
CALL FC 1
A M 2.1 = M 2.2 A BR )
_001: A BR = M 2.5 A M 2.1 = M 2.2 A BR
A M 2.3
)
= M 2.4
A M 2.3 = M 2.4
I 2.1
//Program scan resumes here after jump to jump label JOVR.
45
根据状态位BR/OV/OS跳转
注意此处JO与JOS的区别,JO只是判断前面的一 个计算是否溢出,而JOS则判断前面所有计算是 否有过溢出。
46
47
根据运算结果跳转
48
in MD10.
35
L DBLG 装载共享数据块长度 L DBNO 装载共享数据块编号 L DILG 装载背景数据块长度 L DINO 装载背景数据块编号
36
• DB_CC_STAT为 DB4,保存控制台 激活的信号;
• 同时把此信号存 放到输出里。
37
38
CDB
解决了在一个功能块内调用两个共享数据块的问题; 否则使用OPN DB1,××× 再使用 OPN DB2,××× 容易出问题。
8
停止时有灯按照一 定的频率闪烁,程 序如上图。
X XN 的组合逻辑关系图, X/X组合在状态不同时输出为1; X/XN组合在状态相同时输出为1;
9
()前后的操作,先看括 号前的指令,再接合括 号内指令。得出输出。
把括号前的A看成 是串连逻辑,括号 与括号之间为串连 关系。
O前后为并联逻辑, 也就是说只要前后 有一个为1,结果 为1;
40
6. 逻辑控制指令
41
无条件跳转指令
JL:跳转表格 JU:无条件跳转
42
根据JL后面指令和JL指向标签栏之间 的跳转个数决定如何跳转。
43
根据RLO条件跳转指令
44
BR很多时候用于输出ENO。
A A JCB
L பைடு நூலகம் JOVR:
I 1.0 I 1.2 JOVR
IW8 MW22 A
//Jump if RLO = 1 to jump label JOVR. Copy the contents of the RLO bit into the BR bit. //Program scan continues here if jump is not executed.
15
◎◎
ACCU1
$$
ACCU2
L *** //执行完此句时,把L的数值***装入累加器1,累加器1 内数值◎◎装入累加器2;
***
ACCU1
ACCU2
L ### //执行完此句时,把L的数值###装入累加器1,累加器 1内***数值装入累加器2;
###
ACCU1
***
ACCU2
16
整数MW20>MW22, RLO置位,M2.0输出。
39
状态字
状态字表示CPU执行指令时所具有的状态,用户程序可以访问和检 测状态字,并可以根据状态字中的某些位决定程序的走向和进程。
15 ······
876543210 BR CC1 CC0 OS OV OR STA RLO FC
首次检测位 * 逻辑操作结果* 状态位 或位 溢出位 溢出状态保持位 条件码0 条件码1 二进制结果位
62
除法运算各种结果下的状态位指示。
63
除法:ACCU2-L/ACCU1-L,然后结果放到ACCU1L,而余数放到ACCU1-H,影响的状态位如上页 所示; 所以在上图中,当结果放置到MW192时,看不到 余数,而放到MD196时,可以看到高位的余数数 值。
64
ACCU2/ACCU1,余数放到ACCU1;
指令介绍
1. 位操作指令
2. 比较指令
3. 格式转换指令
4. 计数器
5. 块操作
6. 逻辑控制
7. 算术指令
8. 装载与传送指令
9. 程序控制指令
10. 移位指令
11. 定时器
12.字逻辑操作指令
13. 累加器相关指令
1
1.位操作指令
A与
AN 与非 O或 ON 或非
取反
输出 中间值
X
复位
XN
置位
RS/SR触 发器
31
5. 块操作指令
OPN 打开数据块 CDB 交换数据块内容 L DBLG 装载共享数据块长度 L DBNO 装载共享数据块编号 L DILG 装载背景数据块长度 L DINO 装载背景数据块编号
32
CDB交换数据块内容,例如把背景 数据块里面的内容与共享数据块交 换,可以访问共享数据块,进行操 作处理。
34
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
21
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码。
14
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
相关文档
最新文档