原标题:PLC编程语言介绍,常用指令总结分享
一、西门子PLC编程语言
PLC编程语言包括以下五种:梯形图语言(LD)、指令表语言(IL)、功能模块图语言(FBD)、顺序功能流程图语言(SFC)结构化文本语言(ST)。不同型号的PLC以上五种编程语言的编程软件支持类型不同,早期PLC仅支持梯形图编程语言和指令表编程语言。目前的PLC对梯形图(LD)、指令表(STL)、功能模块图(FBD)支持编程语言。比如,SIMATIC STEP7 MicroWIN V3.2。
(1)梯形图
在西门子PLC梯形图语言使用中,梯形图语言是PLC编程语言是程序设计中最常用的语言。它是一种类似于继电器线路的编程语言。由于电气设计师熟悉继电器控制,梯形图编程语言受到了广泛的欢迎和应用。
梯形图编程语言的特点是:与电气操作原理图对应,直观对应;与原继电器控制一致,电气设计师易于掌握。梯形图编程语言与原继电器控制的区别在于,梯形图中的能量流不是实际电流,内部继电器也不是实际继电器。在应用过程中,它需要区别于原继电器控制的概念。
(2)指令表
松下PLC编程
指令表编程语言是一种类似于汇编语言的助记符编程语言,由操作代码和操作数组成。适用于无计算机的情况PLC手持编程器编制用户程序。同时,指令表编程语言与梯形图编程语言图一一对应PLC可以在编程软件下相互转换。
指令表编程语言的特点是:使用助记符表示操作功能,易于记忆,易于掌握;使用助记符表示手持编程器键盘,操作方便,无计算机编程设计;与梯形图一一对应。其特点与梯形图语言基本相同。
(3)功能模块图语言(FBD)
功能模块图语言类似于数字逻辑电路PLC编程语言。模块的功能以功能模块图的形式表示,不同的功能模块具有不同的功能。
功能模块图编程语言的特点:功能模块图程序设计语言的特点是:以功能模块为单位,分析理解控制方案简单容易;功能模块是用图形的形式表达功能,直观性强,对于具有数字逻辑电路基础的设计人员很容易掌握的编程;对规模大、控制逻辑关系复杂的控制系统,由于功能模块图能够清楚表达功能关系,使编程调试时间大大减少。
(4) 顺序功能流程图语言(SFC)
顺序功能流程图语言是为满足顺序逻辑控制而设计的编程语言。编程时,将顺序流程动作的过程分为步骤和转换条件,根据转移条件分配控制系统的功能流程顺序,逐步按顺序动作。用方框表示每一步代表一个控制功能任务。梯形图逻辑用于完成相应的控制功能任务。这种编程语言使程序结构清晰,易于阅读和维护,大大降低了编程的工作量,缩短了编程和调试时间。用于系统规模大、程序关系复杂的场合。
顺序功能流程图编程语言的特点:以功能为主线,按功能流程顺序分布,清晰,易于理解用户程序;避免梯形图或其他语言的缺陷,避免用户程序结构复杂、难以理解的缺陷;用户程序扫描时间也大大缩短。
(5)结构化文本语言(ST)
结构化文本语言是一种用结构化描述文本描述程序的编程语言。它是一种类似于高级语言的编程语言。在大中型PLC在系统中,通常使用结构化文本来描述控制系统中各种变量之间的关系。主要用于编制其他编程语言难以实现的用户程序。
结构化文本编程语言描述系统中各种变量之间的各种操作关系,完成所需的功能或操作。PLC制造商使用结构化文本编程语言和BASIC语言、PASCAL语言或C语言等高级语言相似,但为方便应用,简化了句子的表达方法和类型。
结构化文本编程语言的特点:高级语言可以完成更复杂的控制操作;需要一定的计算机高级语言知识和编程技能,对工程设计师要求较高。直观性和可操作性较差。
在PLC在控制系统设计中,设计人员不仅需要PLC除了了解硬件性能,我们还应该了解它PLC支持编程语言的类型。
二、西门子PLC指令表功能汇总
指令( 英文全称意思 ) :指令含义
1、LD ( Load 装载 ) :动合触点
2、LDN ( Load Not 不装载 ) : 动断触点
3、A ( And 与 动合) : 用于动合触点串联
4、AN ( And Not 与 动断 ) :用于动断触点串联
5、O ( Or 或 动合 ) :用于并联动合触点
6、ON ( Or Not 或 动断 ) : 用于动断触点并联
7、= ( Out 输出 ) : 用于线圈输出
8、OLD ( Or Lode): 块或
9、ALD ( And Lode): 块与
10、LPS ( Logic Push ) :逻辑入栈
11、LRD ( Logic Read ) :逻辑读栈
12、LPP ( Logic Pop ) :逻辑出栈
13、NOT ( not 并非 ) :非
14、NOP ( No Operation Performed ) : 无操作
15、AENO ( And ENO ) :指令盒输出端ENO相与
16、S ( Set 放置 ) : 置1
17、R ( Reset 重置,清零 ) :清零
18、P ( Positive) :上升沿
19、N ( Negative) :下降沿
20、TON ( On_Delay Timer ) :连接延迟定时器21TONR ( Retentive On_Delay Timer ) : 记忆连接延迟定时器
22、TOF ( Off_ Delay Timer ) :断开延时定时器
23、CTU ( Count Up ) : 增计数器
24、CTD ( Count Down ) : 减计数器
25、CTUD ( Count Up/ Count Down ) :增减计数器
26、ADD ( add 加 ) : 加注意
//ADD_I (_ I 表示整数)
ADD_DI( DI表示双字节整数)
ADD-R (R 表示实数)
它们都是加运算,只是数量的大小不同。
27、SUB ( Subtract 减去,减少) :减
28、MUL ( Multiply ) : 乘
29、DIV ( Divide ) : 除
30、SQRT ( Square root ) : 求平方根
31、LN ( Napierian Logarithm 自然对数 ) : 求自然对数
32、EXP ( Exponential 指数的 ) : 求指数
33、INC_B ( Increment 增加 ) : 增1
//其中_B代表数据类型 还有W(字节)、DW后面几个字都是这样的。DEC_B ( Decrement 减少 ) : 减1
35、WAND_B ( Word and 与命令 ) :逻辑与
36、WOR_B ( Word or 或命令) : 逻辑或
37、WXOR_B ( Word exclusive or 异或命令) :逻辑异或
38、INV_B ( Inverse 相反 ) : 取反
39、MOV _B ( Move 移动 ) : 数据传送
40、BLKMOV_B ( Block Move 块移动) :数据块传送
41、SWAP ( Swap 交换 ) : 字节交换
42、FILL ( Fill 填充 ) : 字填充
43、ROL_B ( Rotate Left 循环 向左) :循环左移位
44、ROR_B ( Rotate Right 循环 向右) : 循环右移位
45、SHL_B ( Shift Right 移动向左) :左移动
46、SHR_B ( Shift Right 移动向右 ) : 右移动
47、SHRB ( Shift buffer 移动缓存) :寄存器移位
48、STOP ( Stop 停止 ) : 暂停
49、END /MEND ( End /Mend ) : 条件/无条件结束
50、WDR ( Watch dog reset ) : 看门狗复位
51、JMP ( Jump 跳) :跳转
52、LBL ( Label 位置 ) : 跳转标号
53、FOR ( For 循环 ) : 循环
54、NEXT ( Next 再下去) :循环结束
55、SBR ( Subprogram Regulating子程序控制 ) : 子程序调用
56、SBR_T ( Subprogram Regulating Take ) : 调用带参数子程序
57、SCR ( Sequence Control 顺序控制 ) : 步开始
58、SCRT ( Sequence Control Transfer 顺序控制转移 ) : 步转移
59、SCRE ( Sequence Control End 顺序控制结束 ) : 步结束
60、AD_T_TBL ( Add data to table 添加数据到表格中) : 填数据表
61、FIFO ( First in First out 先进先出 ) : 先进先出
62、LIFO ( Last in First out 后进先出 ) :后进先出
63、TBL_FIND ( Table Find 表格查找 ) : 表查找
64、BCD_I ( Binary Coded Decimal _I 二进制编码的十进制 ) :BCD 码转整数
65、I_BCD ( I_ Binary Coded DecimaL ) :整数转BCD码
66、B_I ( Bit to int ) :字节转整数
67、I_B ( int to bit ) :整数转字节
68、DI_I ( Double int to int ) :双整数转整数
69、I_DI ( int to double int ) :整数转双整数
70、ROUND ( Round 取整 ) : 实数转双整数
71、TRUNC ( Trunc 截取 ) :转换32位实数整数部分(舍去小数取整)
72、DI_I (double int to int ) :双整数转实数
73、ENCO ( Encode 编码) : 编码
74、DECO ( Decode 译码) :译码
75、SEG ( Segment decoder分断译码器 ) : 七段显示译码器
76、ATH ( ASCII码 turn hex ) : ASCII码转16进制
77、HTA ( Hexadecimal to ascii) : 16进制转ASCII码
78、ITA ( // int to ascii) : 整数转ASCII码
79、DTA ( // double int to ascii ) : 双整转ASCII码
80、RTA ( // real to ascii) : 实数转ASCII码
81、ATCH (//attach ) : 中断连接
82、DTCH ( Depatch ) : 中断分离
83、HDEF ( High speed counter definition ) : 高速计数器定义
84、HSC ( High Speed Counter 高速计数器 ) :启动高速计数器
85、PLS ( Pulse 脉冲 ) :脉冲输出
86、READ_ RTC ( Read real time clock 读实时时钟 ) :读实时时钟
87、SET_RTC ( Set real time clock ) : 写实时时钟
88、XMT ( Transmitter ) : 自由发送
89、RCV ( Receive 接收 ) : 自由接收
90、NETR ( Net read 网络读 ) : 网络读
91、NETW ( Net write 网络写 ) : 网络写
92、GET_ADDR ( Get address 获取地址 ) : 获取口地址
93、SET_ADDR ( Set address 设置地址 ) : 设定口地址
94、PID ( Proportional Integral Differential 比例、积分、微分 ) :比例积分微分调节器。
如有不妥,欢迎指正!返回搜狐,查看更多
责任编辑: