西門子S700plc指令系統44_第1頁
西門子S700plc指令系統44_第2頁
西門子S700plc指令系統44_第3頁
西門子S700plc指令系統44_第4頁
西門子S700plc指令系統44_第5頁
已閱讀5頁,還剩146頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

指令系統S7-1200的指令從功能上大致可分為三類:基本指令、擴展指令和全局庫指令。目前一頁\總數一百五十一頁\編于三點5.1基本指令基本指令包括位邏輯指令、定時器、計數器、比較指令、數學指令、移動指令、轉換指令、程序控制指令、邏輯運算指令以及移位和循環(huán)移位指令等。目前二頁\總數一百五十一頁\編于三點目前三頁\總數一百五十一頁\編于三點基本邏輯指令目前四頁\總數一百五十一頁\編于三點

內部輸入觸點(I)的閉合與斷開僅與輸入映像寄存器相應位的狀態(tài)有關,與外部輸入按鈕、接觸器、繼電器的常開/常閉接法無關。輸入映像寄存器相應位為1,則內部常開觸點閉合,常閉觸點斷開。輸入映像寄存器相應位為0,則內部常開觸點斷開,常閉觸點閉合。目前五頁\總數一百五十一頁\編于三點置位域復位域指令置位域指令將指定的地址開始的連續(xù)若干個地址置位(變?yōu)?狀態(tài)并保持)。復位域指令將指定的地址開始的連續(xù)若干個地址復位(變?yōu)?狀態(tài)并保持)。目前六頁\總數一百五十一頁\編于三點置位/復位指令目前七頁\總數一百五十一頁\編于三點

(1)S、R指令中的2表示從指定的Q0.0開始的兩個觸點,即Q0.0與Q0.1。(2)在檢測到I0.0閉合的上升沿時,輸出線圈Q0.0、Q0.1被置為1,并保持,而不論I0.0為何種狀態(tài)。(3)在檢測到I0.1閉合的上升沿時,輸出線圈Q0.0、Q0.1被復位為0,并保持,而不論I0.0為何種狀態(tài)。目前八頁\總數一百五十一頁\編于三點

指令說明(1)指定觸點一旦被置位,則保持接通狀態(tài),直到對其進行復位操作;而指定觸點一旦被復位,則變?yōu)榻油顟B(tài),直到對其進行復位操作。(2)如果對定時器和計數器進行復位操作,則被指定的T或C的位被復位,同時其當前值被清0。

目前九頁\總數一百五十一頁\編于三點復位優(yōu)先、置位優(yōu)先鎖存器復位優(yōu)先鎖存器、置位優(yōu)先鎖存器:輸出線圈可選目前十頁\總數一百五十一頁\編于三點目前十一頁\總數一百五十一頁\編于三點指令功能RS復位優(yōu)先鎖存器,當置位信號和復位信號都有效時,復位信號優(yōu)先,輸出線圈不接通。SR置位優(yōu)先鎖存器,當置位信號和復位信號都有效時,置位信號優(yōu)先,輸出線圈接通。RS、SR指令均為鎖存器,一個復位優(yōu)先,一個置位優(yōu)先。S連接置位輸入,R連接復位輸入。一旦輸出線圈被置位,則保持置位狀態(tài)直到復位輸入接通。置位、復位輸入均以高電平狀態(tài)有效。

目前十二頁\總數一百五十一頁\編于三點例:搶答器的設計搶答器有三個輸入,分別為I0.0、I0.1和I0.2,輸出分別為Q4.0、Q4.1和Q4.2,復位輸入是I0.4。要求:三人中任意搶答,誰先按按鈕,誰的指示燈優(yōu)先亮,且只能亮一盞燈,進行下一問題時主持人按復位按鈕,搶答重新開始。

目前十三頁\總數一百五十一頁\編于三點搶答器程序目前十四頁\總數一百五十一頁\編于三點邊沿指令目前十五頁\總數一百五十一頁\編于三點位邏輯指令——邊緣檢測觸點指令如果輸入信號I0.6由0變?yōu)?狀態(tài)(即輸入信號I0.6的上升沿),則該觸點接通一個掃描周期。觸點下面的M4.3為邊緣存儲位,用來存儲上一個掃描循環(huán)是I0.6的狀態(tài),通過比較輸入信號的當前狀態(tài)和上一次循環(huán)的狀態(tài)來檢測信號的邊沿。邊沿存儲位的地址只能在程序中使用一次,它的狀態(tài)不能在其他地方被改寫。只能使用M、全局DB和靜態(tài)局部變量來作邊沿存儲位,不能使用臨時局部數據或I/O變量來作邊沿存儲位。目前十六頁\總數一百五十一頁\編于三點位邏輯指令——P_TRIG與N_TRIG指令在流進P_TRIG指令的CLK輸入端的能流的上升沿,Q端輸出一個掃描周期的能流,使M8.1置位。P_TRIG指令與N_TRIG指令不能放在電路的開始處和結束處。目前十七頁\總數一百五十一頁\編于三點位邏輯指令——3種邊沿檢測指令的功能以上升沿檢測為例:在P觸點指令中,觸點上面的地址的上升沿,該觸點接通一個掃描周期,因此P觸點用于檢測觸點上面地址的上升沿,并且直接輸出上升沿脈沖。在P線圈的能流的上升沿,線圈上面的地址在一個掃描周期為1狀態(tài),因此P線圈用于檢測能流的上升沿,并用線圈上面的地址來輸出上升沿脈沖。P_TRIG指令用于檢測能流的上升沿,并且直接輸出上升沿脈沖。如果P_TRIG指令左邊只有I1.0觸點,可以用I1.0的P觸點來代替P_TRIG指令。目前十八頁\總數一百五十一頁\編于三點[例]按動一次瞬時按鈕I0.0,輸出Q4.0亮,再按動一次按鈕,輸出Q4.0滅;重復以上。目前十九頁\總數一百五十一頁\編于三點[例]若故障信號I0.0為1,使Q4.0控制的指示燈以1Hz的頻率閃爍。操作人員按復位按鈕I0.1后,如果故障已經消失,則指示燈熄滅,如果沒有消失,指示燈轉為常亮,直至故障消失。目前二十頁\總數一百五十一頁\編于三點定時器使用定時器指令可創(chuàng)建編程的時間延遲,S7-1200PLC有4種定時器:●TP:脈沖定時器可生成具有預設寬度時間的脈沖?!馮ON:接通延遲定時器輸出Q在預設的延時過后設置為ON?!馮OF:關斷延遲定時器輸出Q在預設的延時過后重置為OFF。●TONR:保持型接通延遲定時器輸出在預設的延時過后設置為ON。在使用R輸入重置經過的時間之前,會跨越多個定時時段一直累加經過的時間。●RT:通過清除存儲在指定定時器背景數據塊中的時間數據來重置定時器。每個定時器都使用一個存儲在數據塊中的結構來保存定時器數據。在編輯器中放置定時器指令時可分配該數據塊。目前二十一頁\總數一百五十一頁\編于三點接通延遲定時器及其時序圖目前二十二頁\總數一百五十一頁\編于三點定時器的背景數據塊結構目前二十三頁\總數一百五十一頁\編于三點練習按下瞬時啟動按鈕I0.0,5秒后電動機啟動,按下瞬時停止按鈕I0.1,10秒后電動機停止。目前二十四頁\總數一百五十一頁\編于三點目前二十五頁\總數一百五十一頁\編于三點目前二十六頁\總數一百五十一頁\編于三點例

用接通延時定時器設計一個周期振蕩電路。目前二十七頁\總數一百五十一頁\編于三點用接通延時定時器設計周期和占空比可調的振蕩電路。振蕩電路的高、低電平時間分別由兩個定時器的PT值確定。目前二十八頁\總數一百五十一頁\編于三點保持型接通延遲定時器及其時序圖目前二十九頁\總數一百五十一頁\編于三點關斷延遲定時器及其時序圖目前三十頁\總數一百五十一頁\編于三點脈沖定時器及其時序圖目前三十一頁\總數一百五十一頁\編于三點例:用脈沖定時器實現一個周期振蕩電路目前三十二頁\總數一百五十一頁\編于三點復位定時器指令目前三十三頁\總數一百五十一頁\編于三點兩條運輸帶順序相連,為避免運送的物料在1號運輸帶上堆積,按下起動按鈕I0.3,1號帶開始運行,8s后2號帶自動起動。停機的順序與起動的順序相反,按了停止按鈕I0.2后,先停2號帶,8s后停1號帶。Q1.1和Q0.6控制兩臺電動機M1和M2。目前三十四頁\總數一百五十一頁\編于三點目前三十五頁\總數一百五十一頁\編于三點參數數據類型說明INBool啟用定時器輸入RBool將TONR經過的時間重置為零PT(PresetTime)Bool預設的時間值輸入QBool定時器輸出ET(ElapsedTime)Time經過的時間值輸出定時器數據塊DB指定要使用RT指令復位的定時器參數IN從0變?yōu)?將啟動TP、TON和TONR,從1變0將啟動TOF。ET為定時開始后經過的時間,或稱為已耗時間值(可以不為ET指定地址),它們的數值類型為32位的Time,單位為ms,最大定時時間為T#24D_20H_31M_23S_647MS。目前三十六頁\總數一百五十一頁\編于三點IEC定時器和IEC計數器屬于功能塊,調用時需要指定配套的背景數據塊,定時器和計數器指令的數據保存在背景數據塊中。在梯形圖中輸入定時器指令時,打開右邊的指令窗口將“定時器操作”文件夾中的定時器指令拖放到梯形圖中適當的位置,在出現的“調用選項”對話框中修改將要生成的背景數據塊的名稱,或采用默認的名稱。點擊“確定”按鈕,自動生成數據塊。目前三十七頁\總數一百五十一頁\編于三點計數器S7-1200有3種計數器:加計數器(CTU)、減計數器(CTD)和加減計數器(CTUD)。它們屬于軟件計數器,其最大計數速率受到它所在的OB的執(zhí)行速率的限制。如果需要速率更高的計數器,可以使用CPU內置的高速計數器。調用計數器指令時,需要生成保存計數器數據的背景數據塊。CU和CD分別是加計數輸入和減計數輸入,在CU或CD由0變?yōu)?是,實際計數值CV加1或減1。復位輸入R為1時,計數器被復位,CV被清0,計數器的輸入Q變?yōu)?。目前三十八頁\總數一百五十一頁\編于三點計數器指令——計數器的輸入輸出參數參數數據類型說明CU、CDBOOL加計數或減計數,按加或減一計數R(CTU、CTUD)BOOL將計數值重置為零LOAD(CTD、CTUD)BOOL預設值的裝載控制PVSInt、Int、DInt、USInt、UInt、UDInt預設計數值Q、QUBOOLCV>=PV時為真QDBOOLCV<=0時為真CVSInt、Int、DInt、USInt、UInt、UDInt當前計數值目前三十九頁\總數一百五十一頁\編于三點加計數器及其時序圖CTU:參數CU的值從0變?yōu)?時,CTU使計數值加1。如果參數CV(當前計數值)的值大于或等于參數PV(預設計數值)的值,則計數器輸出參數Q=1。如果復位參數R的值從0變?yōu)?,則當前計數值復位為0。目前四十頁\總數一百五十一頁\編于三點計數器的背景數據塊結構目前四十一頁\總數一百五十一頁\編于三點減計數器及其時序圖CTD:參數CD的值從0變?yōu)?時,CTD使計數值減1。如果參數CV(當前計數值)的值等于或小于0,則計數器輸出參數Q=1。如果參數LOAD的值從0變?yōu)?,則參數PV(預設值)的值將作為新的CV(當前計數值)裝載到計數器。目前四十二頁\總數一百五十一頁\編于三點計數器指令——加減計數器CTUD:加計數(CU,CountUp)或減計數(CD,CountDown)輸入的值從0跳變?yōu)?時,CTUD會使計數值加1或減1。如果參數CV(當前計數值)的值大于或等于參數PV(預設值)的值,則計數器輸出參數QU=1。如果參數CV的值小于或等于零,則計數器輸出參數QD=1。如果參數LOAD的值從0變?yōu)?,則參數PV(預設值)的值將作為新的CV(當前計數值)裝載到計數器。如果復位參數R的值從0變?yōu)?,則當前計數值復位為0。目前四十三頁\總數一百五十一頁\編于三點加減計數器及其時序圖PV=4目前四十四頁\總數一百五十一頁\編于三點傳送帶控制一個能夠電氣啟動的傳送帶。在傳送帶的起點有兩個按鈕開關:用于START的S1和用于STOP的S2。在傳送帶的尾部也有兩個按鈕開關:S3用于START,S4用于STOP。可以從任一端啟動或停止傳送帶。另外,當傳送帶上的物件到達末端時,傳感器S5使傳送帶停機。目前四十五頁\總數一百五十一頁\編于三點傳送帶示意圖目前四十六頁\總數一百五十一頁\編于三點用于傳送帶系統符號編程的元素目前四十七頁\總數一百五十一頁\編于三點控制傳送帶程序目前四十八頁\總數一百五十一頁\編于三點風機監(jiān)控程序某設備有三臺風機,當設備處于運行狀態(tài)時,如果風機至少有兩臺以上轉動,則指示燈常亮;如果僅有一臺風機轉動,則指示燈以0.5Hz的頻率閃爍;如果沒有任何風機轉動,則指示燈不亮。目前四十九頁\總數一百五十一頁\編于三點輸入位I0.0,I0.1,I0.2分別為風機1,2,3輸入端。目前五十頁\總數一百五十一頁\編于三點通過傳送帶電機KM1帶動傳送帶傳送物品,通過產品檢測器PH檢測產品通過的數量,傳送帶每傳送24個產品機械手KM2動作1次,進行包裝,機械手動作后,延時2秒,機械手的電磁鐵切斷。通過傳送帶起動按鈕、傳送帶停機按鈕控制傳送帶的運動。產品通過檢測器PH機械手KM1KM2傳送帶電機目前五十一頁\總數一百五十一頁\編于三點計數器應用舉例:產品數量檢測產品通過檢測器PH機械手KM1KM2傳送帶電機PLC的I/O分配:I0.0—傳送帶停機按鈕I0.1—傳送帶起動按鈕I0.2—產品通過檢測器PHQ0.0—傳送帶電機KM1Q0.1—機械手KM2定時器,定時2秒計數器,設定值24(每24個產品機械手動作1次)目前五十二頁\總數一百五十一頁\編于三點I0.0—傳送帶停機按鈕I0.1—傳送帶起動按鈕I0.2—產品通過檢測器PHQ0.0—傳送帶電機KM1Q0.1—機械手KM2定時器,定時2秒計數器,設定值24機械手動作后,延時2秒,機械手的電磁鐵切斷測到一個產品,I0.2產生一個正脈沖,使計一個數。C10每計24個數,機械手動作一次目前五十三頁\總數一百五十一頁\編于三點

3臺電機順序啟動、反序停止控制控制要求:按下啟動按鈕后,3臺電機按M1、M2、M3的順序隔2s啟動;按下停止按鈕后,3臺電機按M3、M2、M1的順序隔2s停止。輸入觸點功能說明輸出線圈功能說明I0.0啟動按鈕Q0.0M1控制繼電器I0.1停止按鈕Q0.1M2控制繼電器Q0.2M3控制繼電器目前五十四頁\總數一百五十一頁\編于三點3臺電機順序啟動,反序停止控制程序目前五十五頁\總數一百五十一頁\編于三點展廳人數控制系統控制要求:現有一展廳,最多可容納50人同時參觀。展廳進口與出口各裝一傳感器,每有一人進出,傳感器給出一個脈沖信號。試編程實現,當展廳內不足50人時,綠燈亮,表示可以進入;當展廳滿50人時,紅燈亮,表示不準進入。

目前五十六頁\總數一百五十一頁\編于三點展廳人數控制系統I/O分配表輸入觸點功能說明輸出線圈功能說明I0.0系統啟動按鈕Q0.0綠燈輸出I0.1進口傳感器S1Q0.1紅燈輸出I0.2出口傳感器S2目前五十七頁\總數一百五十一頁\編于三點展廳人數控制程序I0.0系統啟動按鈕Q0.0綠燈輸出I0.1進口傳感器S1Q0.1紅燈輸出I0.2出口傳感器S2目前五十八頁\總數一百五十一頁\編于三點運料車自動裝、卸料控制控制要求:①某運料車如圖所示,可在A、B兩地分別啟動。運料車啟動后,自動返回A地停止,同時控制料斗門的電磁閥Y1打開,開始裝料。1分鐘后,電磁閥Y1斷開,關閉料斗門,運料車自動向B地運行。到達B地后停止,小車底門由電磁閥Y2控制打開,開始卸料。1分鐘后,運料車底門關閉,開始返回A地。之后重復運行。②運料車在運行過程中,可用手動開關使其停車。再次啟動后,可重復①中內容目前五十九頁\總數一百五十一頁\編于三點圖7.43運料車自動裝、卸料控制示意圖目前六十頁\總數一百五十一頁\編于三點運料車自動裝、卸料控制I/O分配表輸入觸點功能說明輸出線圈功能說明I0.0啟動按鈕Q0.0右行I0.2A點行程開關(裝料啟動結束自鎖按鈕)Q0.1左行I0.3B點行程開關Q0.2電磁閥Y1,裝料I0.4停止按鈕Q0.3電磁閥Y2,卸料目前六十一頁\總數一百五十一頁\編于三點目前六十二頁\總數一百五十一頁\編于三點目前六十三頁\總數一百五十一頁\編于三點比較指令目前六十四頁\總數一百五十一頁\編于三點

可以使用“等于”操作確定第一個比較值是否等于第二個比較值。要比較的兩個值必須為相同的數據類型。該LAD觸點比較結果為TRUE時,則該觸點會被激活。在程序編輯器中單擊該指令后,可以從下拉菜單中選擇比較類型和數據類型。目前六十五頁\總數一百五十一頁\編于三點可以使用“大于”操作確定第一個比較值是否大于第二個比較值。要比較的兩個值必須為相同的數據類型。如果比較為真,則RLO為“1”。在比較字符串時,通過字符ASCII碼比較字符(例如“a”大于“A”)。從左到右執(zhí)行比較。第一個不同的字符決定比較結果。如果較長字符串的左側部分和較短字符串相同,則認為較長字符串更大。目前六十六頁\總數一百五十一頁\編于三點使用IN_RANGE和OUT_RANGE指令可測試輸入值是在指定的值范圍之內還是之外。如果比較結果為TRUE,則功能框輸出為TRUE。輸入參數MIN、VAL和MAX的數據類型必須相同。在程序編輯器中單擊該指令后,可以從下拉菜單中選擇數據類型。目前六十七頁\總數一百五十一頁\編于三點例:用比較和計數指令編寫開關燈程序,要求燈控按鈕I0.0按下一次,燈Q4.0亮,按下兩次,燈Q4.0,Q4.1全亮,按下三次燈全滅,如此循環(huán)。分析:在程序中所用計數器為加法計數器,當加到3時,必須復位計數器,這是關鍵。燈控制程序如圖所示。目前六十八頁\總數一百五十一頁\編于三點梯形圖程序如下:目前六十九頁\總數一百五十一頁\編于三點例:在HMI設備上可以設定電動機的轉速,設定值MW20的范圍為100-1440轉/分鐘,若輸入的設定值在此范圍內,則延時5秒鐘啟動電動機Q0.0,否則Q0.1長亮提示。目前七十頁\總數一百五十一頁\編于三點使用OK和NOT_OK指令可測試輸入的數據是否為符合IEEE規(guī)范754的有效實數。圖中,當MD0和MD4中為有效的浮點數時,會激活“實數乘”(MUL)運算并置位輸出,即將MD0的值將與MD4的值相乘,結果存儲在MD10中同時Q4.0輸出為1。

目前七十一頁\總數一百五十一頁\編于三點目前七十二頁\總數一百五十一頁\編于三點目前七十三頁\總數一百五十一頁\編于三點目前七十四頁\總數一百五十一頁\編于三點目前七十五頁\總數一百五十一頁\編于三點目前七十六頁\總數一百五十一頁\編于三點目前七十七頁\總數一百五十一頁\編于三點如果輸入IN的值為123.4567則輸出OUT返回值0.4567目前七十八頁\總數一百五十一頁\編于三點目前七十九頁\總數一百五十一頁\編于三點移動指令目前八十頁\總數一百五十一頁\編于三點可以使用“移動塊”操作將一個存儲區(qū)(源區(qū)域)的內容復制到另一個存儲區(qū)(目標區(qū)域)。要復制到目標區(qū)域的元素個數由參數COUNT指定。要復制的元素的寬度由輸入IN的元素寬度定義。復制操作沿地址升序方向進行。只有使能輸入EN的信號狀態(tài)為“1”時,才執(zhí)行該操作。如果運算執(zhí)行過程中未發(fā)生錯誤,則輸出ENO的信號狀態(tài)為“1”。如果滿足下列條件之一,使能輸出ENO將返回信號狀態(tài)“0”:輸入EN的信號狀態(tài)為“0”。復制的數據量超出輸出OUT存儲區(qū)所提供的數據量。目前八十一頁\總數一百五十一頁\編于三點可以通過“填充塊”操作使用輸入IN的值填充存儲區(qū)(目標區(qū)域)。從輸出OUT指定的地址開始填充目標區(qū)域。重復的復制操作次數由參數COUNT指定。執(zhí)行該操作時,將選擇輸入IN的值并將其按照參數COUNT指定的重復次數復制到目標區(qū)域。只有使能輸入EN的信號狀態(tài)為“1”時,才執(zhí)行該操作。如果運算執(zhí)行過程中未發(fā)生錯誤,則輸出ENO的信號狀態(tài)為“1”。如果滿足下列條件之一,使能輸出ENO將返回信號狀態(tài)“0”:輸入EN的信號狀態(tài)為“0”。復制的數據量超出輸出OUT存儲區(qū)所提供的數據量。目前八十二頁\總數一百五十一頁\編于三點目前八十三頁\總數一百五十一頁\編于三點MOVE指令將單個數據元素從IN參數指定的源地址復制到OUT參數指定的目標地址。MOVE_BLK和UMOVE_BLK指令具有附加的COUNT參數。COUNT指定要復制的數據元素個數。每個被復制元素的字節(jié)數取決于PLC變量表中分配給IN和OUT參數變量名稱的數據類型。MOVE_BLK和UMOVE_BLK指令在處理中斷的方式上有所不同:●在MOVE_BLK執(zhí)行期間排隊并處理中斷事件。在中斷OB子程序中未使用移動目標地址的數據時,或者雖然使用了該數據,但目標數據不必一致時,使用MOVE_BLK指令。如果MOVE_BLK操作被中斷,則最后移動的一個數據元素在目標地址中是完整并且一致的。MOVE_BLK操作會在中斷OB執(zhí)行完成后繼續(xù)執(zhí)行?!裨赨MOVE_BLK完成執(zhí)行前排隊但不處理中斷事件。如果在執(zhí)行中斷OB子程序前移動操作必須完成且目標數據必須一致,則使用UMOVE_BLK指令。目前八十四頁\總數一百五十一頁\編于三點轉換指令目前八十五頁\總數一百五十一頁\編于三點“轉換”操作讀取參數IN的數據,然后根據指定的數據類型對其進行轉換。僅當使能輸入EN的信號狀態(tài)為“1”時,才能啟動“轉換”操作。如果執(zhí)行過程中未發(fā)生錯誤,則輸出ENO的信號狀態(tài)也為“1”。如果滿足下列條件之一,使能輸出ENO將返回信號狀態(tài)“0”:輸入EN的信號狀態(tài)為“0”。處理過程中發(fā)生溢出之類的錯誤。目前八十六頁\總數一百五十一頁\編于三點可以使用“取整數字值”運算將輸入IN的值取整為最接近的整數。該運算將輸入IN的值解釋為浮點數并將其轉換為最接近的雙精度整數。如果輸入值恰好是相鄰偶數和奇數的平均數,則選擇偶數。運算結果放在輸出OUT中,可供查詢。只有使能輸入EN的信號狀態(tài)為“1”時,才執(zhí)行該操作。如果運算執(zhí)行過程中未發(fā)生錯誤,則輸出ENO的信號狀態(tài)為“1”。如果滿足下列條件之一,使能輸出ENO將返回信號狀態(tài)“0”:輸入EN的信號狀態(tài)為“0”。目前八十七頁\總數一百五十一頁\編于三點可以使用“浮點數向上取整”運算將輸入IN的值向上取整為相鄰整數。該運算將輸入IN的值解釋為浮點數并將其向上轉換為相鄰的整數。運算結果放在輸出OUT中,可供查詢。輸出值可以大于或等于輸入值。只有使能輸入EN的信號狀態(tài)為“1”時,才執(zhí)行該操作。如果運算執(zhí)行過程中未發(fā)生錯誤,則輸出ENO的信號狀態(tài)為“1”。如果滿足下列條件之一,使能輸出ENO將返回信號狀態(tài)“0”:輸入EN的信號狀態(tài)為“0”。目前八十八頁\總數一百五十一頁\編于三點可以使用“浮點數向下取整”運算將輸入IN的值向下取整為相鄰整數。該運算將輸入IN的值解釋為浮點數并將其向下轉換為相鄰的整數。運算結果放在輸出OUT中,可供查詢。輸出值可以小于或等于輸入值。只有使能輸入EN的信號狀態(tài)為“1”時,才執(zhí)行該操作。如果運算執(zhí)行過程中未發(fā)生錯誤,則輸出ENO的信號狀態(tài)為“1”。如果滿足下列條件之一,使能輸出ENO將返回信號狀態(tài)“0”:輸入EN的信號狀態(tài)為“0”。目前八十九頁\總數一百五十一頁\編于三點可以使用“截取整數”運算得出整數而不對輸入IN的值進行舍入。輸入IN的值被視為浮點數。該運算僅選擇浮點數的整數部分,并將其發(fā)送到輸出OUT中,不帶小數位。只有使能輸入EN的信號狀態(tài)為“1”時,才執(zhí)行該操作。如果運算執(zhí)行過程中未發(fā)生錯誤,則輸出ENO的信號狀態(tài)為“1”。如果滿足下列條件之一,使能輸出ENO將返回信號狀態(tài)“0”:輸入EN的信號狀態(tài)為“0”。目前九十頁\總數一百五十一頁\編于三點可以使用“標定”運算通過將輸入VALUE的值映射到指定的取值范圍對該值進行標定。執(zhí)行“標定”運算時,會將輸入VALUE的浮點數值標定到由參數MIN和MAX定義的取值范圍。標定結果為整數,并存儲在輸出OUT中。只有使能輸入端EN的信號狀態(tài)為“1”時,才執(zhí)行“標定”運算。在這種情況下,使能輸出ENO的信號狀態(tài)也為“1”。目前九十一頁\總數一百五十一頁\編于三點可以使用“標準化”運算通過將輸入VALUE的變量值映射到線性標尺對其進行標準化??梢允褂脜礛IN和MAX定義(應用于該標尺的)取值范圍的限值。根據標準化值在該取值范圍內的位置,計算結果并以浮點數形式存儲在輸出OUT中。如果要標準化的值等于輸入MIN的值,輸出OUT將返回值“0.0”。如果要標準化的值等于輸入MAX的值,輸出OUT將返回值“1.0”。目前九十二頁\總數一百五十一頁\編于三點目前九十三頁\總數一百五十一頁\編于三點目前九十四頁\總數一百五十一頁\編于三點程序控制指令目前九十五頁\總數一百五十一頁\編于三點可以使用“為1時塊中跳轉(有條件)”目標程序段必須標有跳轉標簽。需要指定該跳轉標簽的名稱以便執(zhí)行該操作。指定的跳轉標簽位于該操作的上方。指定的跳轉標簽必須在執(zhí)行該操作的塊中。指定的名稱在塊中只能出現一次。如果該操作的輸入端的邏輯運算結果為“1”,則跳轉到跳轉標簽所標識的程序段。跳轉方向可以朝向更大或更小的程序段編號。如果該操作的輸入不為真(RLO=0),則程序繼續(xù)在下一個程序段中執(zhí)行??梢允褂谩疤D標簽”指定跳轉的目標程序段,程序應在目標程序段中繼續(xù)執(zhí)行。跳轉標簽的名稱可以包含字母、數字或下劃線。跳轉標簽以及指定了該跳轉標簽的操作必須位于同一個塊中。跳轉標簽的名稱在塊中只能分配一次。

目前九十六頁\總數一百五十一頁\編于三點可以使用“為0時塊中跳轉(有條件)”操作,目標程序段必須標有跳轉標簽。需要指定該跳轉標簽的名稱以便執(zhí)行該操作。指定的跳轉標簽位于該操作的上方。指定的跳轉標簽必須在執(zhí)行該操作的塊中。指定的名稱在塊中只能出現一次。如果該操作的輸入端的邏輯運算結果(RLO)為“0”,則跳轉到跳轉標簽所標識的程序段。跳轉方向可以朝向更大或更小的程序段編號。如果該操作的輸入端的邏輯運算結果為“1”,則程序在下一個程序段中繼續(xù)執(zhí)行。目前九十七頁\總數一百五十一頁\編于三點可以使用“返回”操作停止塊的執(zhí)行。只有左側接頭的信號狀態(tài)為“1”時,才會執(zhí)行該操作。如果滿足該條件,將在當前被調用塊中終止程序執(zhí)行并在調用塊(例如,在調用OB中)中的調用功能后繼續(xù)執(zhí)行。調用功能的狀態(tài)由“返回”操作的參數決定。該參數可以為以下值:TRUE:調用功能的輸出ENO置位為“1”。FALSE:調用功能的輸出ENO復位為“0”。<操作數>:調用功能的輸出ENO由指定操作數的信號狀態(tài)決定。如果組織塊被“返回”操作終止,則CPU繼續(xù)執(zhí)行系統程序。如果“返回”操作輸入端的信號狀態(tài)為“0”,則不執(zhí)行該操作。在這種情況下,程序繼續(xù)在被調用塊的下一個程序段中執(zhí)行。目前九十八頁\總數一百五十一頁\編于三點圖無條件跳轉目前九十九頁\總數一百五十一頁\編于三點圖條件跳轉目前一百頁\總數一百五十一頁\編于三點字邏輯運算指令目前一百零一頁\總數一百五十一頁\編于三點可以使用“AND邏輯運算”將輸入IN1的值與輸入IN2的值通過AND邏輯逐位運算,并通過輸出OUT查詢結果。執(zhí)行該運算時,輸入IN1的值的位0與輸入IN2的值的位0通過AND邏輯進行運算。結果存儲在輸出OUT的位0中。對指定值的所有其它位都執(zhí)行相同的邏輯運算。僅當該邏輯運算中的兩個位的信號狀態(tài)均為“1”時,結果位的信號狀態(tài)才為“1”。如果該邏輯運算的兩個位中有一個位的信號狀態(tài)為“0”,則對應的結果位將復位。只有使能輸入EN的信號狀態(tài)為“1”時,才執(zhí)行該操作。在這種情況下,輸出ENO的信號狀態(tài)也為“1”。如果使能輸入EN的信號狀態(tài)為“0”,則使能輸出ENO的信號狀態(tài)復位為“0”。目前一百零二頁\總數一百五十一頁\編于三點可以使用“解碼”運算在輸出值中置位一個位,該位通過輸入值指定?!敖獯a”運算讀取輸入IN的值,然后在輸出值中置位一個位,該位位置與讀取的值一致。輸出值中的其它位以零填充。只有使能輸入EN的信號狀態(tài)為“1”時,才能啟動“解碼”運算。如果執(zhí)行過程中未發(fā)生錯誤,則輸出ENO的信號狀態(tài)也為“1”。如果使能輸入EN的信號狀態(tài)為“0”,則使能輸出ENO的信號狀態(tài)復位為“0”。目前一百零三頁\總數一百五十一頁\編于三點可以使用“編碼”運算讀取輸入值中最低有效置位位的位號并將其發(fā)送到輸出OUT?!熬幋a”運算選擇輸入IN值的最低有效位并將該位號寫入輸出OUT的變量中。只有使能輸入EN的信號狀態(tài)為“1”時,才能啟動“編碼”運算。如果執(zhí)行過程中未發(fā)生錯誤,則輸出ENO的信號狀態(tài)也為“1”。如果使能輸入EN的信號狀態(tài)為“0”,則使能輸出ENO的信號狀態(tài)復位為“0”。目前一百零四頁\總數一百五十一頁\編于三點“選擇”操作依靠一個開關(參數G)選擇輸入IN0或IN1中的一個并將其數據復制到輸出OUT。如果參數G的信號狀態(tài)為“0”,則復制輸入IN0的值。如果參數G的信號狀態(tài)為“1”,則將輸入IN1的值復制到輸出OUT。只有使能輸入EN的信號狀態(tài)為“1”時,才執(zhí)行該操作。如果執(zhí)行過程中未發(fā)生錯誤,則輸出ENO的信號狀態(tài)也為“1”。如果使能輸入EN的信號狀態(tài)為“0”或執(zhí)行該操作期間出錯,將復位使能輸出ENO。目前一百零五頁\總數一百五十一頁\編于三點可以使用“多路復用”操作將所選輸入的數據復制到輸出OUT。功能框MUX的可選輸入數可以擴展。輸入會在該功能框中自動編號。從IN0起開始編號,每個新輸入的編號連續(xù)遞增??梢允褂脜礙確定應該將哪個輸入的數據復制到輸出OUT。如果參數K的值大于可用輸入數,則將參數ELSE的數據復制到輸出OUT,并將使能輸出ENO設置為信號狀態(tài)“0”。只有所有輸入的變量和輸出OUT的變量具有相同數據類型時,才能執(zhí)行“多路復用”操作。參數K例外,因為只能為其指定整數。只有使能輸入EN的信號狀態(tài)為“1”時,才執(zhí)行該操作。如果執(zhí)行過程中未發(fā)生錯誤,則輸出ENO的信號狀態(tài)也為“1”。目前一百零六頁\總數一百五十一頁\編于三點移位和循環(huán)指令目前一百零七頁\總數一百五十一頁\編于三點可以使用“右移”操作將輸入IN的變量數據逐位右移,并通過輸出OUT查詢結果。使用參數N設置指定將移位的位數。參數N的值為“0”時,輸入IN的值將被復制到輸出OUT的變量中。當參數N的值大于位數時,輸入IN的變量值將按其可用位數向右移位。無符號值移位時,用零填充變量左側區(qū)域中空出的位。如果指定值有符號,則用符號位的信號狀態(tài)填充空出的位目前一百零八頁\總數一百五十一頁\編于三點可以使用“左移”操作將輸入IN中的變量數據逐位左移,并通過輸出OUT查詢結果。使用參數N設置指定將移位的位數。參數N的值為“0”時,輸入IN的值將被復制到輸出OUT的變量中。當參數N的值大于位數時,輸入IN的變量值將按其可用位數向左移位。用零填充變量右側部分因移位空出的位。目前一百零九頁\總數一百五十一頁\編于三點可以使用“循環(huán)右移”操作將輸入IN的變量數據逐位循環(huán)右移,并通過輸出OUT查詢結果。參數N指定將循環(huán)移位的位數。用擠出的位填充因循環(huán)移位空出的位。參數N的值為“0”時,輸入IN的值將被復制到輸出OUT的變量中。當參數N的值大于位數時,輸入IN的變量值將按其可用位數進行循環(huán)移位。目前一百一十頁\總數一百五十一頁\編于三點可以使用“循環(huán)左移”操作將輸入IN的變量數據逐位循環(huán)左移,并通過輸出OUT查詢結果。參數N指定將循環(huán)移位的位數。用擠出的位填充因循環(huán)移位空出的位。參數N的值為“0”時,輸入IN的值將被復制到輸出OUT的變量中。當參數N的值大于位數時,輸入IN的變量值將按其可用位數進行循環(huán)移位。目前一百一十一頁\總數一百五十一頁\編于三點[例]通過循環(huán)指令實現彩燈控制。編寫程序如圖5-30所示,其中I0.0為控制開關,M1.5為周期為1s的時鐘存儲器位,實現的功能為當按下I0.0,QD4中為1的輸出位每秒鐘向左移動1位。第1段程序的功能是賦初值,即將QD4中的Q7.0置位,第2段程序的功能是每秒鐘QD4循環(huán)左移一位。目前一百一十二頁\總數一百五十一頁\編于三點5.2擴展指令S7-1200的擴展指令包括日期和時間指令,字符串和字符指令,程序控制指令,通信指令,中斷指令,PID控制指令,運動控制指令,脈沖指令等。目前一百一十三頁\總數一百五十一頁\編于三點日期和時間指令目前一百一十四頁\總數一百五十一頁\編于三點使用T_CONV可將輸入IN的值轉換成輸出OUT指定的數據格式??蓪崿F下列轉換:時間(TIME)到數字值(DINT)的轉換數值(DINT)到時間(TIME)的轉換通過選擇指令輸入和輸出的數據類型來決定轉換的類型??赏ㄟ^輸出OUT查詢轉換結果。目前一百一十五頁\總數一百五十一頁\編于三點使用T_ADD可將輸入IN1的時間與輸入IN2的時間相加。通過輸出OUT查詢結果??梢詫ο铝懈袷竭M行相加操作:時間段(TIME)與時間段(TIME)相加。結果可以輸出到TIME格式的變量中。時間段(TIME)與時間點(DTL)相加。結果可以輸出到DTL格式的變量中。通過選擇指令輸入和輸出的數據類型來決定輸入IN1和輸出OUT的格式。在輸入IN2中,只能指定TIME格式的時間。

目前一百一十六頁\總數一百五十一頁\編于三點使用T_SUB可將輸入IN1的時間與輸入IN2的時間相減。通過輸出OUT查詢差值。可以對下列格式進行相減操作:時間段(TIME)與時間段(TIME)相減。結果可以輸出到TIME格式的變量中。從某時間點(DTL)減去一個時間段(TIME)。結果可以輸出到DTL格式的變量中。通過選擇指令輸入和輸出的數據類型來決定輸入IN1和輸出OUT的格式。在輸入IN2中,只能指定TIME格式的時間。目前一百一十七頁\總數一百五十一頁\編于三點使用T_DIFF可將輸入IN1的時間與輸入IN2的時間相減。以TIME格式通過輸出OUT輸出結果。在輸入IN1和IN2中只能指定DTL格式的值。如果在輸入IN2中指定的時間大于在輸入IN1中指定的時間,則結果將以負值的形式通過輸出OUT輸出。如果該指令的結果超出允許范圍,則此結果將限制為相應的值,并且使能輸出ENO將設置為“0”。目前一百一十八頁\總數一百五十一頁\編于三點可使用WR_SYS_T設置CPU時鐘的日期和時間。在指令的輸入IN指定DTL格式的日期和時間。在輸出RET_VAL中,可以查詢指令執(zhí)行期間是否出錯。不能使用“WR_SYS_T”指令發(fā)送有關本地時區(qū)或夏令時的信息。目前一百一十九頁\總數一百五十一頁\編于三點可使用RD_SYS_T讀取CPU時鐘的當前日期和當前時間。數據以DTL格式放在指令的輸出OUT中。得出的值不包含有關本地時區(qū)或夏令時的信息。在輸出RET_VAL中,可以查詢指令執(zhí)行期間是否出錯。目前一百二十頁\總數一百五十一頁\編于三點可使用RD_LOC_T從CPU時鐘讀取當前本地時間,并在輸出OUT以DTL格式輸出該值。在CPU時鐘的組態(tài)中設置的時區(qū)和夏令時開始時間以及標準時間,其相關信息均包括在本地時間信息中。目前一百二十一頁\總數一百五十一頁\編于三點字符串轉換指令目前一百二十二頁\總數一百五十一頁\編于三點使用S_CONV可將輸入IN的值轉換成在輸出OUT中指定的數據格式??蓪崿F下列轉換:字符串(STRING)轉換為數字值:

在輸入IN中指定的字符串的所有字符都將進行轉換。允許的字符為數字0到9、小數點以及加號和減號。字符串的第一個字符可以是有效數字或符號。前導空格和指數表示將被忽略。

無效字符可能會中斷字符轉換。此時,使能輸出ENO將設置為“0”。

可通過選擇輸出OUT的數據類型來決定轉換的輸出格式。數字值轉換為字符串(STRING):

通過選擇輸入IN的數據類型來決定要轉換的數字值格式。必須在輸出OUT中指定一個有效的STRING數據類型的變量。轉換后的字符串長度取決于輸入IN的值。由于第一個字節(jié)包含字符串的最大長度,第二個字節(jié)包含字符串的實際長度,因此轉換的結果從字符串的第三個字節(jié)開始存儲。輸出正數字值時不帶符號。復制字符串:

如果在指令的輸入和輸出均輸入STRING數據類型,則輸入IN的字符串將被復制到輸出OUT。如果輸入IN字符串的實際長度超出輸出OUT字符串的最大長度,則將復制IN字符串中完全適合OUT的字符串的那部分,并且使能輸出ENO將設置為“0”值。目前一百二十三頁\總數一百五十一頁\編于三點使用STRG_VAL可將字符串轉換為數字值。在輸入IN中指定要轉換的字符串。可通過選擇輸出OUT的數據類型來決定輸出值的格式。通過輸出OUT查詢結果。從參數P中指定位置的字符開始轉換。例如,如果參數P中指定的值為“1”,則將從指定字符串的第一個字符開始轉換。轉換允許的字符為數字0到9、小數點、逗號小數點、符號“E”和“e”以及加號和減號字符。無效字符可能會中斷轉換。此時,使能輸出ENO將設置為“0”。使用參數FORMAT可指定要如何解釋字符串中的字符。也可以使用“STRG_VAL”指令來轉換和表示指數值。只能為參數FORMAT指定USINT數據類型的變量。目前一百二十四頁\總數一百五十一頁\編于三點使用VAL_STRG可將數字值轉換為字符串。在輸入IN中指定要轉換的值。通過選擇數據類型來決定數字值的格式。通過輸出OUT查詢轉換結果。通過參數P可指定從字符串中的哪個字符開始寫入結果。例如,如果參數P中指定的值為“2”,則將從字符串的第二個字符開始保存轉換值。通過參數SIZE可以指定字符串中寫入的字符數。這要從參數P中指定的字符開始算起。如果由參數P和SIZE定義的長度不夠,則使能輸出ENO將設置為“0”。如果輸出值比指定長度短,則結果將以右對齊方式寫入字符串??兆址恢脤⑻钊肟崭?。轉換允許的字符為數字0到9、小數點、逗號小數點、符號“E”和“e”以及加號和減號字符。無效字符可能會中斷轉換。此時,使能輸出ENO將設置為“0”。使用參數FORMAT可指定在轉換期間如何解釋數字值以及如何將其寫入字符串。只能為參數FORMAT指定USINT數據類型的變量。目前一百二十五頁\總數一百五十一頁\編于三點字符串操作指令目前一百二十六頁\總數一百五十一頁\編于三點STRING類型的變量包含兩個長度:最大長度和當前長度(即當前有效字符的數量)。每個變量的字符串最大長度在STRING關鍵字的方括號中指定。當前長度表示實際使用的字符位置數。當前長度必須小于或等于最大長度。字符串占用的字節(jié)數為最大長度加2??墒褂谩癓EN”指令查詢在輸入IN中指定的字符串的當前長度,并在輸出OUT以數字值的形式將其輸出??兆址?'')的長度為零。如果操作處理期間出錯,則將輸出空字符串。目前一百二十七頁\總數一百五十一頁\編于三點CONCAT連接字符串參數IN1和IN2以形成一個字符串,并放在OUT中。目標字符串必須足夠長,否則結果字符串將被截短并且使能輸出ENO將設置為“0”值。如果指令處理期間出錯并且可以寫入到輸出OUT,則將輸出空字符串。目前一百二十八頁\總數一百五十一頁\編于三點可使用LEFT從輸入IN字符串的第一個字符開始提取出一部分字符串。通過參數L指定要提取的字符數。以STRING格式通過輸出OUT輸出提取的字符。如果要提取的字符數大于字符串的當前長度,則輸出OUT將返回輸入字符串。參數L的值為“0”時或者輸入值為空字符串時都將返回空字符串。如果參數L的值為負值,則將輸出空字符串并且使能輸出ENO將設置為“0”值。目前一百二十九頁\總數一百五十一頁\編于三點可使用MID將輸入IN字符串的一部分提取出來??赏ㄟ^參數P指定要提取的第一個字符的位置。通過參數

溫馨提示

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

評論

0/150

提交評論