西門子S7-1200plc指令系統(tǒng).ppt
《西門子S7-1200plc指令系統(tǒng).ppt》由會員分享,可在線閱讀,更多相關(guān)《西門子S7-1200plc指令系統(tǒng).ppt(151頁珍藏版)》請在裝配圖網(wǎng)上搜索。
指令系統(tǒng) S7 1200的指令從功能上大致可分為三類 基本指令 擴(kuò)展指令和全局庫指令 5 1基本指令 基本指令包括位邏輯指令 定時器 計數(shù)器 比較指令 數(shù)學(xué)指令 移動指令 轉(zhuǎn)換指令 程序控制指令 邏輯運算指令以及移位和循環(huán)移位指令等 基本邏輯指令 內(nèi)部輸入觸點 I 的閉合與斷開僅與輸入映像寄存器相應(yīng)位的狀態(tài)有關(guān) 與外部輸入按鈕 接觸器 繼電器的常開 常閉接法無關(guān) 輸入映像寄存器相應(yīng)位為1 則內(nèi)部常開觸點閉合 常閉觸點斷開 輸入映像寄存器相應(yīng)位為0 則內(nèi)部常開觸點斷開 常閉觸點閉合 置位域復(fù)位域指令 置位域指令將指定的地址開始的連續(xù)若干個地址置位 變?yōu)?狀態(tài)并保持 復(fù)位域指令將指定的地址開始的連續(xù)若干個地址復(fù)位 變?yōu)?狀態(tài)并保持 置位 復(fù)位指令 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被復(fù)位為0 并保持 而不論I0 0為何種狀態(tài) 指令說明 1 指定觸點一旦被置位 則保持接通狀態(tài) 直到對其進(jìn)行復(fù)位操作 而指定觸點一旦被復(fù)位 則變?yōu)榻油顟B(tài) 直到對其進(jìn)行復(fù)位操作 2 如果對定時器和計數(shù)器進(jìn)行復(fù)位操作 則被指定的T或C的位被復(fù)位 同時其當(dāng)前值被清0 復(fù)位優(yōu)先 置位優(yōu)先鎖存器 復(fù)位優(yōu)先鎖存器 置位優(yōu)先鎖存器 輸出線圈可選 指令功能RS復(fù)位優(yōu)先鎖存器 當(dāng)置位信號和復(fù)位信號都有效時 復(fù)位信號優(yōu)先 輸出線圈不接通 SR置位優(yōu)先鎖存器 當(dāng)置位信號和復(fù)位信號都有效時 置位信號優(yōu)先 輸出線圈接通 RS SR指令均為鎖存器 一個復(fù)位優(yōu)先 一個置位優(yōu)先 S連接置位輸入 R連接復(fù)位輸入 一旦輸出線圈被置位 則保持置位狀態(tài)直到復(fù)位輸入接通 置位 復(fù)位輸入均以高電平狀態(tài)有效 例 搶答器的設(shè)計搶答器有三個輸入 分別為I0 0 I0 1和I0 2 輸出分別為Q4 0 Q4 1和Q4 2 復(fù)位輸入是I0 4 要求 三人中任意搶答 誰先按按鈕 誰的指示燈優(yōu)先亮 且只能亮一盞燈 進(jìn)行下一問題時主持人按復(fù)位按鈕 搶答重新開始 搶答器程序 邊沿指令 位邏輯指令 邊緣檢測觸點指令 如果輸入信號I0 6由0變?yōu)?狀態(tài) 即輸入信號I0 6的上升沿 則該觸點接通一個掃描周期 觸點下面的M4 3為邊緣存儲位 用來存儲上一個掃描循環(huán)是I0 6的狀態(tài) 通過比較輸入信號的當(dāng)前狀態(tài)和上一次循環(huán)的狀態(tài)來檢測信號的邊沿 邊沿存儲位的地址只能在程序中使用一次 它的狀態(tài)不能在其他地方被改寫 只能使用M 全局DB和靜態(tài)局部變量來作邊沿存儲位 不能使用臨時局部數(shù)據(jù)或I O變量來作邊沿存儲位 位邏輯指令 P TRIG與N TRIG指令 在流進(jìn)P TRIG指令的CLK輸入端的能流的上升沿 Q端輸出一個掃描周期的能流 使M8 1置位 P TRIG指令與N TRIG指令不能放在電路的開始處和結(jié)束處 位邏輯指令 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滅 重復(fù)以上 例 若故障信號I0 0為1 使Q4 0控制的指示燈以1Hz的頻率閃爍 操作人員按復(fù)位按鈕I0 1后 如果故障已經(jīng)消失 則指示燈熄滅 如果沒有消失 指示燈轉(zhuǎn)為常亮 直至故障消失 定時器 使用定時器指令可創(chuàng)建編程的時間延遲 S7 1200PLC有4種定時器 TP 脈沖定時器可生成具有預(yù)設(shè)寬度時間的脈沖 TON 接通延遲定時器輸出Q在預(yù)設(shè)的延時過后設(shè)置為ON TOF 關(guān)斷延遲定時器輸出Q在預(yù)設(shè)的延時過后重置為OFF TONR 保持型接通延遲定時器輸出在預(yù)設(shè)的延時過后設(shè)置為ON 在使用R輸入重置經(jīng)過的時間之前 會跨越多個定時時段一直累加經(jīng)過的時間 RT 通過清除存儲在指定定時器背景數(shù)據(jù)塊中的時間數(shù)據(jù)來重置定時器 每個定時器都使用一個存儲在數(shù)據(jù)塊中的結(jié)構(gòu)來保存定時器數(shù)據(jù) 在編輯器中放置定時器指令時可分配該數(shù)據(jù)塊 接通延遲定時器及其時序圖 定時器的背景數(shù)據(jù)塊結(jié)構(gòu) 練習(xí) 按下瞬時啟動按鈕I0 0 5秒后電動機(jī)啟動 按下瞬時停止按鈕I0 1 10秒后電動機(jī)停止 例用接通延時定時器設(shè)計一個周期振蕩電路 用接通延時定時器設(shè)計周期和占空比可調(diào)的振蕩電路 振蕩電路的高 低電平時間分別由兩個定時器的PT值確定 保持型接通延遲定時器及其時序圖 關(guān)斷延遲定時器及其時序圖 脈沖定時器及其時序圖 例 用脈沖定時器實現(xiàn)一個周期振蕩電路 復(fù)位定時器指令 兩條運輸帶順序相連 為避免運送的物料在1號運輸帶上堆積 按下起動按鈕I0 3 1號帶開始運行 8s后2號帶自動起動 停機(jī)的順序與起動的順序相反 按了停止按鈕I0 2后 先停2號帶 8s后停1號帶 Q1 1和Q0 6控制兩臺電動機(jī)M1和M2 參數(shù)IN從0變?yōu)?將啟動TP TON和TONR 從1變0將啟動TOF ET為定時開始后經(jīng)過的時間 或稱為已耗時間值 可以不為ET指定地址 它們的數(shù)值類型為32位的Time 單位為ms 最大定時時間為T 24D 20H 31M 23S 647MS IEC定時器和IEC計數(shù)器屬于功能塊 調(diào)用時需要指定配套的背景數(shù)據(jù)塊 定時器和計數(shù)器指令的數(shù)據(jù)保存在背景數(shù)據(jù)塊中 在梯形圖中輸入定時器指令時 打開右邊的指令窗口將 定時器操作 文件夾中的定時器指令拖放到梯形圖中適當(dāng)?shù)奈恢?在出現(xiàn)的 調(diào)用選項 對話框中修改將要生成的背景數(shù)據(jù)塊的名稱 或采用默認(rèn)的名稱 點擊 確定 按鈕 自動生成數(shù)據(jù)塊 計數(shù)器 S7 1200有3種計數(shù)器 加計數(shù)器 CTU 減計數(shù)器 CTD 和加減計數(shù)器 CTUD 它們屬于軟件計數(shù)器 其最大計數(shù)速率受到它所在的OB的執(zhí)行速率的限制 如果需要速率更高的計數(shù)器 可以使用CPU內(nèi)置的高速計數(shù)器 調(diào)用計數(shù)器指令時 需要生成保存計數(shù)器數(shù)據(jù)的背景數(shù)據(jù)塊 CU和CD分別是加計數(shù)輸入和減計數(shù)輸入 在CU或CD由0變?yōu)?是 實際計數(shù)值CV加1或減1 復(fù)位輸入R為1時 計數(shù)器被復(fù)位 CV被清0 計數(shù)器的輸入Q變?yōu)? 計數(shù)器指令 計數(shù)器的輸入輸出參數(shù) 加計數(shù)器及其時序圖 CTU 參數(shù)CU的值從0變?yōu)?時 CTU使計數(shù)值加1 如果參數(shù)CV 當(dāng)前計數(shù)值 的值大于或等于參數(shù)PV 預(yù)設(shè)計數(shù)值 的值 則計數(shù)器輸出參數(shù)Q 1 如果復(fù)位參數(shù)R的值從0變?yōu)? 則當(dāng)前計數(shù)值復(fù)位為0 計數(shù)器的背景數(shù)據(jù)塊結(jié)構(gòu) 減計數(shù)器及其時序圖 CTD 參數(shù)CD的值從0變?yōu)?時 CTD使計數(shù)值減1 如果參數(shù)CV 當(dāng)前計數(shù)值 的值等于或小于0 則計數(shù)器輸出參數(shù)Q 1 如果參數(shù)LOAD的值從0變?yōu)? 則參數(shù)PV 預(yù)設(shè)值 的值將作為新的CV 當(dāng)前計數(shù)值 裝載到計數(shù)器 計數(shù)器指令 加減計數(shù)器 CTUD 加計數(shù) CU CountUp 或減計數(shù) CD CountDown 輸入的值從0跳變?yōu)?時 CTUD會使計數(shù)值加1或減1 如果參數(shù)CV 當(dāng)前計數(shù)值 的值大于或等于參數(shù)PV 預(yù)設(shè)值 的值 則計數(shù)器輸出參數(shù)QU 1 如果參數(shù)CV的值小于或等于零 則計數(shù)器輸出參數(shù)QD 1 如果參數(shù)LOAD的值從0變?yōu)? 則參數(shù)PV 預(yù)設(shè)值 的值將作為新的CV 當(dāng)前計數(shù)值 裝載到計數(shù)器 如果復(fù)位參數(shù)R的值從0變?yōu)? 則當(dāng)前計數(shù)值復(fù)位為0 加減計數(shù)器及其時序圖 PV 4 傳送帶控制一個能夠電氣啟動的傳送帶 在傳送帶的起點有兩個按鈕開關(guān) 用于START的S1和用于STOP的S2 在傳送帶的尾部也有兩個按鈕開關(guān) S3用于START S4用于STOP 可以從任一端啟動或停止傳送帶 另外 當(dāng)傳送帶上的物件到達(dá)末端時 傳感器S5使傳送帶停機(jī) 傳送帶示意圖 用于傳送帶系統(tǒng)符號編程的元素 控制傳送帶程序 風(fēng)機(jī)監(jiān)控程序某設(shè)備有三臺風(fēng)機(jī) 當(dāng)設(shè)備處于運行狀態(tài)時 如果風(fēng)機(jī)至少有兩臺以上轉(zhuǎn)動 則指示燈常亮 如果僅有一臺風(fēng)機(jī)轉(zhuǎn)動 則指示燈以0 5Hz的頻率閃爍 如果沒有任何風(fēng)機(jī)轉(zhuǎn)動 則指示燈不亮 輸入位I0 0 I0 1 I0 2分別為風(fēng)機(jī)1 2 3輸入端 通過傳送帶電機(jī)KM1帶動傳送帶傳送物品 通過產(chǎn)品檢測器PH檢測產(chǎn)品通過的數(shù)量 傳送帶每傳送24個產(chǎn)品機(jī)械手KM2動作1次 進(jìn)行包裝 機(jī)械手動作后 延時2秒 機(jī)械手的電磁鐵切斷 通過傳送帶起動按鈕 傳送帶停機(jī)按鈕控制傳送帶的運動 計數(shù)器應(yīng)用舉例 產(chǎn)品數(shù)量檢測 每24個產(chǎn)品機(jī)械手動作1次 機(jī)械手動作后 延時2秒 機(jī)械手的電磁鐵切斷 測到一個產(chǎn)品 I0 2產(chǎn)生一個正脈沖 使計一個數(shù) C10每計24個數(shù) 機(jī)械手動作一次 3臺電機(jī)順序啟動 反序停止控制控制要求 按下啟動按鈕后 3臺電機(jī)按M1 M2 M3的順序隔2s啟動 按下停止按鈕后 3臺電機(jī)按M3 M2 M1的順序隔2s停止 3臺電機(jī)順序啟動 反序停止控制程序 展廳人數(shù)控制系統(tǒng)控制要求 現(xiàn)有一展廳 最多可容納50人同時參觀 展廳進(jìn)口與出口各裝一傳感器 每有一人進(jìn)出 傳感器給出一個脈沖信號 試編程實現(xiàn) 當(dāng)展廳內(nèi)不足50人時 綠燈亮 表示可以進(jìn)入 當(dāng)展廳滿50人時 紅燈亮 表示不準(zhǔn)進(jìn)入 展廳人數(shù)控制系統(tǒng)I O分配表 展廳人數(shù)控制程序 運料車自動裝 卸料控制控制要求 某運料車如圖所示 可在A B兩地分別啟動 運料車啟動后 自動返回A地停止 同時控制料斗門的電磁閥Y1打開 開始裝料 1分鐘后 電磁閥Y1斷開 關(guān)閉料斗門 運料車自動向B地運行 到達(dá)B地后停止 小車底門由電磁閥Y2控制打開 開始卸料 1分鐘后 運料車底門關(guān)閉 開始返回A地 之后重復(fù)運行 運料車在運行過程中 可用手動開關(guān)使其停車 再次啟動后 可重復(fù) 中內(nèi)容 圖7 43運料車自動裝 卸料控制示意圖 運料車自動裝 卸料控制I O分配表 比較指令 可以使用 等于 操作確定第一個比較值是否等于第二個比較值 要比較的兩個值必須為相同的數(shù)據(jù)類型 該LAD觸點比較結(jié)果為TRUE時 則該觸點會被激活 在程序編輯器中單擊該指令后 可以從下拉菜單中選擇比較類型和數(shù)據(jù)類型 可以使用 大于 操作確定第一個比較值是否大于第二個比較值 要比較的兩個值必須為相同的數(shù)據(jù)類型 如果比較為真 則RLO為 1 在比較字符串時 通過字符ASCII碼比較字符 例如 a 大于 A 從左到右執(zhí)行比較 第一個不同的字符決定比較結(jié)果 如果較長字符串的左側(cè)部分和較短字符串相同 則認(rèn)為較長字符串更大 使用IN RANGE和OUT RANGE指令可測試輸入值是在指定的值范圍之內(nèi)還是之外 如果比較結(jié)果為TRUE 則功能框輸出為TRUE 輸入?yún)?shù)MIN VAL和MAX的數(shù)據(jù)類型必須相同 在程序編輯器中單擊該指令后 可以從下拉菜單中選擇數(shù)據(jù)類型 例 用比較和計數(shù)指令編寫開關(guān)燈程序 要求燈控按鈕I0 0按下一次 燈Q4 0亮 按下兩次 燈Q4 0 Q4 1全亮 按下三次燈全滅 如此循環(huán) 分析 在程序中所用計數(shù)器為加法計數(shù)器 當(dāng)加到3時 必須復(fù)位計數(shù)器 這是關(guān)鍵 燈控制程序如圖所示 梯形圖程序如下 例 在HMI設(shè)備上可以設(shè)定電動機(jī)的轉(zhuǎn)速 設(shè)定值MW20的范圍為100 1440轉(zhuǎn) 分鐘 若輸入的設(shè)定值在此范圍內(nèi) 則延時5秒鐘啟動電動機(jī)Q0 0 否則Q0 1長亮提示 使用OK和NOT OK指令可測試輸入的數(shù)據(jù)是否為符合IEEE規(guī)范754的有效實數(shù) 圖中 當(dāng)MD0和MD4中為有效的浮點數(shù)時 會激活 實數(shù)乘 MUL 運算并置位輸出 即將MD0的值將與MD4的值相乘 結(jié)果存儲在MD10中同時Q4 0輸出為1 如果輸入IN的值為123 4567則輸出OUT返回值0 4567 移動指令 可以使用 移動塊 操作將一個存儲區(qū) 源區(qū)域 的內(nèi)容復(fù)制到另一個存儲區(qū) 目標(biāo)區(qū)域 要復(fù)制到目標(biāo)區(qū)域的元素個數(shù)由參數(shù)COUNT指定 要復(fù)制的元素的寬度由輸入IN的元素寬度定義 復(fù)制操作沿地址升序方向進(jìn)行 只有使能輸入EN的信號狀態(tài)為 1 時 才執(zhí)行該操作 如果運算執(zhí)行過程中未發(fā)生錯誤 則輸出ENO的信號狀態(tài)為 1 如果滿足下列條件之一 使能輸出ENO將返回信號狀態(tài) 0 輸入EN的信號狀態(tài)為 0 復(fù)制的數(shù)據(jù)量超出輸出OUT存儲區(qū)所提供的數(shù)據(jù)量 可以通過 填充塊 操作使用輸入IN的值填充存儲區(qū) 目標(biāo)區(qū)域 從輸出OUT指定的地址開始填充目標(biāo)區(qū)域 重復(fù)的復(fù)制操作次數(shù)由參數(shù)COUNT指定 執(zhí)行該操作時 將選擇輸入IN的值并將其按照參數(shù)COUNT指定的重復(fù)次數(shù)復(fù)制到目標(biāo)區(qū)域 只有使能輸入EN的信號狀態(tài)為 1 時 才執(zhí)行該操作 如果運算執(zhí)行過程中未發(fā)生錯誤 則輸出ENO的信號狀態(tài)為 1 如果滿足下列條件之一 使能輸出ENO將返回信號狀態(tài) 0 輸入EN的信號狀態(tài)為 0 復(fù)制的數(shù)據(jù)量超出輸出OUT存儲區(qū)所提供的數(shù)據(jù)量 MOVE指令將單個數(shù)據(jù)元素從IN參數(shù)指定的源地址復(fù)制到OUT參數(shù)指定的目標(biāo)地址 MOVE BLK和UMOVE BLK指令具有附加的COUNT參數(shù) COUNT指定要復(fù)制的數(shù)據(jù)元素個數(shù) 每個被復(fù)制元素的字節(jié)數(shù)取決于PLC變量表中分配給IN和OUT參數(shù)變量名稱的數(shù)據(jù)類型 MOVE BLK和UMOVE BLK指令在處理中斷的方式上有所不同 在MOVE BLK執(zhí)行期間排隊并處理中斷事件 在中斷OB子程序中未使用移動目標(biāo)地址的數(shù)據(jù)時 或者雖然使用了該數(shù)據(jù) 但目標(biāo)數(shù)據(jù)不必一致時 使用MOVE BLK指令 如果MOVE BLK操作被中斷 則最后移動的一個數(shù)據(jù)元素在目標(biāo)地址中是完整并且一致的 MOVE BLK操作會在中斷OB執(zhí)行完成后繼續(xù)執(zhí)行 在UMOVE BLK完成執(zhí)行前排隊但不處理中斷事件 如果在執(zhí)行中斷OB子程序前移動操作必須完成且目標(biāo)數(shù)據(jù)必須一致 則使用UMOVE BLK指令 轉(zhuǎn)換指令 轉(zhuǎn)換 操作讀取參數(shù)IN的數(shù)據(jù) 然后根據(jù)指定的數(shù)據(jù)類型對其進(jìn)行轉(zhuǎn)換 僅當(dāng)使能輸入EN的信號狀態(tài)為 1 時 才能啟動 轉(zhuǎn)換 操作 如果執(zhí)行過程中未發(fā)生錯誤 則輸出ENO的信號狀態(tài)也為 1 如果滿足下列條件之一 使能輸出ENO將返回信號狀態(tài) 0 輸入EN的信號狀態(tài)為 0 處理過程中發(fā)生溢出之類的錯誤 可以使用 取整數(shù)字值 運算將輸入IN的值取整為最接近的整數(shù) 該運算將輸入IN的值解釋為浮點數(shù)并將其轉(zhuǎn)換為最接近的雙精度整數(shù) 如果輸入值恰好是相鄰偶數(shù)和奇數(shù)的平均數(shù) 則選擇偶數(shù) 運算結(jié)果放在輸出OUT中 可供查詢 只有使能輸入EN的信號狀態(tài)為 1 時 才執(zhí)行該操作 如果運算執(zhí)行過程中未發(fā)生錯誤 則輸出ENO的信號狀態(tài)為 1 如果滿足下列條件之一 使能輸出ENO將返回信號狀態(tài) 0 輸入EN的信號狀態(tài)為 0 可以使用 浮點數(shù)向上取整 運算將輸入IN的值向上取整為相鄰整數(shù) 該運算將輸入IN的值解釋為浮點數(shù)并將其向上轉(zhuǎn)換為相鄰的整數(shù) 運算結(jié)果放在輸出OUT中 可供查詢 輸出值可以大于或等于輸入值 只有使能輸入EN的信號狀態(tài)為 1 時 才執(zhí)行該操作 如果運算執(zhí)行過程中未發(fā)生錯誤 則輸出ENO的信號狀態(tài)為 1 如果滿足下列條件之一 使能輸出ENO將返回信號狀態(tài) 0 輸入EN的信號狀態(tài)為 0 可以使用 浮點數(shù)向下取整 運算將輸入IN的值向下取整為相鄰整數(shù) 該運算將輸入IN的值解釋為浮點數(shù)并將其向下轉(zhuǎn)換為相鄰的整數(shù) 運算結(jié)果放在輸出OUT中 可供查詢 輸出值可以小于或等于輸入值 只有使能輸入EN的信號狀態(tài)為 1 時 才執(zhí)行該操作 如果運算執(zhí)行過程中未發(fā)生錯誤 則輸出ENO的信號狀態(tài)為 1 如果滿足下列條件之一 使能輸出ENO將返回信號狀態(tài) 0 輸入EN的信號狀態(tài)為 0 可以使用 截取整數(shù) 運算得出整數(shù)而不對輸入IN的值進(jìn)行舍入 輸入IN的值被視為浮點數(shù) 該運算僅選擇浮點數(shù)的整數(shù)部分 并將其發(fā)送到輸出OUT中 不帶小數(shù)位 只有使能輸入EN的信號狀態(tài)為 1 時 才執(zhí)行該操作 如果運算執(zhí)行過程中未發(fā)生錯誤 則輸出ENO的信號狀態(tài)為 1 如果滿足下列條件之一 使能輸出ENO將返回信號狀態(tài) 0 輸入EN的信號狀態(tài)為 0 可以使用 標(biāo)定 運算通過將輸入VALUE的值映射到指定的取值范圍對該值進(jìn)行標(biāo)定 執(zhí)行 標(biāo)定 運算時 會將輸入VALUE的浮點數(shù)值標(biāo)定到由參數(shù)MIN和MAX定義的取值范圍 標(biāo)定結(jié)果為整數(shù) 并存儲在輸出OUT中 只有使能輸入端EN的信號狀態(tài)為 1 時 才執(zhí)行 標(biāo)定 運算 在這種情況下 使能輸出ENO的信號狀態(tài)也為 1 可以使用 標(biāo)準(zhǔn)化 運算通過將輸入VALUE的變量值映射到線性標(biāo)尺對其進(jìn)行標(biāo)準(zhǔn)化 可以使用參數(shù)MIN和MAX定義 應(yīng)用于該標(biāo)尺的 取值范圍的限值 根據(jù)標(biāo)準(zhǔn)化值在該取值范圍內(nèi)的位置 計算結(jié)果并以浮點數(shù)形式存儲在輸出OUT中 如果要標(biāo)準(zhǔn)化的值等于輸入MIN的值 輸出OUT將返回值 0 0 如果要標(biāo)準(zhǔn)化的值等于輸入MAX的值 輸出OUT將返回值 1 0 程序控制指令 可以使用 為1時塊中跳轉(zhuǎn) 有條件 目標(biāo)程序段必須標(biāo)有跳轉(zhuǎn)標(biāo)簽 需要指定該跳轉(zhuǎn)標(biāo)簽的名稱以便執(zhí)行該操作 指定的跳轉(zhuǎn)標(biāo)簽位于該操作的上方 指定的跳轉(zhuǎn)標(biāo)簽必須在執(zhí)行該操作的塊中 指定的名稱在塊中只能出現(xiàn)一次 如果該操作的輸入端的邏輯運算結(jié)果為 1 則跳轉(zhuǎn)到跳轉(zhuǎn)標(biāo)簽所標(biāo)識的程序段 跳轉(zhuǎn)方向可以朝向更大或更小的程序段編號 如果該操作的輸入不為真 RLO 0 則程序繼續(xù)在下一個程序段中執(zhí)行 可以使用 跳轉(zhuǎn)標(biāo)簽 指定跳轉(zhuǎn)的目標(biāo)程序段 程序應(yīng)在目標(biāo)程序段中繼續(xù)執(zhí)行 跳轉(zhuǎn)標(biāo)簽的名稱可以包含字母 數(shù)字或下劃線 跳轉(zhuǎn)標(biāo)簽以及指定了該跳轉(zhuǎn)標(biāo)簽的操作必須位于同一個塊中 跳轉(zhuǎn)標(biāo)簽的名稱在塊中只能分配一次 可以使用 為0時塊中跳轉(zhuǎn) 有條件 操作 目標(biāo)程序段必須標(biāo)有跳轉(zhuǎn)標(biāo)簽 需要指定該跳轉(zhuǎn)標(biāo)簽的名稱以便執(zhí)行該操作 指定的跳轉(zhuǎn)標(biāo)簽位于該操作的上方 指定的跳轉(zhuǎn)標(biāo)簽必須在執(zhí)行該操作的塊中 指定的名稱在塊中只能出現(xiàn)一次 如果該操作的輸入端的邏輯運算結(jié)果 RLO 為 0 則跳轉(zhuǎn)到跳轉(zhuǎn)標(biāo)簽所標(biāo)識的程序段 跳轉(zhuǎn)方向可以朝向更大或更小的程序段編號 如果該操作的輸入端的邏輯運算結(jié)果為 1 則程序在下一個程序段中繼續(xù)執(zhí)行 可以使用 返回 操作停止塊的執(zhí)行 只有左側(cè)接頭的信號狀態(tài)為 1 時 才會執(zhí)行該操作 如果滿足該條件 將在當(dāng)前被調(diào)用塊中終止程序執(zhí)行并在調(diào)用塊 例如 在調(diào)用OB中 中的調(diào)用功能后繼續(xù)執(zhí)行 調(diào)用功能的狀態(tài)由 返回 操作的參數(shù)決定 該參數(shù)可以為以下值 TRUE 調(diào)用功能的輸出ENO置位為 1 FALSE 調(diào)用功能的輸出ENO復(fù)位為 0 調(diào)用功能的輸出ENO由指定操作數(shù)的信號狀態(tài)決定 如果組織塊被 返回 操作終止 則CPU繼續(xù)執(zhí)行系統(tǒng)程序 如果 返回 操作輸入端的信號狀態(tài)為 0 則不執(zhí)行該操作 在這種情況下 程序繼續(xù)在被調(diào)用塊的下一個程序段中執(zhí)行 圖無條件跳轉(zhuǎn) 圖條件跳轉(zhuǎn) 字邏輯運算指令 可以使用 AND邏輯運算 將輸入IN1的值與輸入IN2的值通過AND邏輯逐位運算 并通過輸出OUT查詢結(jié)果 執(zhí)行該運算時 輸入IN1的值的位0與輸入IN2的值的位0通過AND邏輯進(jìn)行運算 結(jié)果存儲在輸出OUT的位0中 對指定值的所有其它位都執(zhí)行相同的邏輯運算 僅當(dāng)該邏輯運算中的兩個位的信號狀態(tài)均為 1 時 結(jié)果位的信號狀態(tài)才為 1 如果該邏輯運算的兩個位中有一個位的信號狀態(tài)為 0 則對應(yīng)的結(jié)果位將復(fù)位 只有使能輸入EN的信號狀態(tài)為 1 時 才執(zhí)行該操作 在這種情況下 輸出ENO的信號狀態(tài)也為 1 如果使能輸入EN的信號狀態(tài)為 0 則使能輸出ENO的信號狀態(tài)復(fù)位為 0 可以使用 解碼 運算在輸出值中置位一個位 該位通過輸入值指定 解碼 運算讀取輸入IN的值 然后在輸出值中置位一個位 該位位置與讀取的值一致 輸出值中的其它位以零填充 只有使能輸入EN的信號狀態(tài)為 1 時 才能啟動 解碼 運算 如果執(zhí)行過程中未發(fā)生錯誤 則輸出ENO的信號狀態(tài)也為 1 如果使能輸入EN的信號狀態(tài)為 0 則使能輸出ENO的信號狀態(tài)復(fù)位為 0 可以使用 編碼 運算讀取輸入值中最低有效置位位的位號并將其發(fā)送到輸出OUT 編碼 運算選擇輸入IN值的最低有效位并將該位號寫入輸出OUT的變量中 只有使能輸入EN的信號狀態(tài)為 1 時 才能啟動 編碼 運算 如果執(zhí)行過程中未發(fā)生錯誤 則輸出ENO的信號狀態(tài)也為 1 如果使能輸入EN的信號狀態(tài)為 0 則使能輸出ENO的信號狀態(tài)復(fù)位為 0 選擇 操作依靠一個開關(guān) 參數(shù)G 選擇輸入IN0或IN1中的一個并將其數(shù)據(jù)復(fù)制到輸出OUT 如果參數(shù)G的信號狀態(tài)為 0 則復(fù)制輸入IN0的值 如果參數(shù)G的信號狀態(tài)為 1 則將輸入IN1的值復(fù)制到輸出OUT 只有使能輸入EN的信號狀態(tài)為 1 時 才執(zhí)行該操作 如果執(zhí)行過程中未發(fā)生錯誤 則輸出ENO的信號狀態(tài)也為 1 如果使能輸入EN的信號狀態(tài)為 0 或執(zhí)行該操作期間出錯 將復(fù)位使能輸出ENO 可以使用 多路復(fù)用 操作將所選輸入的數(shù)據(jù)復(fù)制到輸出OUT 功能框MUX的可選輸入數(shù)可以擴(kuò)展 輸入會在該功能框中自動編號 從IN0起開始編號 每個新輸入的編號連續(xù)遞增 可以使用參數(shù)K確定應(yīng)該將哪個輸入的數(shù)據(jù)復(fù)制到輸出OUT 如果參數(shù)K的值大于可用輸入數(shù) 則將參數(shù)ELSE的數(shù)據(jù)復(fù)制到輸出OUT 并將使能輸出ENO設(shè)置為信號狀態(tài) 0 只有所有輸入的變量和輸出OUT的變量具有相同數(shù)據(jù)類型時 才能執(zhí)行 多路復(fù)用 操作 參數(shù)K例外 因為只能為其指定整數(shù) 只有使能輸入EN的信號狀態(tài)為 1 時 才執(zhí)行該操作 如果執(zhí)行過程中未發(fā)生錯誤 則輸出ENO的信號狀態(tài)也為 1 移位和循環(huán)指令 可以使用 右移 操作將輸入IN的變量數(shù)據(jù)逐位右移 并通過輸出OUT查詢結(jié)果 使用參數(shù)N設(shè)置指定將移位的位數(shù) 參數(shù)N的值為 0 時 輸入IN的值將被復(fù)制到輸出OUT的變量中 當(dāng)參數(shù)N的值大于位數(shù)時 輸入IN的變量值將按其可用位數(shù)向右移位 無符號值移位時 用零填充變量左側(cè)區(qū)域中空出的位 如果指定值有符號 則用符號位的信號狀態(tài)填充空出的位 可以使用 左移 操作將輸入IN中的變量數(shù)據(jù)逐位左移 并通過輸出OUT查詢結(jié)果 使用參數(shù)N設(shè)置指定將移位的位數(shù) 參數(shù)N的值為 0 時 輸入IN的值將被復(fù)制到輸出OUT的變量中 當(dāng)參數(shù)N的值大于位數(shù)時 輸入IN的變量值將按其可用位數(shù)向左移位 用零填充變量右側(cè)部分因移位空出的位 可以使用 循環(huán)右移 操作將輸入IN的變量數(shù)據(jù)逐位循環(huán)右移 并通過輸出OUT查詢結(jié)果 參數(shù)N指定將循環(huán)移位的位數(shù) 用擠出的位填充因循環(huán)移位空出的位 參數(shù)N的值為 0 時 輸入IN的值將被復(fù)制到輸出OUT的變量中 當(dāng)參數(shù)N的值大于位數(shù)時 輸入IN的變量值將按其可用位數(shù)進(jìn)行循環(huán)移位 可以使用 循環(huán)左移 操作將輸入IN的變量數(shù)據(jù)逐位循環(huán)左移 并通過輸出OUT查詢結(jié)果 參數(shù)N指定將循環(huán)移位的位數(shù) 用擠出的位填充因循環(huán)移位空出的位 參數(shù)N的值為 0 時 輸入IN的值將被復(fù)制到輸出OUT的變量中 當(dāng)參數(shù)N的值大于位數(shù)時 輸入IN的變量值將按其可用位數(shù)進(jìn)行循環(huán)移位 例 通過循環(huán)指令實現(xiàn)彩燈控制 編寫程序如圖5 30所示 其中I0 0為控制開關(guān) M1 5為周期為1s的時鐘存儲器位 實現(xiàn)的功能為當(dāng)按下I0 0 QD4中為1的輸出位每秒鐘向左移動1位 第1段程序的功能是賦初值 即將QD4中的Q7 0置位 第2段程序的功能是每秒鐘QD4循環(huán)左移一位 5 2擴(kuò)展指令 S7 1200的擴(kuò)展指令包括日期和時間指令 字符串和字符指令 程序控制指令 通信指令 中斷指令 PID控制指令 運動控制指令 脈沖指令等 日期和時間指令 使用T CONV可將輸入IN的值轉(zhuǎn)換成輸出OUT指定的數(shù)據(jù)格式 可實現(xiàn)下列轉(zhuǎn)換 時間 TIME 到數(shù)字值 DINT 的轉(zhuǎn)換數(shù)值 DINT 到時間 TIME 的轉(zhuǎn)換通過選擇指令輸入和輸出的數(shù)據(jù)類型來決定轉(zhuǎn)換的類型 可通過輸出OUT查詢轉(zhuǎn)換結(jié)果 使用T ADD可將輸入IN1的時間與輸入IN2的時間相加 通過輸出OUT查詢結(jié)果 可以對下列格式進(jìn)行相加操作 時間段 TIME 與時間段 TIME 相加 結(jié)果可以輸出到TIME格式的變量中 時間段 TIME 與時間點 DTL 相加 結(jié)果可以輸出到DTL格式的變量中 通過選擇指令輸入和輸出的數(shù)據(jù)類型來決定輸入IN1和輸出OUT的格式 在輸入IN2中 只能指定TIME格式的時間 使用T SUB可將輸入IN1的時間與輸入IN2的時間相減 通過輸出OUT查詢差值 可以對下列格式進(jìn)行相減操作 時間段 TIME 與時間段 TIME 相減 結(jié)果可以輸出到TIME格式的變量中 從某時間點 DTL 減去一個時間段 TIME 結(jié)果可以輸出到DTL格式的變量中 通過選擇指令輸入和輸出的數(shù)據(jù)類型來決定輸入IN1和輸出OUT的格式 在輸入IN2中 只能指定TIME格式的時間 使用T DIFF可將輸入IN1的時間與輸入IN2的時間相減 以TIME格式通過輸出OUT輸出結(jié)果 在輸入IN1和IN2中只能指定DTL格式的值 如果在輸入IN2中指定的時間大于在輸入IN1中指定的時間 則結(jié)果將以負(fù)值的形式通過輸出OUT輸出 如果該指令的結(jié)果超出允許范圍 則此結(jié)果將限制為相應(yīng)的值 并且使能輸出ENO將設(shè)置為 0 可使用WR SYS T設(shè)置CPU時鐘的日期和時間 在指令的輸入IN指定DTL格式的日期和時間 在輸出RET VAL中 可以查詢指令執(zhí)行期間是否出錯 不能使用 WR SYS T 指令發(fā)送有關(guān)本地時區(qū)或夏令時的信息 可使用RD SYS T讀取CPU時鐘的當(dāng)前日期和當(dāng)前時間 數(shù)據(jù)以DTL格式放在指令的輸出OUT中 得出的值不包含有關(guān)本地時區(qū)或夏令時的信息 在輸出RET VAL中 可以查詢指令執(zhí)行期間是否出錯 可使用RD LOC T從CPU時鐘讀取當(dāng)前本地時間 并在輸出OUT以DTL格式輸出該值 在CPU時鐘的組態(tài)中設(shè)置的時區(qū)和夏令時開始時間以及標(biāo)準(zhǔn)時間 其相關(guān)信息均包括在本地時間信息中 字符串轉(zhuǎn)換指令 使用S CONV可將輸入IN的值轉(zhuǎn)換成在輸出OUT中指定的數(shù)據(jù)格式 可實現(xiàn)下列轉(zhuǎn)換 字符串 STRING 轉(zhuǎn)換為數(shù)字值 在輸入IN中指定的字符串的所有字符都將進(jìn)行轉(zhuǎn)換 允許的字符為數(shù)字0到9 小數(shù)點以及加號和減號 字符串的第一個字符可以是有效數(shù)字或符號 前導(dǎo)空格和指數(shù)表示將被忽略 無效字符可能會中斷字符轉(zhuǎn)換 此時 使能輸出ENO將設(shè)置為 0 可通過選擇輸出OUT的數(shù)據(jù)類型來決定轉(zhuǎn)換的輸出格式 數(shù)字值轉(zhuǎn)換為字符串 STRING 通過選擇輸入IN的數(shù)據(jù)類型來決定要轉(zhuǎn)換的數(shù)字值格式 必須在輸出OUT中指定一個有效的STRING數(shù)據(jù)類型的變量 轉(zhuǎn)換后的字符串長度取決于輸入IN的值 由于第一個字節(jié)包含字符串的最大長度 第二個字節(jié)包含字符串的實際長度 因此轉(zhuǎn)換的結(jié)果從字符串的第三個字節(jié)開始存儲 輸出正數(shù)字值時不帶符號 復(fù)制字符串 如果在指令的輸入和輸出均輸入STRING數(shù)據(jù)類型 則輸入IN的字符串將被復(fù)制到輸出OUT 如果輸入IN字符串的實際長度超出輸出OUT字符串的最大長度 則將復(fù)制IN字符串中完全適合OUT的字符串的那部分 并且使能輸出ENO將設(shè)置為 0 值 使用STRG VAL可將字符串轉(zhuǎn)換為數(shù)字值 在輸入IN中指定要轉(zhuǎn)換的字符串 可通過選擇輸出OUT的數(shù)據(jù)類型來決定輸出值的格式 通過輸出OUT查詢結(jié)果 從參數(shù)P中指定位置的字符開始轉(zhuǎn)換 例如 如果參數(shù)P中指定的值為 1 則將從指定字符串的第一個字符開始轉(zhuǎn)換 轉(zhuǎn)換允許的字符為數(shù)字0到9 小數(shù)點 逗號小數(shù)點 符號 E 和 e 以及加號和減號字符 無效字符可能會中斷轉(zhuǎn)換 此時 使能輸出ENO將設(shè)置為 0 使用參數(shù)FORMAT可指定要如何解釋字符串中的字符 也可以使用 STRG VAL 指令來轉(zhuǎn)換和表示指數(shù)值 只能為參數(shù)FORMAT指定USINT數(shù)據(jù)類型的變量 使用VAL STRG可將數(shù)字值轉(zhuǎn)換為字符串 在輸入IN中指定要轉(zhuǎn)換的值 通過選擇數(shù)據(jù)類型來決定數(shù)字值的格式 通過輸出OUT查詢轉(zhuǎn)換結(jié)果 通過參數(shù)P可指定從字符串中的哪個字符開始寫入結(jié)果 例如 如果參數(shù)P中指定的值為 2 則將從字符串的第二個字符開始保存轉(zhuǎn)換值 通過參數(shù)SIZE可以指定字符串中寫入的字符數(shù) 這要從參數(shù)P中指定的字符開始算起 如果由參數(shù)P和SIZE定義的長度不夠 則使能輸出ENO將設(shè)置為 0 如果輸出值比指定長度短 則結(jié)果將以右對齊方式寫入字符串 空字符位置將填入空格 轉(zhuǎn)換允許的字符為數(shù)字0到9 小數(shù)點 逗號小數(shù)點 符號 E 和 e 以及加號和減號字符 無效字符可能會中斷轉(zhuǎn)換 此時 使能輸出ENO將設(shè)置為 0 使用參數(shù)FORMAT可指定在轉(zhuǎn)換期間如何解釋數(shù)字值以及如何將其寫入字符串 只能為參數(shù)FORMAT指定USINT數(shù)據(jù)類型的變量 字符串操作指令 STRING類型的變量包含兩個長度 最大長度和當(dāng)前長度 即當(dāng)前有效字符的數(shù)量 每個變量的字符串最大長度在STRING關(guān)鍵字的方括號中指定 當(dāng)前長度表示實際使用的字符位置數(shù) 當(dāng)前長度必須小于或等于最大長度 字符串占用的字節(jié)數(shù)為最大長度加2 可使用 LEN 指令查詢在輸入IN中指定的字符串的當(dāng)前長度 并在輸出OUT以數(shù)字值的形式將其輸出 空字符串 的長度為零 如果操作處理期間出錯 則將輸出空字符串 CONCAT連接字符串參數(shù)IN1和IN2以形成一個字符串 并放在OUT中 目標(biāo)字符串必須足夠長 否則結(jié)果字符串將被截短并且使能輸出ENO將設(shè)置為 0 值 如果指令處理期間出錯并且可以寫入到輸出OUT 則將輸出空字符串 可使用LEFT從輸入IN字符串的第一個字符開始提取出一部分字符串 通過參數(shù)L指定要提取的字符數(shù) 以STRING格式通過輸出OUT輸出提取的字符 如果要提取的字符數(shù)大于字符串的當(dāng)前長度 則輸出OUT將返回輸入字符串 參數(shù)L的值為 0 時或者輸入值為空字符串時都將返回空字符串 如果參數(shù)L的值為負(fù)值 則將輸出空字符串并且使能輸出ENO將設(shè)置為 0 值 可使用MID將輸入IN字符串的一部分提取出來 可通過參數(shù)P指定要提取的第一個字符的位置 通過參數(shù)L指定要提取的字符串長度 提取的部分字符串通過輸出OUT輸出 執(zhí)行該指令時應(yīng)遵守以下規(guī)則 如果要提取的字符數(shù)超出輸入IN字符串的當(dāng)前長度 則將輸出從字符位置P開始到該字符串末尾的這一部分字符串 如果通過參數(shù)P指定的字符位置超出輸入IN字符串的當(dāng)前長度 則將通過輸出OUT輸出空字符串并且使能輸出ENO將設(shè)置為 0 值 如果參數(shù)L或P的值等于零或為負(fù)值 則將通過輸出OUT輸出空字符串并且使能輸出ENO將設(shè)置為 0 值 可使用DELETE將輸入IN字符串的一部分刪除 可通過參數(shù)P指定要刪除的第一個字符的位置 可使用參數(shù)L指定要刪除的字符數(shù) 剩余部分的字符串通過輸出OUT以STRING格式輸出 執(zhí)行該指令時應(yīng)遵守以下規(guī)則 如果參數(shù)L或P的值等于零 則輸出OUT將返回輸入字符串 如果參數(shù)P的值大于輸入IN字符串的當(dāng)前長度 則輸出OUT將返回輸入字符串 如果要刪除的字符數(shù)大于輸入IN字符串的長度 則將輸出空字符串 如果參數(shù)L或P的值為負(fù)值 則將輸出空字符串并且使能輸出ENO將設(shè)置為 0 值 從字符串1的某個字符位置開始插入字符串2 并將結(jié)果存儲在目標(biāo)字符串中 可使用參數(shù)P指定要插入字符的字符位置 以STRING格式通過輸出OUT輸出結(jié)果 執(zhí)行該指令時應(yīng)遵守以下規(guī)則 如果參數(shù)P的值超出輸入IN1字符串的當(dāng)前長度 則輸入IN2的字符串將附加到輸入IN1的字符串的后面 如果參數(shù)P的值為負(fù)值或等于零 則將通過輸出OUT輸出空字符串 使能輸出ENO將設(shè)置為 0 值 如果結(jié)果字符串比在輸出OUT中指定的變量長 則結(jié)果字符串將被限制為有效長度 使能輸出ENO將設(shè)置為 0 值 可使用REPLACE將輸入IN1的字符串替換為輸入IN2的字符串 可通過參數(shù)P指定要替換的第一個字符的位置 通過參數(shù)L指定要替換的字符數(shù) 以STRING格式通過輸出OUT輸出結(jié)果 執(zhí)行該指令時應(yīng)遵守以下規(guī)則 如果參數(shù)L的值等于零 則輸出OUT將返回輸入IN1的字符串 如果P等于1 則將從輸入IN1字符串的第一個字符開始 包括該字符 對其進(jìn)行替換 如果參數(shù)P的值超出輸入IN1字符串的當(dāng)前長度 則輸入IN2的字符串將附加到輸入IN1的字符串的后面 如果參數(shù)P的值為負(fù)值或等于零 則將通過輸出OUT輸出空字符串 使能輸出ENO將設(shè)置為 0 值 如果結(jié)果字符串比在輸出OUT中指定的變量長 則結(jié)果字符串將被限制為有效長度 使能輸出ENO將設(shè)置為 0 值 可使用FIND來搜索輸入IN1的字符串以查找特定字符或特定字符串 在輸入IN2中指定要搜索的值 搜索從左向右進(jìn)行 將通過輸出OUT輸出第一個搜索結(jié)果的位置 如果搜索未返回任何匹配值 則將通過輸出OUT輸出 0 值 如果指令處理期間出錯 則將輸出空字符串 程序控制指令 通信指令 點對點指令 點對點指令 中斷指令 附加和分離指令 啟動和取消延時中斷指令 禁用和啟用報警中斷指令 PID控制指令 運動控制指令 脈沖指令 5 3全局庫指令 USS協(xié)議庫指令 Modbus協(xié)議庫指令- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 西門子 S7 1200 plc 指令系統(tǒng)
鏈接地址:http://www.szxfmmzy.com/p-8011211.html