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