PLC的編程語言包括以下五種:梯形圖語言(LD)、指令表語言(IL)、功能模塊圖語言(FBD)、順序功能流程圖語言(SFC)及結(jié)構(gòu)化文本語言(ST)。不同型號的PLC編程軟件對以上五種編程語言的支持種類是不同的,早期的PLC僅僅支持梯形圖編程語言和指令表編程語言。目前的PLC對梯形圖(LD)、指令表(STL)、功能模塊圖(FBD)編程語言都以支持。比如,SIMATIC STEP7 MicroWIN V3.2。
(1)梯形圖
在西門子PLC實際編程使用情況中中,梯形圖語言是PLC程序設(shè)計中最常用的編程語言。它是與繼電器線路類似的一種編程語言。由于電氣設(shè)計人員對繼電器控制較為熟悉,因此,梯形圖編程語言得到了廣泛的歡迎和應(yīng)用。
梯形圖編程語言的特點(diǎn)是:與電氣操作原理圖相對應(yīng),具有直觀性和對應(yīng)性;與原有繼電器控制相一致,電氣設(shè)計人員易于掌握。梯形圖編程語言與原有的繼電器控制的不同點(diǎn)是,梯形圖中的能流不是實際意義的電流,內(nèi)部的繼電器也不是實際存在的繼電器,應(yīng)用時,需要與原有繼電器控制的概念區(qū)別對待。
(2)指令表
松下PLC編程
指令表編程語言是與匯編語言類似的一種助記符編程語言,和匯編語言一樣由操作碼和操作數(shù)組成。在無計算機(jī)的情況下,適合采用PLC手持編程器對用戶程序進(jìn)行編制。同時,指令表編程語言與梯形圖編程語言圖一一對應(yīng),在PLC編程軟件下可以相互轉(zhuǎn)換。
指令表表編程語言的特點(diǎn)是:采用助記符來表示操作功能,具有容易記憶,便于掌握;在手持編程器的鍵盤上采用助記符表示,便于操作,可在無計算機(jī)的場合進(jìn)行編程設(shè)計;與梯形圖有一一對應(yīng)關(guān)系。其特點(diǎn)與梯形圖語言基本一致。
(3)功能模塊圖語言(FBD)
功能模塊圖語言是與數(shù)字邏輯電路類似的一種PLC編程語言。采用功能模塊圖的形式來表示模塊所具有的功能,不同的功能模塊有不同的功能。
功能模塊圖編程語言的特點(diǎn):功能模塊圖程序設(shè)計語言的特點(diǎn)是:以功能模塊為單位,分析理解控制方案簡單容易;功能模塊是用圖形的形式表達(dá)功能,直觀性強(qiáng),對于具有數(shù)字邏輯電路基礎(chǔ)的設(shè)計人員很容易掌握的編程;對規(guī)模大、控制邏輯關(guān)系復(fù)雜的控制系統(tǒng),由于功能模塊圖能夠清楚表達(dá)功能關(guān)系,使編程調(diào)試時間大大減少。
(4) 順序功能流程圖語言(SFC)
順序功能流程圖語言是為了滿足順序邏輯控制而設(shè)計的編程語言。編程時將順序流程動作的過程分成步和轉(zhuǎn)換條件,根據(jù)轉(zhuǎn)移條件對控制系統(tǒng)的功能流程順序進(jìn)行分配,一步一步的按照順序動作。每一步代表一個控制功能任務(wù),用方框表示。在方框內(nèi)含有用于完成相應(yīng)控制功能任務(wù)的梯形圖邏輯。這種編程語言使程序結(jié)構(gòu)清晰,易于閱讀及維護(hù),大大減輕編程的工作量,縮短編程和調(diào)試時間。用于系統(tǒng)的規(guī)模校大,程序關(guān)系較復(fù)雜的場合。
順序功能流程圖編程語言的特點(diǎn):以功能為主線,按照功能流程的順序分配,條理清楚,便于對用戶程序理解;避免梯形圖或其他語言不能順序動作的缺陷,同時也避免了用梯形圖語言對順序動作編程時,由于機(jī)械互鎖造成用戶程序結(jié)構(gòu)復(fù)雜、難以理解的缺陷;用戶程序掃描時間也大大縮短。
(5)結(jié)構(gòu)化文本語言(ST)
結(jié)構(gòu)化文本語言是用結(jié)構(gòu)化的描述文本來描述程序的一種編程語言。它是類似于高級語言的一種編程語言。在大中型的PLC系統(tǒng)中,常采用結(jié)構(gòu)化文本來描述控制系統(tǒng)中各個變量的關(guān)系。主要用于其他編程語言較難實現(xiàn)的用戶程序編制。
結(jié)構(gòu)化文本編程語言采用計算機(jī)的描述方式來描述系統(tǒng)中各種變量之間的各種運(yùn)算關(guān)系,完成所需的功能或操作。大多數(shù)PLC制造商采用的結(jié)構(gòu)化文本編程語言與BASIC語言、PASCAL語言或C語言等高級語言相類似,但為了應(yīng)用方便,在語句的表達(dá)方法及語句的種類等方面都進(jìn)行了簡化。
結(jié)構(gòu)化文本編程語言的特點(diǎn):采用高級語言進(jìn)行編程,可以完成較復(fù)雜的控制運(yùn)算;需要有一定的計算機(jī)高級語言的知識和編程技巧,對工程設(shè)計人員要求較高。直觀性和操作性較差。
在PLC控制系統(tǒng)設(shè)計中,要求設(shè)計人員不但對PLC的硬件性能了解外,也要了解PLC對編程語言支持的種類。
二、西門子PLC指令表功能匯總
指令( 英文全稱意思 ) :指令含義
1、LD( Load 裝載 ) :動合觸點(diǎn)
2、LDN( Load Not 不裝載 ) : 動斷觸點(diǎn)
3、A( And 與 動合) : 用于動合觸點(diǎn)串聯(lián)
4、AN( And Not 與 動斷 ) :用于動斷觸點(diǎn)串聯(lián)
5、O( Or 或 動合 ) :用于動合觸點(diǎn)并聯(lián)
6、ON( Or Not 或 動斷 ) : 用于動斷觸點(diǎn)并聯(lián)
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 ) : 增計數(shù)器
24、CTD( Count Down ) : 減計數(shù)器
25、CTUD( Count Up/ Count Down ) :增減計數(shù)器
26、ADD( add 加 ) : 加注意
//ADD_I (_ I 表示整數(shù))
ADD_DI( DI表示雙字節(jié)整數(shù))
ADD-R (R 表示實數(shù))
它們都是加運(yùn)算只是數(shù)的大小不同。
28、MUL( Multiply ) : 乘
29、DIV( Divide ) : 除
30、SQRT( Square root ) : 求平方根
31、LN( Napierian Logarithm 自然對數(shù) ) : 求自然對數(shù)
32、EXP( Exponential 指數(shù)的 ) : 求指數(shù)
33、INC_B( Increment 增加 ) : 增1
//其中_B代表數(shù)據(jù)類型 還有W(字節(jié))、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 移動 ) : 數(shù)據(jù)傳送
40、BLKMOV_B( Block Move 塊移動) :數(shù)據(jù)塊傳送
41、SWAP( Swap 交換 ) : 字節(jié)交換
42、FILL( Fill 填充 ) : 字填充
43、ROL_B( Rotate Left 循環(huán) 向左) :循環(huán)左移位
44、ROR_B( Rotate Right 循環(huán) 向右) : 循環(huán)右移位
45、SHL_B( Shift Right 移動向左) :左移動
46、SHR_B( Shift Right 移動向右 ) : 右移動
47、SHRB( Shift buffer 移動緩存) :寄存器移位
48、STOP( Stop 停止 ) : 暫停
49、END/MEND( End /Mend ) : 條件/無條件結(jié)束
50、WDR( Watch dog reset ) : 看門狗復(fù)位
51、JMP( Jump 跳) :跳轉(zhuǎn)
52、LBL( Label 位置 ) : 跳轉(zhuǎn)標(biāo)號
53、FOR( For 循環(huán) ) : 循環(huán)
54、NEXT( Next 再下去) :循環(huán)結(jié)束
55、SBR( Subprogram Regulating子程序控制 ) : 子程序調(diào)用
56、SBR_T( Subprogram Regulating Take ) : 帶參數(shù)子程序調(diào)用
57、SCR( Sequence Control 順序控制 ) : 步開始
58、SCRT( Sequence Control Transfer 順序控制轉(zhuǎn)移 ) : 步轉(zhuǎn)移
59、SCRE( Sequence Control End 順序控制結(jié)束 ) : 步結(jié)束
60、AD_T_TBL( Add data to table 添加數(shù)據(jù)到表格中) : 填數(shù)據(jù)表
61、FIFO( First in First out 先進(jìn)先出 ) : 先進(jìn)先出
62、LIFO( Last in First out 后進(jìn)先出 ) :后進(jìn)先出
63、TBL_FIND( Table Find 表格查找 ) : 表查找
64、BCD_I( Binary Coded Decimal _I 二進(jìn)制編碼的十進(jìn)制 ) :BCD 碼轉(zhuǎn)整數(shù)
65、I_BCD( I_ Binary Coded DecimaL ) :整數(shù)轉(zhuǎn)BCD碼
66、B_I( Bit to int ) :字節(jié)轉(zhuǎn)整數(shù)
67、I_B( int to bit ) :整數(shù)轉(zhuǎn)字節(jié)
68、DI_I( Double int to int ) :雙整數(shù)轉(zhuǎn)整數(shù)
69、I_DI( int to double int ) :整數(shù)轉(zhuǎn)雙整數(shù)
70、ROUND( Round 取整 ) : 實數(shù)轉(zhuǎn)雙整數(shù)
71、TRUNC( Trunc 截取 ) :轉(zhuǎn)換32位實數(shù)整數(shù)部分(舍去小數(shù)取整)
72、DI_I(double int to int ) :雙整數(shù)轉(zhuǎn)實數(shù)
73、ENCO( Encode 編碼) : 編碼
74、DECO( Decode 譯碼) :譯碼
75、SEG( Segment decoder分?jǐn)嘧g碼器 ) : 七段顯示譯碼器
76、ATH( ASCII碼 turn hex ) : ASCII碼轉(zhuǎn)16進(jìn)制
77、HTA( Hexadecimal to ascii) : 16進(jìn)制轉(zhuǎn)ASCII碼
78、ITA( // int to ascii) : 整數(shù)轉(zhuǎn)ASCII碼
79、DTA( // double int to ascii ) : 雙整轉(zhuǎn)ASCII碼
80、RTA( // real to ascii) : 實數(shù)轉(zhuǎn)ASCII碼
81、ATCH(//attach ) : 中斷連接
82、DTCH( Depatch ) : 中斷分離
83、HDEF( High speed counter definition ) : 高速計數(shù)器定義
84、HSC( High Speed Counter 高速計數(shù)器 ) :啟動高速計數(shù)器
85、PLS( Pulse 脈沖 ) :脈沖輸出
86、READ_ RTC( Read real time clock 讀實時時鐘 ) :讀實時時鐘
87、SET_RTC( Set real time clock ) : 寫實時時鐘
88、XMT( Transmitter ) : 自由發(fā)送
89、RCV( Receive 接收 ) : 自由接收
90、NETR( Net read 網(wǎng)絡(luò)讀 ) : 網(wǎng)絡(luò)讀
91、NETW( Net write 網(wǎng)絡(luò)寫 ) : 網(wǎng)絡(luò)寫
92、GET_ADDR( Get address 獲取地址 ) : 獲取口地址
93、SET_ADDR( Set address 設(shè)置地址 ) : 設(shè)定口地址
94、PID( Proportional Integral Differential 比例、積分、微分 ) :比例積分微分調(diào)節(jié)器。
-
plc
+關(guān)注
關(guān)注
5011文章
13299瀏覽量
463434 -
西門子
+關(guān)注
關(guān)注
94文章
3039瀏覽量
115886 -
指令
+關(guān)注
關(guān)注
1文章
607瀏覽量
35716
原文標(biāo)題:了解PLC編程語言,分享精心整理的西門子PLC指令表
文章出處:【微信號:GKYXT1508,微信公眾號:工控云學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論