S7300編程語句手冊匯總_第1頁
S7300編程語句手冊匯總_第2頁
S7300編程語句手冊匯總_第3頁
S7300編程語句手冊匯總_第4頁
S7300編程語句手冊匯總_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、s7-300編程語言與指令系統(tǒng)s7-300編程語言與指令孟令生整理step 7編程語言介紹2數(shù)據(jù)類型4參數(shù)數(shù)據(jù)類型5plc用戶存儲區(qū)的分類及功能6指令操作數(shù)6尋址方式7狀態(tài)字9基本邏輯指令10置位和復位指令12rs和sr觸發(fā)器13跳變沿檢測指令13定時器與計數(shù)器指令16計數(shù)器指令21訪問cpu的時鐘存儲器23數(shù)字指令24裝入和傳送指令24轉(zhuǎn)換指令26比較指令29算數(shù)運算指令30移位指令32控制指令33 step 7編程語言介紹step 7是s7-300/400系列plc應用設(shè)計軟件包,所支持的plc編程語言非常豐富。該軟件的標準版支持stl(語句表)、lad(梯形圖)及fbd(功能塊圖)3種基

2、本編程語言,并且在step 7中可以相互轉(zhuǎn)換。專業(yè)版附加對graph(順序功能圖)、scl(結(jié)構(gòu)化控制語言)、higraph(圖形編程語言)、cfc(連續(xù)功能圖)等編程語言的支持。不同的編程語言可供不同知識背景的人員采用。 stl(語句表) stl(語句表)是一種類似于計算機匯編語言的一種文本編程語言,由多條語句組成一個程序段。語句表可供習慣匯編語言的用戶使用,在運行時間和要求的存儲空間方面最優(yōu)。在設(shè)計通信、數(shù)學運算等高級應用程序時建議使用語句表。 fbd(功能塊圖) fbd(功能塊圖)使用類似于布爾代數(shù)的圖形邏輯符號來表示控制邏輯,一些復雜的功能用指令框表示。fbd比較適合于有數(shù)字電路基礎(chǔ)的

3、編程人員使用。 graph(順序控制)graph類似于解決問題的流程圖,適用于順序控制的編程。利用s7-graph編程語言,可以清楚快速地組織和編寫s7 plc系統(tǒng)的順序控制程序。它根據(jù)功能將控制任務(wù)分解為若干步,其順序用圖形方式顯示出來并且可形成圖形和文本方式的文件。 higraph(圖形編程語言) s7-higraph允許用狀態(tài)圖描述生產(chǎn)過程,將自動控制下的機器或系統(tǒng)分成若干個功能單元,并為每個單元生成狀態(tài)圖,然后利用信息通訊將功能單元組合在一起形成完整的系統(tǒng)。 數(shù)據(jù)類型1.數(shù)組(array)數(shù)組是由一組同一類型的數(shù)據(jù)組合在一起而形成的復雜數(shù)據(jù)類型。數(shù)組的維數(shù)最大可以到6維;數(shù)組中的元素可

4、以是基本數(shù)據(jù)類型或者復雜數(shù)據(jù)類型中的任一數(shù)據(jù)類型(array類型除外,即數(shù)組類型不可以嵌套);數(shù)組中每一維的下標取值范圍是-3276832767,要求下標的下限必須小于下標的上限。2.結(jié)構(gòu)(struct)結(jié)構(gòu)是由一組不同類型(結(jié)構(gòu)的元素可以是基本的或復雜的數(shù)據(jù)類型)的數(shù)據(jù)組合在一起而形成的復雜數(shù)據(jù)類型。結(jié)構(gòu)通常用來定義一組相關(guān)的數(shù)據(jù),例如電機的一組數(shù)據(jù)可以按如下方式定義: 3.字符串(string)字符串是最多有254個字符(char)的一維數(shù)組,最大長度為256個字節(jié)(其中前兩個字節(jié)用來存儲字符串的長度信息)。字符串常量用單引號括起來,例如: 4.日期和時間(date_and_time)用于

5、存儲年、月、日、時、分、秒、毫秒和星期,占用8個字節(jié),用bcd格式保存。星期天的代碼為1,16的代碼為27。例如: 5.用戶定義的數(shù)據(jù)類型(udt) 用戶定義數(shù)據(jù)類型表示自定義的結(jié)構(gòu),存放在udt塊中(udt1udt65535),在另一個數(shù)據(jù)類型中作為一個數(shù)據(jù)類型“模板”。當輸入數(shù)據(jù)塊時,如果需要輸入幾個相同的結(jié)構(gòu),利用udt可以節(jié)省輸入時間。 6.功能塊類型(fb、sfb) 這種數(shù)據(jù)類型僅可以在fb的靜態(tài)變量區(qū)定義,用于實現(xiàn)多背景db。 參數(shù)數(shù)據(jù)類型參數(shù)類型是一種用于邏輯塊(fb、fc)之間傳遞參數(shù)的數(shù)據(jù)類型,主要有以下幾種: (1)timer(定時器)和counter(計數(shù)器)。 (2)b

6、lock(塊):指定一個塊用作輸入和輸出,實參應為同類型的塊。 (3)pointer(指針):6字節(jié)指針類型,用來傳遞db的塊號和數(shù)據(jù)地址。(3)any:10字節(jié)指針類型,用來傳遞db塊號、數(shù)據(jù)地址、數(shù)據(jù)數(shù)量以及數(shù)據(jù)類型。 plc用戶存儲區(qū)的分類及功能指令操作數(shù)指令操作數(shù)(又稱編程元件)一般在用戶存儲區(qū)中,操作數(shù)由操作標識符和參數(shù)組成。操作標識符由主標識符和輔助標識符組成,主標識符用來指定操作數(shù)所使用的存儲區(qū)類型,輔助標識符則用來指定操作數(shù)的單位(如:位、字節(jié)、字、雙字等)。 主標識符有:i(輸入過程映像寄存器、q(輸出過程映像寄存器)、m(位存儲器)、pi(外部輸入寄存器)、pq(外部輸出寄

7、存器)、t(定時器)、c(計數(shù)器)、db(數(shù)據(jù)塊寄存器)和l(本地數(shù)據(jù)寄存器); 輔助標識符有:x(位)、b(字節(jié))、w(字或2b)、d(2dw或4b)。 尋址方式所謂尋址方式就是指令執(zhí)行時獲取操作數(shù)的方式,可以直接或間接方式給出操作數(shù)。s7-300有4種尋址方式: 立即尋址 存儲器直接尋址 存儲器間接尋址 寄存器間接尋址 1.立即尋址 立即尋址是對常數(shù)或常量的尋址方式,其特點是操作數(shù)直接表示在指令中,或以惟一形式隱含在指令中。下面各條指令操作數(shù)均采用了立即尋址方式,其中“/”后面的內(nèi)容為指令的注釋部分,對指令沒有任何影響。 2.存儲器直接尋址 存儲器直接尋址,簡稱直接尋址。該尋址方式在指令中

8、直接給出操作數(shù)的存儲單元地址。存儲單元地址可用符號地址(如sb1、km等)或絕對地址(如i0.0、q4.1等)。下面各條指令操作數(shù)均采用了直接尋址方式。 3.存儲器間接尋址(1/3)存儲器間接尋址,簡稱間接尋址。該尋址方式在指令中以存儲器的形式給出操作數(shù)所在存儲器單元的地址,也就是說該存儲器的內(nèi)容是操作數(shù)所在存儲器單元的地址。該存儲器一般稱為地址指針,在指令中需寫在方括號“”內(nèi)。地址指針可以是字或雙字,對于地址范圍小于65535的存儲器可以用字指針;對于其他存儲器則要使用雙字指針?!纠?-3-1】 存儲器間接尋址的單字格式的指針尋址。 存儲器間接尋址的雙字指針的格式如圖所示?!纠?-3-2】

9、存儲器間接尋址的雙字格式的指針尋址。 5.寄存器間接尋址寄存器間接尋址,簡稱寄存器尋址。該尋址方式在指令中通過地址寄存器和偏移量間接獲取操作數(shù),其中的地址寄存器及偏移量必須寫在方括號“”內(nèi)。在s7-300中有兩個地址寄存器ar1和ar2,用地址寄存器的內(nèi)容加上偏移量形成地址指針,并指向操作數(shù)所在的存儲器單元。地址寄存器的地址指針有兩種格式,其長度均為雙字,指針格式如圖所示。 第一種地址指針格式適用于在確定的存儲區(qū)內(nèi)尋址,即區(qū)內(nèi)寄存器間接尋址。 【例4-3-3】 區(qū)內(nèi)寄存器間接尋址。第二種地址指針格式適用于區(qū)域間寄存器間接尋址。 【例4-3-4】 區(qū)域間寄存器間接尋址。第一種地址指針格式包括被尋

10、址數(shù)據(jù)所在存儲單元地址的字節(jié)編號和位編號,至于對哪個存儲區(qū)尋址,則必須在指令中明確給出。這種格式適用于在確定的存儲區(qū)內(nèi)尋址,即區(qū)內(nèi)寄存器間接尋址。 第二種地址指針格式包含了數(shù)據(jù)所在存儲區(qū)的說明位(存儲區(qū)域標識位),可通過改變標識位實現(xiàn)跨區(qū)域?qū)ぶ?,區(qū)域標識由位2624確定。這種指針格式適用于區(qū)域間寄存器間接尋址。狀態(tài)字狀態(tài)字用于表示cpu執(zhí)行指令時所具有的狀態(tài)信息。 首位檢測位(fc) 邏輯操作結(jié)果(rlo) 狀態(tài)位(sta) 或位(or) 溢出位(ov) 溢出狀態(tài)保持位(os) 條件碼1(cc1)和條件碼0(cc0) 二進制結(jié)果位(br)位邏輯指令位邏輯指令處理的對象為二進制位信號。位邏輯指令

11、掃描信號狀態(tài)“1”和“0”位,并根據(jù)布爾邏輯對它們進行組合,所產(chǎn)生的結(jié)果(“1”或“0”)稱為邏輯運算結(jié)果,存儲在狀態(tài)字的“rlo”中。 常閉觸點常閉觸點(動斷觸點)則對“0”掃描相應操作數(shù)。在plc中規(guī)定:若操作數(shù)是“1”則常閉觸點“動作”,即觸點“斷開”;若操作數(shù)是“0”,則常閉觸點“復位”,即觸點仍保持閉合。 常閉觸點所使用的操作數(shù)是:i、q、m、l、d、t、c。輸出線圈(賦值指令) 輸出線圈與繼電器控制電路中的線圈一樣,如果有電流(信號流)流過線圈(rlo=“1”),則被驅(qū)動的操作數(shù)置“1”;如果沒有電流流過線圈(rlo=“0”),則被驅(qū)動的操作數(shù)復位(置“0”)。輸出線圈只能出現(xiàn)在梯

12、形圖邏輯串的最右邊。 輸出線圈等同于stl程序中的賦值指令(用等于號“=”表示),所使用的操作數(shù)可以是:q、m、l、d。 中間輸出 在梯形圖設(shè)計時,如果一個邏輯串很長不便于編輯時,可以將邏輯串分成幾個段,前一段的邏輯運算結(jié)果(rlo)可作為中間輸出,存儲在位存儲器(i、q、m、l或d)中,該存儲位可以當作一個觸點出現(xiàn)在其他邏輯串中。中間輸出只能放在梯形圖邏輯串的中間,而不能出現(xiàn)在最左端或最右端。 與下面程序等效基本邏輯指令邏輯“與” 指令 邏輯“與” 指令使用的操作數(shù)可以是:i、q、m、l、d、t、c。有2種指令形式(stl和fbd),用lad也可以實現(xiàn)邏輯“與” 運算。邏輯 “與非”指令 邏

13、輯 “與非”指令使用的操作數(shù)可以是:i、q、m、l、d、t、c。有2種指令形式(stl和fbd),用lad也可以實現(xiàn)邏輯 “與非”運算。邏輯 “或”指令 邏輯 “或”指令使用的操作數(shù)可以是:i、q、m、l、d、t、c。有2種指令形式(stl和fbd),用lad也可以實現(xiàn)邏輯 “或”運算。邏輯 “或非”指令 邏輯 “或非”指令使用的操作數(shù)可以是:i、q、m、l、d、t、c。有2種指令形式(stl和fbd),用lad也可以實現(xiàn)邏輯 “或非”運算。邏輯 “異或”指令 邏輯 “異或非”指令 邏輯塊的操作 置位和復位指令置位(s)和復位(r)指令根據(jù)rlo的值來決定操作數(shù)的信號狀態(tài)是否改變,對于置位指令

14、,一旦rlo為“1”,則操作數(shù)的狀態(tài)置“1”,即使rlo又變?yōu)椤?”,輸出仍保持為“1”;若rlo為“0”,則操作數(shù)的信號狀態(tài)保持不變。對于復位操作,一旦rlo為“1”,則操作數(shù)的狀態(tài)置“0”,即使rlo又變?yōu)椤?”,輸出仍保持為“0”;若rlo為“0”,則操作數(shù)的信號狀態(tài)保持不變。這一特性又被稱為靜態(tài)的置位和復位,相應地,賦值指令被稱為動態(tài)賦值。rs和sr觸發(fā)器 l rs觸發(fā)器為“置位優(yōu)先”型觸發(fā)器(當r和s驅(qū)動信號同時為“1”時,觸發(fā)器最終為置位狀態(tài));l sr觸發(fā)器為“復位優(yōu)先”型觸發(fā)器(當r和s驅(qū)動信號同時為“1”時,觸發(fā)器最終為復位狀態(tài))。 rs觸發(fā)器和sr觸發(fā)器的“位地址”、置位(

15、s)、復(s)及輸出(q)所使用的操作數(shù)可以是:i、q、m、l、d。 3.rs觸發(fā)器和sr觸發(fā)器的工作時序跳變沿檢測指令step 7中有2類跳變沿檢測指令,一種是對rlo的跳變沿檢測的指令,另一種是對觸點的跳變沿直接檢測的梯形圖方塊指令。1.rlo上升沿檢測指令 2.rlo下降沿檢測指令 3.rlo邊沿檢測指令的工作時序觸點信號上升沿檢測指令 觸點信號下降沿檢測指令 觸點信號邊沿檢測指令的工作時序定時器與計數(shù)器指令s_pulse(脈沖s5定時器)s_pulse(脈沖s5定時器)s_pulse(脈沖s5定時器)s_pext(擴展脈沖s5定時器)s_pext(擴展脈沖s5定時器)s_odt(接通延

16、時s5定時器)s_odts(保持型接通延時s5定時器)s_offdt(斷電延時s5定時器)計數(shù)器指令s7-300的計數(shù)器都是16位的,因此每個計數(shù)器占用該區(qū)域2個字節(jié)空間,用來存儲計數(shù)值。不同的cpu模板,用于計數(shù)器的存儲區(qū)域也不同,最多允許使用64512個計數(shù)器。計數(shù)器的地址編號:c0c511。 s_cud(加/減計數(shù)器)塊圖指令 s_cu(加計數(shù)器)塊圖指令 s_cd(減計數(shù)器)塊圖指令 計數(shù)器的線圈指令 除了前面介紹的塊圖形式的計數(shù)器指令以外,s7-300系統(tǒng)還為用戶準備了lad環(huán)境下的線圈形式的計數(shù)器。這些指令有計數(shù)器初值預置指令sc、加計數(shù)器指令cu和減計數(shù)器指令cd。 l 加計數(shù)器

17、線圈指令應用示例初值預置sc指令若與cu指令配合可實現(xiàn)s_cu指令的功能。 減計數(shù)器線圈指令應用示例sc指令若與cd指令配合可實現(xiàn)s_cd指令的功能。 l 加/減計數(shù)器線圈指令應用示例sc指令若與cu和cd配合可實現(xiàn)s_cud的功能。訪問cpu的時鐘存儲器要使用該功能,在硬件配置時需要設(shè)置cpu的屬性,其中有一個選項為clock memory,選中選擇框就可激活該功能。 設(shè)置cpu的時鐘存儲器在memory byte區(qū)域輸入想為該項功能設(shè)置的mb的地址,如需要使用mb10,則直接輸入10。clock memory的功能是對所定義的mb的各個位周期性地改變其二進制的值(占空比為1:1)。cloc

18、k memory的各位的周期及頻率見表。 【例4-5-5】 時鐘存儲器與計數(shù)器的應用。 當定時器不夠用時,可以將計數(shù)器擴展為定時器。圖中分別給出了用減計數(shù)器擴展定時器的控制程序,程序中使用了cpu的時鐘存儲器,設(shè)置mb10為時鐘存儲器,由表4-39可知m10.0的變化周期為0.1s。 數(shù)字指令裝入和傳送指令裝入指令(l)和傳送指令(t),可以對輸入或輸出模塊與存儲區(qū)之間的信息交換進行編程。對累加器1的裝入指令 . 狀態(tài)字與累加器1之間的裝入和傳送指令 l stw(將狀態(tài)字裝入累加器1) 將狀態(tài)字裝入累加器1中,指令的執(zhí)行與狀態(tài)位無關(guān),而且對狀態(tài)字沒有任何影響。指令格式如下:lstw t stw

19、(將累加器1的內(nèi)容傳送到狀態(tài)字) 使用t stw指令可以將累加器1的位08傳送到狀態(tài)字的相應位,指令的執(zhí)行與狀態(tài)位無關(guān),指令格式如下: tstw與地址寄存器有關(guān)的裝入和傳送指令lar1(將操作數(shù)的內(nèi)容裝入地址寄存器ar1) 與地址寄存器有關(guān)的裝入和傳送指令 lar2(將操作數(shù)的內(nèi)容裝入地址寄存器2) 使用lar2指令可以將操作數(shù)的內(nèi)容(32位指針)裝入地址寄存器ar2,指令格式同lar1,其中的操作數(shù)可以是累加器1、指針型常數(shù)(p#)、存儲雙字(md)、本地數(shù)據(jù)雙字(ld)、數(shù)據(jù)雙字(dbd)或背景數(shù)據(jù)雙字(did),但不能用ar1。 tar1(將地址寄存器1的內(nèi)容傳送到操作數(shù)) 與地址寄存器

20、有關(guān)的裝入和傳送指令 tar2(將地址寄存器2的內(nèi)容傳送到操作數(shù)) 使用tar2指令可以將地址寄存器ar1的內(nèi)容(32位指針)傳送給被尋址的操作數(shù),指令格式同tar1。其中的操作數(shù)可以是累加器1、存儲雙字(md)、本地數(shù)據(jù)雙字(ld)、數(shù)據(jù)雙字(dbd)、背景數(shù)據(jù)雙字(did),但不能用ar1。 car(交換地址寄存器1和地址寄存器2的內(nèi)容) 使用car指令可以交換地址寄存器ar1和地址寄存器ar2的內(nèi)容,指令不需要指定操作數(shù)。指令的執(zhí)行與狀態(tài)位無關(guān),而且對狀態(tài)字沒有任何影響。 lc(定時器/計數(shù)器裝載指令 使用lc指令可以在累加器1的內(nèi)容保存到累加器2中之后,將指定定時器字中當前時間值和時基

21、以bcd碼(0999)格式裝入到累加器1中,或?qū)⒅付ㄓ嫈?shù)器的當前計數(shù)值以bcd碼(0999)格式裝入到累加器1中。指令格式如下: lcmove指令 move指令為功能框形式的傳送指令,能夠復制字節(jié)、字或雙字數(shù)據(jù)對象。應用中in和out端操作數(shù)可以是常數(shù)、i、q、m、d、l等類型,但必須在寬度上匹配。 轉(zhuǎn)換指令轉(zhuǎn)換指令是將累加器1中的數(shù)據(jù)進行數(shù)據(jù)類型轉(zhuǎn)換,轉(zhuǎn)換結(jié)果仍放在累加器1中。在step 7中,可以實現(xiàn)bcd碼與整數(shù)、整數(shù)與長整數(shù)、長整數(shù)與實數(shù)、整數(shù)的反碼、整數(shù)的補碼、實數(shù)求反等數(shù)據(jù)轉(zhuǎn)換操作。. bcd碼和整數(shù)到其他類型轉(zhuǎn)換指令bcd碼和整數(shù)到其他類型轉(zhuǎn)換指令bcd碼和整數(shù)到其他類型轉(zhuǎn)換指令

22、整數(shù)和實數(shù)的碼型變換指令整數(shù)和實數(shù)的碼型變換指令實數(shù)取整指令比較指令比較指令可完成整數(shù)、長整數(shù)或32位浮點數(shù)(實數(shù))的相等、不等、大于、小于、大于或等于、小于或等于等比較 。整數(shù)比較指令 長整數(shù)比較指令 實數(shù)比較指令 算數(shù)運算指令 算術(shù)運算指令可完成整數(shù)、長整數(shù)及實數(shù)的加、減、乘、除、求余、求絕對值等基本算數(shù)運算;以及32位浮點數(shù)的平方、平方根、自然對數(shù)、基于e的指數(shù)運算及三角函數(shù)等擴展算數(shù)運算?;舅銛?shù)運算指令(整數(shù)運算) 基本算數(shù)運算指令(實數(shù)運算) 擴展算數(shù)運算指令字邏輯運算指令字邏輯運算指令可對兩個16位(word)或32位(dword)的二進制數(shù)據(jù),逐位進行邏輯與、邏輯或、邏輯異或運

23、算。 對于stl形式的字邏輯運算指令,可對累加器1和累加器2中的字或雙字數(shù)據(jù)進行邏輯運算,結(jié)果保存在累加器1中,若結(jié)果不為0,則對狀態(tài)標志位cc1置“1”,否則對cc1置“0”。 對于lad和fbd形式的字邏輯運算指令,由參數(shù)in1和in2提供參與運算的兩個數(shù)據(jù),運算結(jié)果保存在由out指定的存儲區(qū)中。 移位指令移位指令有2種類型:基本移位指令可對無符號整數(shù)、有符號長整數(shù)、字或雙字數(shù)據(jù)進行移位操作;循環(huán)移位指令可對雙字數(shù)據(jù)進行循環(huán)移位和累加器1帶cc1的循環(huán)移位操作。有符號右移指令格式字移位指令格式雙字移位指令格式v雙字循環(huán)移位指令格式帶累加器循環(huán)移位指令格式控制指令控制指令可控制程序的執(zhí)行順序,使得cpu能根據(jù)不同的情況執(zhí)行不同的程序邏輯控制指令邏輯控制指令是指邏輯塊內(nèi)的跳轉(zhuǎn)和循環(huán)指令,這些指令可以中斷原有的線性程序掃描,并跳轉(zhuǎn)到目標地址處重新執(zhí)行線性程序掃描。目標地址由跳轉(zhuǎn)指令后面的標號指定,該地址標號指出程序要跳往何處,可向前跳轉(zhuǎn),也可以向后跳轉(zhuǎn),最大跳轉(zhuǎn)距離為-32768或32767字。1.無條件跳轉(zhuǎn)指令無條件跳轉(zhuǎn)指令ju執(zhí)行時,將直接中斷當前的線性程序掃描,并跳轉(zhuǎn)到由指令后面的標號所指定的目標地址處重新執(zhí)行線性程序掃描。 【例4-7-1】 無條件跳轉(zhuǎn)指令的使用。 當程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論