PLC编程语言

西门子plc
西门子plc
西门子plc
1976
文章
127
评论
2018年12月9日13:57:31 评论 932 阅读
PLC编程语言

PLC 常用的编程语言

PLC编程语言

注:对于数字量模块不一定要进行硬件组态,而对于模拟量模块一定要 进行硬件组态。

4.1 指令及其结构 指令是程序的最小独立单位,用户程序是由若干条顺序排列的指令构成.

4.1.1 指令的组成

1.语句指令

语句指令用助记符表示 PLC 要完成的操作。

指令:操作码+操作数 操作码用来指定要执行的功能,告诉CPU该进行什么操作;操作 数内包含为执行该操作所必需的信息,告诉CPU用什么地方的数 据来执行此操作。

例如: 操作码 操作数

0 I0.0

O I0.1

= Q0.0

有些语句指令不带操作数,因为它们的操作对象是唯一的。 例如:操作码 操作数

NOT SET

2.梯形图指令
梯形图指令用图形元素表示 PLC 要完成的操作。在梯形图指令中,其操作 码是用图素表示的,该图素形象表明 CPU 做什么,其操作数的表示方法与 语句指令相同。

例如:PLC编程语言

梯形图指令也可不带操作数。 例如:

PLC编程语言

4.1.2 操作数

1.标识符及标识参数

PLC编程语言

M:位存储区 T:定时器 C:计数器 L:本地数据 DB:数据块

X:位 B:字节 W:字 D:双字

注意:①PLC 物理存储器是以字节为单位的。

②当操作数长度是字或双字时,标识符后给出的标识参数是字或双 字内的最低字节单元号。

③当使用宽度是字或双字的地址时,应保证没有生成任何重叠的字 节分配,以免造成数据读写错误。

2.操作数的表示法

操作数的表示法

物理地址(绝对地址)

符号地址(必须先定义后使用,而且符号名必须是 唯一的)

关于定义符号地址的几点说明:

(一)当你在表中输入符号地址时,应注意以下几点:

注意
符号 在整个符号表中名字必须唯一。当你确认该区域的输入 或退出该区域时,不唯一的符号则被标定出来。符号名 最长可达 24 个字符。引号(“”)不允许使用。
地址 当你确认该区域的输入或退出该区域时,程序会自动检 查该地址输入是否是允许的。
数据类型 当你确认或退出地址时,该区域被自动地赋予一个缺省 数据类型。如果你修改这个缺省类型,程序会检查你的 数据类型是否与地址相匹配。
注释 你可以输入注释简单地解释该符号的功能(最多 80 个字 符)。

(二)你必须区分局域(块定义)符号和共享符号

共享符号 局域符号
有效性 •在整个用户程序中有效

•可以被所有的块使用

•在所有的块中含义是一样的

•在整个用户程序中是唯一的

•只在定义的块有效

•相同的符号可在不同 的块中用于不同的目 的

允许使用 的字符 •字母、数字及特殊字符。

•除 0X00,0XFF 及引号以外的强 调号

•如使用特殊字符,则符号须写 出在引号内。

•字母

•数字

•下划线(_)(注意: 不允许使用两个连续 的下划线)

使用 你可以为以下各项定义共享符 号:

•I/O 信号(I,IB,IW,ID,Q, QB,QW,QD)

•I/O 输入与输出(PI,PQ)

•存储位(M,MB,MW,MD)

•定时器(T)/计数器(C)

•逻辑块(FB,FC,SFB,SFC)

•数据块(DB)

•用户定义数据类型(UDT)

•变量表(VAT)

你可以为以下各项定 义局域符号:

•块参数(输入,输出 和输入输出参数)

•块的静态数据

•块的临时数据

在哪里定 义 符号表 块的变量声明表

(三)显示共享或局域符号 你可以在程序的指令部分区分开共享符号和局域符号。

•符号表中定义的符号(共享)显示在引号内。

•块变量声明表中的符号(局域)显示时前面加上“#”。 提示:

使用菜单命令 View>Display>Symbolic Representation,你可以在所有 声明的符号地址和绝对地址之间进行切换。

4.1.3 寻址方式

寻址方式是指令得到操作数的方式。

PLC编程语言

PLC编程语言

4.1.4 数据类型

数据类型决定了你以什么方式或格式理解或访问存储区中的数据。

PLC编程语言

4.1.5 状态字

状态字用于表示 CPU 执行指令时所具有的状态。

PLC编程语言

如何输入梯形图组件:

1、在段中选择一点,你想在该点后面插入一个梯形图组件。

2、用下列方法之一,在段中插入所需的组件:

• 在菜单“Insert”中选择合适的菜单命令,例如, Insert>LAD Element>Normally Open Contact

• 用功能键 F2、F3 或 F7 输入一个常开触点、常闭触点或输出线圈。

• 选择菜单命令 Insert>Program Elements 打开“program Elements

(编程组件)”对话框并在目录中选择所需的组件。 所选的梯形图组件被插入,问号被用来表示地址和参数。

如何输入语句表语句: 1、通过点击灰色注释框下面的任意区域就可打开正文框(或者若不显示

段注释则在段标题的下面)。 2、输入指令、按空格键,然后是地址(直接或间接地址)。

3、按空格键并输入以双斜线//开始的注释(可选)。

4、在完成一条(一行)带注释或不带注释的语句后按 RETURN。 一行完成后,运行语法检查,这条语句形成并显示,指令中或绝对地址 中的任何小写字母都转换为大写。任何查到的语法错误都显示为红色斜 体,在存储该逻辑块之前必须修改所有错误。

4.2 位逻辑指令

PLC编程语言

4.2.1 位逻辑运算指令

1.“与”、“或”、“异或”指令

(1)语句指令

布尔逻辑串内的真值表(根据下列表可以确定第二条布尔位操作 后的 RLO)

助记符 指令 指令前 RLO 地址状态 RLO 结果
A 0 0 0
0 1 0
1 0 0
1 1 1
AN 与非 0 0 0
0 1 0
1 0 1
1 1 0
O 0 0 0
0 1 1
1 0 1
1 1 1
ON 或非 0 0 1
0 1 0
1 0 1
1 1 1
X 异或 0 0 0
0 1 1
1 0 1
1 1 0
XN 异或非 0 0 1
0 1 0
1 0 0
1 1 1

布尔逻辑串开始的真值表

助记符 指令 地址状态 RLO 结果
A 0

1

0

1

AN 与非 0

1

1

0

O 0

1

0

1

ON 或非 0

1

1

0

X 异或 0

1

0

1

XN 异或非 0

1

1

0

(2)梯形图逻辑指令

①常开接点(动合触点)元素和参数

PLC编程语言

②常闭接点(动断触点)元素和参数

PLC编程语言

2.输出指令

输出指令把状态字中 RLO 的值赋给指定的操作数

STL 指令 LAD 指令 功能 操作数 数据类  存储区
=<地址> <地址>

---( )

逻辑串赋 值输出 <位地址> BOOL I,Q,M, D,L
  <地址>

--(#)--

中间结果 赋值输出 <位地址> BOOL I,Q,M, D,L

二分频器是一种具有一个输入端和一个输出端的功能单元,输出频率为输 入频率的一半。如下,输入为 I0.0,输出为 Q4.0。

PLC编程语言

梯形图程序:

PLC编程语言

语句表程序:

PLC编程语言

例二 风机监控程序 某设备有三台风机,当设备处于运行状态时,如果风机至少有两台以上 转动,则指示灯常亮;如果仅有一台风机转动,则指示灯以 0.5Hz 的频 率闪烁;如果没有任何风机转动,则指示灯以 2Hz 的频率闪烁。当设备 不运行时,指示灯不亮。

梯形图程序:

PLC编程语言

语句表程序:

PLC编程语言

输入位 I0.0,I0.1,I0.2 分别表示风机 1,2,3。存储位 M100.3 为 2Hz 的 频率信号,M100.7 为 0.5Hz 的信号。风机转动状态指示灯由 Q4.0 控制。 存储位 10.0 为 1 时用于表示至少有两台风机转动,M10.1 为 1 时表示没 有风机转动。

例三 启动和自锁程序
程序功能:输入 X0 闭合时,输出 Y0 闭合且自锁。只有在 X1 闭合时,其 动断触点打开,Y0 断开。其时序图如下。

PLC编程语言

梯形图程序:

PLC编程语言

语句表程序:

PLC编程语言

练习:请指出以下实现输出 Q0.0、Q0.1 互锁程序的错误,并改正。

PLC编程语言

例四 优先程序 优先程序执行时,能在多个输入信号中仅接收最先一个输入信号作出反 映,其后的输入信号不接收。此原则常用于抢答器中。

PLC编程语言

PLC编程语言

例五 灯泡控制程序 一盏灯泡由一个按钮来控制,已知第一次按下按钮,灯泡亮,第二次按 下按钮,灯光灭。

(一)PLC 接线图

PLC编程语言

(二)定义符号地址

符号地址 绝对地址 类据类型 说明
S0 I0.0 BOOL 按钮
L0 Q0.0 BOOL 灯泡
M0 M0.0 BOOL 标标位

(三)梯形图程序

PLC编程语言

例六 双作用气缸连续往复运动控制 按启动按钮双作用气缸连续往复运动,按停止按钮,停止运动。

(一)气控回路

PLC编程语言

(二)PLC 接线

PLC编程语言

(三)定义符号地址

符号地址 绝对地址 类据类型 说明
S0 I0.0 BOOL 启动按钮
S1 I0.1 BOOL 停止按钮
1S1 I0.2 BOOL 位置传感器
1S2 I0.3 BOOL 位置传感器
1Y1 Q0.0 BOOL 换向阀电磁线 圈
1Y2 Q0.1 BOOL 换向阀电磁线 圈
M0 M0.0 BOOL 启动线圈

(四)梯形图程序

PLC编程语言

练习:编制电动机点动和连续运转控制程序。

输入端 控制触点 控制功能 输出端 执行器件 实现功能
I0.0 停止按钮 (常开) 停止 Q0.0 KM1 控制电动 机电源
I0.1 点动按钮 (常开) 点动 Q0.1 保护指示 灯 当保护动 作时闪亮
I0.2 连续运转 按钮(常 开) 连续运转启动    
I0.3 热继电器 触点(常 闭) 过载保护动作 使得电机停止    

参考程序:

(一)定义符号地址

PLC编程语言

(二)LAD 程序

PLC编程语言

练习:编制双控灯控制程序,要求开关 K1 或 K2 任意一个开关的开和 关的操作均可以控制灯 L 的亮和灭。完成后可再编制三控灯。 参考程序

程序 1:

PLC编程语言

PLC编程语言

3.置位/复位指令

STL 指令 LAD 指令 功能 操作数 数据类型 存储区
S<位地址> <位地址>---(S) 置位输出 <位地址> BOOL I,Q,M, D,L
R<位地址> <位地址>--(R) 复位输出 <位地址> BOOL,TIMER, COUNTER I,Q,M,D,L,T,C

复位/置位指令根据 RLO 的值,来决定被寻址位的信号状态是否需要改变。 若 RLO 的值为 1,被寻地址位的信号状态被置 1 或清 0;若 RLO 的值为 0,被寻 址位的信号保持原状态不变。这一特性又称为静态的置位/复位。相应地, 赋值输出被称为动态赋值输出。在 LAD 中置位/复位指令要放在逻辑串最右 端,而不能放在逻辑串中间。

4. RS 触发器

PLC编程语言

置位复位触发器真值表

S R Q
0 0
0 1 0
1 0 1
1 1 0

复位置位触发器真值表

R S Q
0 0
0 1 1
1 0 0
1 1 1

在 LAD 中,RS 触发器可以用在逻辑串最右端,结束一个逻辑串,也可用在逻辑串中,影响右边的逻辑操作结果。

例一 控制传送带 一个由电气启动的传送带,在传送带的起点有两个按钮开关:用于START 的 S1 和 STOP 的 S2。在传送带的尾部也有两个按钮开关:于 START 的 S3 和 STOP 的 S4。可以从任何一端起动或停止传送带。另外,当传送带上的物件 到达末端时,传感器 S5 使传送带停机。

(一)PLC 接线

PLC编程语言

(二)定义符号地址

符号地址 绝对地址 类据类型 说明
S1 I0.0 BOOL 起点启动按钮
S2 I0.1 BOOL 起点停机按钮
S3 I0.2 BOOL 尾部启动按钮
S4 I0.3 BOOL 尾部停机按钮
S5 I0.4 BOOL 末端传感器
MOTOR_ON Q0.0 BOOL 电机

(三)梯形图程序

PLC编程语言

思考题:

如下的程序有什么不足之处?应如何改正?

PLC编程语言

例二 双缸顺序动作控制程序 设计程序,使两个气缸顺序动作,其顺序为:A1B1B0A0。

(一)气控回路

PLC编程语言

(二)位移-步骤图

PLC编程语言

(三)I 型障碍信号分析

PLC编程语言

(四)PLC 接线

PLC编程语言

(五)定义符号地址

PLC编程语言

(六)梯形图程序

PLC编程语言

PLC编程语言

PLC编程语言

5.RLO 上升沿、下降沿检测指令

LAD 指令 STL 指令 功能 操作数 数据类型 存储区
<位地址>-(P)- FP<位地址> RLO 上升 沿检测 <位地址> 存储旧 RLO 的边 沿存储位 BOOL I、Q、M、 D、L
<位地址>-(N)- FN<位地址> RLO 下降 沿检测 BOOL I、Q、M、 D、L

RLO 上升沿检测指令识别 RLO从0至 1(上升沿)的信号变化,并且在操 作之后以 RLO=1 表示这一变化。用边沿存储位比较 RLO 的现在的信号状态 与该地址上周期的信号状态,如果操作之前地址的信号状态是 0,并且现在 RLO=1,那么操作之后,RLO 将为 1(脉冲),所有其它的情况为 0。在该操 作之前,RLO 存储于地址中。

RLO 下降沿检测指令识别 RLO从1至 0(下降沿)的信号变化,并且在操 作之后以 RLO=1 表示这一变化。用边沿存储位比较 RLO 的现在的信号状态 与该地址上周期的信号状态,如果操作之前地址的信号状态是 1,并且现在 RLO=0,那么操作之后,RLO 将为 1(脉冲),所有其它的情况为 0。在该操 作之前,RLO 存储于地址中。

如果 RLO 在相邻的两个扫描周期中相同(全为1或 0),那么 FP或 FN语 句把 RLO 位清 0。

6.地址上升沿、下降沿检测指令

PLC编程语言

PLC编程语言

地址上升沿检测指令将<位地址 1>的信号状态与存储在<位地址 2>中的 先前信号状态检查时的信号状态比较。如果有从0至1 的变化的话,输出 Q 为 1,否则为 0。

地址下降沿检测指令将<位地址 1>的信号状态与存储在<位地址 2>中的 先前信号状态检查时的信号状态比较。如果有从1至0 的变化的话,输出 Q 为 1,否则为 0。

在梯形图中,地址跳变沿检测方块和 RS 触发器方块可被看作一个特殊常 开触点。该常开触点的特性:若方块的 Q 为 1,触点闭合;若 Q 为 0,则触 点断开。

7.对 RLO 的直接操作指令

LAD 指令 STL 指令 功能 说明
-|NOT|- NOT 取反 RLO 在逻辑串中,对当前的 RLO 取反; 取反指令或置位 STA
------- SET 置位 RLO 把 RLO 无条件置 1 并结束逻辑串; 使 STA 置 1,OR FC 清 0
------- CLR 复位 RLO 把 RLO 无条件清 0 并结束逻辑串; 清 0 STA,OR FC
-(SAVE) SAVE 保存 RLO 把 RLO 存入状态字的 BR 位,该指令 不影响其它状态位

 

继续阅读
weinxin
plc入门知识问答
所有PLC工程师都会关注的微信公众账号,只需输入您的问题,就会有答案
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: