华运工控网

所属分类:PLC

嵌入式PLC编程简介

发布时间:2008-10-21

目   录

第一章 嵌入式PLC编程简介
1.1 嵌入式PLC简介..............................................................................................……………1
1.1.1  嵌入式PLC的提出..............................................................................…………..1
1.1.2  嵌入式PLC的特点...............................................................................………….1
1.1.3  嵌入式PLC产品举例...........................................................................………….1
1.1.4  关于本手册............................................................................................………….2
1.2  编程简介............................................................................................................………….3
1.2.1  指令集简介............................................................................................………….3
1.2.2  资源集简介............................................................................................………….8
  1.2.3  编程及应用简介....................................................................................………10

第二章 基本逻辑指令说明及应用
2. 1  基本逻辑指令一览表.......................................................................................………..11
2. 2  [LD],[LDI],[LDP],[LDF],[OUT] 指令............................................................………...12
 2.2.1  指令解说.................................................................................................………..12
 2.2.2  编程示例.................................................................................................………..12
2. 3  [AND],[ANI],[ANDP],[ANDF] 指令..............................................................………...13
 2.3.1  指令解说.................................................................................................………..13
 2.3.2  编程示例.................................................................................................………..13
2. 4  [OR],[ORI],[ORP],[ORF] 指令.......................................................................…………14
 2.4.1  指令解说.................................................................................................………..14
 2.4.2  编程示例.................................................................................................………..14
2. 5  [ANB],[ORB] 指令..........................................................................................………..16
 2.5.1  指令解说.................................................................................................………..16
 2.5.2  编程示例.................................................................................................………..16
2. 6  [INV] 指令.......................................................................................................…………18
 2.6.1  指令解说.................................................................................................………..18
 2.6.2  编程示例.................................................................................................………..18
2. 7  [PLS],[PLF] 指令.............................................................................................………..19
 2.7.1  指令解说.................................................................................................………..19
 2.7.2  编程示例.................................................................................................………..19
2. 8  [SET],[RST] 指令.............................................................................................……….20
 2.8.1  指令解说.................................................................................................………..20
 2.8.2  编程示例.................................................................................................………..20
2. 9  [NOP],[END] 指令..........................................................................................…………21

 2.9.1  指令解说.................................................................................................………..21
 2.9.2  编程示例.................................................................................................………..21
2. 10  [MPS],[MRD],[MPP] 指令............................................................................………..21
 2.10.1  指令解说...............................................................................................………..21
 2.10.2  编程示例.................................................................................................22
2. 11  [MC],[MCR] 指令............................................................................................25
 2.11.1  指令解说.................................................................................................25
 2.11.2  编程示例.................................................................................................25

第三章 步进顺控指令说明及应用
3.1  步进顺控指令说明...........................................................................................…27
3.1.1  指令解说...............................................................................................…27
3.1.2  编程示例...............................................................................................…27
3.2  步进顺控指令应用...........................................................................................…30
3.2.1  单一流程示例.......................................................................................…30
  3.2.2  选择性分支与汇合示例.......................................................................…31
3.2.3  并行分支与汇合示例...........................................................................…32
3.2.4  循环和跳转示例...................................................................................…34

第四章 功能指令说明及应用
 4.1 功能指令一览表.................................................................................................…36
 4.2  程序流程...........................................................................................................…38
  4.2.1条件跳转 [CJ].........................................................................................….38
  4.2.2 子程序调用 [CALL]..............................................................................…40
  4.2.3 子程序返回 [SRET]...............................................................................…40
  4.2.4 主程序结束 [FEND]..............................................................................…42
  4.2.5 循环范围开始 [FOR]............................................................................…43
  4.2.6 循环范围结束 [NEXT].........................................................................….43
 4. 3  传送与比较....................................................................................................….44
4.3.1  比较指令 [CMP]..................................................................................….44
4.3.2  区域比较 [ZCP]..................................................................................……46
4.3.3  传送指令 [MOV.]................................................................................……47
4.3.4  反向传送 [CML].................................................................................……….49
4.3.5  BCD转换 [BCD]...............................................................................……..50
4.3.6  BIN转换 [BIN]..................................................................................……...51
 4.4  四则逻辑运算..................................................................................................…………52
  4.4.1  BIN加法运算 [ADD]...........................................................................……52
  4.4.2  BIN减法运算 [SUB]...........................................................................……53
  4.4.3  BIN乘法运算 [MUL]..........................................................................……54
  4.4.4  BIN除法运算 [DIV]..........................................................................…..…55
  4.4.5  BIN增1 [INC]...................................................................................…..….56
  4.4.6  BIN减1  [DEC].................................................................................…..…57
  4.4.7  逻辑与 [WAND].................................................................................…...…57
  4.4.8  逻辑或 [WOR].......................................................................................…58
  4.4.9  逻辑异或 [WXOR]................................................................................…58
  4.4.10  求补 [NEG]..........................................................................................…59
  4.4.11  BIN开方运算 [SQR]............................................................................60
 4.5  循环与移位...........................................................................................................61
  4.5.1  循环右移 [ROR].....................................................................................61
  4.5.2  循环左移 [ROL].....................................................................................62
  4.5.3  带进位循环右移 [RCR].........................................................................64
  4.5.4  带进位循环左移 [RCL].........................................................................65
 4. 6  浮点数运算........................................................................................................67
  4.6.1  二进制浮点数比较 [DECMP]...............................................................67
  4.6.2  二进制浮点数区域比较 [DEZCP]........................................................68
  4.6.3  二进制浮点数转十进制浮点数 [DEBCD]...........................................69
  4.6.4  十进制浮点数转二进制浮点数 [DEBIN]............................................70
  4.6.5  二进制浮点数加法 [DEADD]..............................................................70
4.6.6  二进制浮点数减法 [DESUB]...............................................................71
  4.6.7  二进制浮点数乘法 [DEMUL]..............................................................72
4.6.8  二进制浮点数除法 [DEDIV]................................................................73
  4.6.9  二进制浮点数开方 [DESQR]...............................................................74
  4.6.10  二进制浮点数转BIN整数变换 [INT]................................................75
  4.6.11  BIN整数转二进制浮点数 [FLT]........................................................76
4. 7  触点比较指令....................................................................................................77
  4.7.1  接点比较指令 [LD※]............................................................................77
  4.7.2  接点比较指令 [AND※]..........................................................................78
  4.7.3  接点比较指令 [OR※]............................................................................80
4.8  功能指令的基本规则...........................................................................................82
  4.8.1. 功能指令的表示与执行形式.....................................................................82
  4.8.2  功能指令内的数值处理............................................................................85
  4.8.3  利用变址寄存器的操作数修改.............................................................. 87

第五章 资源说明及应用
5.1 变址寄存器V、Z说明及应用..............................................................................90
  5.1.1 变址寄存器V、Z说明..........................................................................90
  5.1.2 变址寄存器在梯形图中的应用..............................................................90
  5.1.3 使用变址功能的注意事项......................................................................91
5.2 输入输出继电器X、Y说明及应用......................................................................92
  5.2.1 输入输出继电器X、Y说明..................................................................92
5.2.2 输入输出继电器应用..............................................................................93
 5.3 辅助中间继电器M说明及应用.............................................................................95
  5.3.1辅助中间继电器M说明................................................................................95
  5.3.2辅助中间继电器M应用................................................................................95
 5.4 状态继电器S说明及应用......................................................................................97
  5.4.1状态继电器S说明.........................................................................................97
  5.4.2状态继电器S应用.........................................................................................98
 5.5 定时器T说明及应用..............................................................................................99
  5.5.1  定时器T说明..............................................................................................99
  5.5.2  定时器T应用..............................................................................................101
5.6 计数器C说明及应用..............................................................................................102
  5.6.1  16 bit计数器C说明....................................................................................102
  5.6.2  32 bit计数器C说明....................................................................................103
  5.6.3  16 bit计数器C应用....................................................................................105
  5.6.4  32 bit计数器应用.......................................................................................106
 5.7 数据寄存器D说明及应用.....................................................................................107
  5.7.1  数据寄存器D说明.....................................................................................107
  5.7.2  数据寄存器D应用.....................................................................................109
5.8 程序位置指针P说明及应用..................................................................................110
  5.8.1  程序位置指针P说明..................................................................................110
  5.8.2  程序位置指针P应用..................................................................................111
 5.9 常数标记K、H详细说明......................................................................................113
  5.9.1 常数标记K....................................................................................................113
  5.9.2 常数标记H....................................................................................................113
 5.10  特殊软元件说明....................................................................................................113
 
第六章 专家指令说明及应用
 6.1 PID运算...................................................................................................................114
  6.1.1  指令解说.....................................................................................................114
  6.1.2  应用示例.....................................................................................................121

第七章 网络及网络编程
7.1 典型嵌入式PLC产品介绍...................................................................................123
  7.1.1  典型嵌入式PLC产品的功能特征.........................................................123
  7.1.2  典型嵌入式PLC产品的基本接口.........................................................123
 7.2 CAN现场总线网络...............................................................................................124
  7.2.1  CAN网络结构............................................................................................124
  7.2.2  CAN网络编程.........................................................................................125
  7.2.3  CAN网络从节点开发.............................................................................127
 7.3 RS485串口网络.....................................................................................................128
  7.3.1  485网络结构............................................................................................128
  7.3.2  485网络编程............................................................................................129
  7.3.3  485网络从节点开发................................................................................132
 7.4 网络解决方案.........................................................................................................133
  7.4.1  与第三方PLC互连...................................................................................133
  7.4.2  与计算机互连...........................................................................................134

 


第一章 嵌入式PLC编程简介


1.1  嵌入式PLC简介

1.1.1 嵌入式PLC的提出

基于以下观点,提出嵌入式PLC的概念:
①、软件和硬件独立设计。
在规定好硬件和软件接口的前提下,各自独立设计,以提高开发效率。
②、简化硬件设计。
只需进行外形设计和电气接口设计,功能设计由软件设计取代。

③、简化软件设计。
依托功能强大的软件平台,只需设计个体产品与平台间的软件接口。
④、产品应用可二次编程。
根据工艺要求,用标准梯形图语言进行二次编程。

1.1.2 嵌入式PLC的特点 

①、什么是嵌入式PLC?
将PLC语言(梯形图语言)嵌入到单片机中,使单片机的产品开发从使用汇编语言变为使用梯形图语言同时,获取了梯形图编程平台所提供的各种强大的应用功能。我们称用于单片机产品开发,自身具有强大功能的梯形图语言编程软件为嵌入式PLC。嵌入式PLC能广泛应用于各种单片机产品。
②、嵌入式PLC产品有哪些特点?
利用嵌入式PLC软件开发出的应用产品,我们称之为嵌入式PLC产品。嵌入式PLC产品具有以下特点:
l 用梯形图语言编写应用程序。
l 能与多家人机界面连接,如台达、EView等。
l 支持CANBUS网络结构。
l 与其它厂家PLC并联运行。

1.1.3 嵌入式PLC产品举例

①、可编程控制器Easy-40MR
本产品有开关量输入24点、开关量输出16点,除具有可编程逻辑控制功能之外,还同时具有二级网络功能,即CAN现场总线网络功能和RS422串口网络功能。既可与嵌入式PLC产品组成现场总线网络,又能与第三方PLC组成串口网络。网络中每台产品均支持人机界面。
②、空压机控制器
具有用户要求的外观和接口,用户可根据自己的意图,用梯形图编写不同的控制程序,便于工艺保密和系列产品的标准化。同样具有C AN现场总线网络功能和RS422串口网络功能,每台控制器均可支持人机界面。
③、供水控制器
预留较多的富余接口,可适应各种复杂的供水要求,是供水行业的通用型控制器。应用人员可用梯形图编写控制程序,满足用户的不同需要。该产品支持人机界面,具有CAN现场总线网络功能和RS422串口网络功能。

1.1.4 关于本手册

编写本手册的目的是帮助嵌入式PLC产品的用户,正确使用梯形图语言编程,充分发挥嵌入式PLC所提供的强大功能,尤其是网络功能。
“编程简介”简要介绍梯形图的指令集和资源集,使有一定梯形图语言编程基础的用户参照指令集和资源集后可立即编写通用控制程序。
第二章到第五章,详细介绍了指令集和资源集,通过这些章节的学习,使初学者也能用梯形图编写各种应用程序。
第六章介绍PID专用控制算法,属专家成果应用。
第七章详细介绍嵌入式产品所支持的网络功能。


1.2  编程简介

1.2.1 指令集简介

 ①、基本逻辑指令:
l 助记符及名称:
   LD:读取常开点。
   LDI:读取常闭点。
   AND:串入常开点。
   ANI:串入常闭点。
   OR:并入常开点。
   ORI:并入常闭点。
   ANB:电路块串联。
   ORB:电路块并联。
   OUT:线圈输出。
   SET:线圈输出保持。
   RST:清除线圈输出。
   PLS:上升沿输出脉冲。
   PLF:下降沿输出脉冲。
   LDP:读取上升沿。
   LDF:读取下降沿。
   ANDP:上升沿接通,串联连接。
   ANDF:下降沿接通,串联连接。
   ORP:上升沿接通,并联连接。
   ORF:下降沿接通,并联连接。
   INV:运算触点取反。
   MPS:压栈。
MRD:读栈。
MPP:出栈。
   MC:主控。
   MCR:主控结束。
   NOP:空操作。
   END:程序结束。
l 梯形图与指令表:
   梯形图是电气控制的专业语言,方便编程人员编程。
单片机是按指令表执行控制。
梯形图与指令表二者自动相互转换。下例是二者相互转换示意图。

 

想对基本逻辑指令进一步了解,请参看《第二章 基本逻辑指令说明及应用》。

②、步进顺控指令:
l 助记符及名称:
STL:步进梯形图开始。仅对状态继电器S。步序间状态转移必须使用SET S,不能用OUT S。
   RET:步进梯形图结束。
l 梯形图与指令表:
   梯形图是电气控制的专业语言,方便编程人员编程。
单片机是按指令表执行控制。
梯形图与指令表二者自动相互转换。下例是二者相互转换示意图。

 想对步进顺控指令进一步了解,请参看《第三章 步进顺控指令说明及应用》。

③、基本功能指令:
l 助记符及名称:
   CJ: 条件跳转。
   CALL:子程序调用。
SRET:子程序返回。
FEND:主程序结束。
FOR:循环开始。
NEXT:循环结束。
******************
CMP:比较。
ZCP:区域比较。
   MOV:传送。
CML:取反传送。
BCD:BIN向BCD转换。
BIN:BCD向BIN转换。
******************
ADD:加法。
SUB:减法。
MUL:乘法。
DIV:除法。
INC:自加1运算。
DEC:自减1运算。
WAND:字与运算(按位)。
WOR:字或运算(按位)。
WXOR:字异或运算(按位)。
NEG:取补运算。
SQR:开方运算。
******************
ROR:循环右移。
ROL:循环左移。
RCR: 带进位循环右移。
RCL:带进位循环左移。
******************
DECMP:二进制浮点数比较。
DEZCP:二进制浮点数区域比较。
DEBCD:二进制浮点数向十进制浮点数转换。
DEBIN:十进制浮点数向二进制浮点数转换。
DEADD:二进制浮点数加法。
DESUB:二进制浮点数减法。
DEMUL:二进制浮点数乘法。
DEDIV:二进制浮点数除法。
DESQR:二进制浮点数开方。
******************
INT:二进制浮点数取整。
FLT:整数转换为二进制浮点数。
******************
LD=:读取“等于比较节点”。
LD>:读取“大于比较节点”。
LD<:读取“小于比较节点”。
LD<>:读取“不等于比较节点”。
LD<=:读取“小于等于比较节点”。
LD>=:读取“大于等于比较节点”。
AND=:串联“等于比较节点”。
AND>:串联“大于比较节点”。
AND<:串联“小于比较节点”。
AND<>:串联“不等于比较节点”。
AND<=:串联“小于等于比较节点”。
AND>=:串联“大于等于比较节点”。
OR=:并联“等于比较节点”。
OR>:并联“大于比较节点”。
OR<:并联“小于比较节点”。
OR<>:并联“不等于比较节点”。
OR<=:并联“小于等于比较节点”。
OR>=:并联“大于等于比较节点”。
l 梯形图与指令表:
   梯形图是电气控制的专业语言,方便编程人员编程。
单片机是按指令表执行控制。
梯形图与指令表二者自动相互转换。下例是二者相互转换示意图。

  
想对基本功能指令进一步理解,请参看《第四章 基本功能指令说明及应用》。

④、专家功能指令:
l 助记符及名称:
   PID:PID控制算法。
l 梯形图与指令表:
   梯形图是电气控制的专业语言,方便编程人员编程。
单片机是按指令表执行控制。
梯形图与指令表二者自动相互转换。下例是二者相互转换示意图。

  
想对专家功能指令进一步了解,请参看《第六章 专家功能指令说明及应用》。

1.2.2 资源集简介

 ①、输入继电器X:
扩展数量:128点。
标号范围:X000-----X177;标号为8进制。
  实际产品的数量和范围:由嵌入式PLC产品确定。
如K-40MR,范围:X000-X027,数量:24点。

 ②、输出继电器Y:
扩展数量:128点。
标号范围:Y000-----Y177;标号为8进制。
  实际产品的数量和范围:由嵌入式PLC产品确定。
如K-40MR,范围:Y000-Y017,数量:16点。

 ③、辅助继电器M:
  数量:1536点
  标号范围:M0---M1535;标号为十进制。
一般用:M0---M1023,计1024点。
停电保持用:M1024---M1535,计512点。

 ④、状态继电器S:
  数量:1000点
  标号范围:S0---S999;标号为十进制。
一般用:S0---M499,计500点。
停电保持用:M500---M999,计500点。

 ⑤、时间继电器T:
  数量:256点
  标号范围:T0---T255;标号为十进制。
一般用:T0---T199,100 ms 型,计200点;
 T200---T245,10 ms 型,计46点;
累积用:T246---T249,1 ms 型,计4点;
T250---T255,100 ms 型,计6点;
累积用的时间继电器在停电时,计时数据保持,必须用RST清零。

 ⑥、计数器C:
数量:256点
  标号范围:C0---C199;C200---C255;标号为十进制。
一般用:C0---C99,16 bit,计100点。
停电保持用:C100---C199,16 bit,计100点。
C200---C255,32bit可逆计数器,计数方向由M8200-M8255确定,ON时减计数。

 ⑦、数据寄存器D:
  数量:6000点
  标号范围:D0---D5999;标号为十进制。
一般用:D0---D199,计200点。
停电保持用:D200---D5999,计5800点。

 ⑧、变址寄存器V:
  数量:8点。
  标号范围:V0---V7;标号为十进制,无停电保持功能。

 ⑨、变址寄存器Z:
  数量:8点。
  标号范围:Z0---Z7;标号为十进制,无停电保持功能。

 ⑩、程序位置指针P:
  数量:128个
  标号范围:P0---P127;标号为十进制。

 ⑾、十进制常数标记K、H:
标号K后的常数为十进制常数。
  标号H后的常数为十六进制常数。如H10=K16。

 ⑿、特殊软元件:
  M8000:程序运行时ON;
  M8002:程序开运行时第一个扫描周期时ON;
  M8020:零标志;
  M8021: 借位标志;
  M8022:进位标志;
  M8200---M8255:32 bit可逆计数器方向指定。

 想对资源更进一步了解,请参看《第五章 资源详细说明及应用》。

1.2.3 编程及应用简介

 ①、编程软件
l 梯形图编程软件EasyWin:
   支持梯形图编程、下载、监控,可对嵌入式PLC产品设置加密口令。
l 网络设置软件CanSet:
支持网络构建、下载,经CanSet设置的主节点与从节点能自动交换网络数据。网络构建支持第三方设备。

 ②、编程设备
  个人计算机:
EasyWin和CanSet都运行于Windows 操作系统。操作系统可以是:
Windows 95,Windows 98,Windows 2000,Windows XP。

 ③、编程及应用流程说明
l 单机产品编程。
一般有以下步骤:
     了解嵌入式PLC产品的硬件接口(X,Y,D)和功能要求;
     编写梯形图程序;
程序检查及下载;
程序监控及调试;
批量应用于嵌入式产品;
l 网络应用编程。
一般有以下步骤:
了解嵌入式PLC产品的硬件接口和功能要求,包括网络功能;
用CanSet设置网络设备和传输内容;
编写梯形图程序;
网络配置检查及下载;
程序检查及下载;
程序监控及调试;
批量应用于嵌入式产品;