一、西门子PLC编程语言

PLC的编程语言有五种:梯形图语言(LD)、命令表语言(IL)、功能模块图语言(FBD)、序列功能顺序语言(SFC)和结构化文本语言(ST)。对这五种编程语言的支持类型因模型而异,以前的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 ) :接通延时定时器21、TONR ( 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双字后面几个都是这样的。34、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 比例、积分、微分 ) :比例积分微分调节器。

如有不妥,欢迎指正!

1.《【在电路图AN什么意思】启动PLC编程语言,共享常用指令集概要》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《【在电路图AN什么意思】启动PLC编程语言,共享常用指令集概要》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/why/3003818.html