西門子S7-1200plc05指令系統(tǒng).ppt
《西門子S7-1200plc05指令系統(tǒng).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《西門子S7-1200plc05指令系統(tǒng).ppt(154頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
指令系統(tǒng) S7 1200的指令從功能上大致可分為三類 基本指令 擴(kuò)展指令和全局庫指令 5 1基本指令 基本指令包括位邏輯指令 定時(shí)器 計(jì)數(shù)器 比較指令 數(shù)學(xué)指令 移動(dòng)指令 轉(zhuǎn)換指令 程序控制指令 邏輯運(yùn)算指令以及移位和循環(huán)移位指令等 基本邏輯指令 內(nèi)部輸入觸點(diǎn) I 的閉合與斷開僅與輸入映像寄存器相應(yīng)位的狀態(tài)有關(guān) 與外部輸入按鈕 接觸器 繼電器的常開 常閉接法無關(guān) 輸入映像寄存器相應(yīng)位為1 則內(nèi)部常開觸點(diǎn)閉合 常閉觸點(diǎn)斷開 輸入映像寄存器相應(yīng)位為0 則內(nèi)部常開觸點(diǎn)斷開 常閉觸點(diǎn)閉合 置位域復(fù)位域指令 置位域指令將指定的地址開始的連續(xù)若干個(gè)地址置位 變?yōu)?狀態(tài)并保持 復(fù)位域指令將指定的地址開始的連續(xù)若干個(gè)地址復(fù)位 變?yōu)?狀態(tài)并保持 置位 復(fù)位指令 1 S R指令中的2表示從指定的Q0 0開始的兩個(gè)觸點(diǎn) 即Q0 0與Q0 1 2 在檢測到I0 0閉合的上升沿時(shí) 輸出線圈Q0 0 Q0 1被置為1 并保持 而不論I0 0為何種狀態(tài) 3 在檢測到I0 1閉合的上升沿時(shí) 輸出線圈Q0 0 Q0 1被復(fù)位為0 并保持 而不論I0 0為何種狀態(tài) 指令說明 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)先鎖存器 輸出線圈可選 指令功能RS復(fù)位優(yōu)先鎖存器 當(dāng)置位信號(hào)和復(fù)位信號(hào)都有效時(shí) 復(fù)位信號(hào)優(yōu)先 輸出線圈不接通 SR置位優(yōu)先鎖存器 當(dāng)置位信號(hào)和復(fù)位信號(hào)都有效時(shí) 置位信號(hào)優(yōu)先 輸出線圈接通 RS SR指令均為鎖存器 一個(gè)復(fù)位優(yōu)先 一個(gè)置位優(yōu)先 S連接置位輸入 R連接復(fù)位輸入 一旦輸出線圈被置位 則保持置位狀態(tài)直到復(fù)位輸入接通 置位 復(fù)位輸入均以高電平狀態(tài)有效 例 搶答器的設(shè)計(jì)搶答器有三個(gè)輸入 分別為I0 0 I0 1和I0 2 輸出分別為Q4 0 Q4 1和Q4 2 復(fù)位輸入是I0 4 要求 三人中任意搶答 誰先按按鈕 誰的指示燈優(yōu)先亮 且只能亮一盞燈 進(jìn)行下一問題時(shí)主持人按復(fù)位按鈕 搶答重新開始 搶答器程序 邊沿指令 位邏輯指令 邊緣檢測觸點(diǎn)指令 如果輸入信號(hào)I0 6由0變?yōu)?狀態(tài) 即輸入信號(hào)I0 6的上升沿 則該觸點(diǎn)接通一個(gè)掃描周期 觸點(diǎn)下面的M4 3為邊緣存儲(chǔ)位 用來存儲(chǔ)上一個(gè)掃描循環(huán)是I0 6的狀態(tài) 通過比較輸入信號(hào)的當(dāng)前狀態(tài)和上一次循環(huán)的狀態(tài)來檢測信號(hào)的邊沿 邊沿存儲(chǔ)位的地址只能在程序中使用一次 它的狀態(tài)不能在其他地方被改寫 只能使用M 全局DB和靜態(tài)局部變量來作邊沿存儲(chǔ)位 不能使用臨時(shí)局部數(shù)據(jù)或I O變量來作邊沿存儲(chǔ)位 位邏輯指令 P TRIG與N TRIG指令 在流進(jìn)P TRIG指令的CLK輸入端的能流的上升沿 Q端輸出一個(gè)掃描周期的能流 使M8 1置位 P TRIG指令與N TRIG指令不能放在電路的開始處和結(jié)束處 位邏輯指令 3種邊沿檢測指令的功能 以上升沿檢測為例 在P觸點(diǎn)指令中 觸點(diǎn)上面的地址的上升沿 該觸點(diǎn)接通一個(gè)掃描周期 因此P觸點(diǎn)用于檢測觸點(diǎn)上面地址的上升沿 并且直接輸出上升沿脈沖 在P線圈的能流的上升沿 線圈上面的地址在一個(gè)掃描周期為1狀態(tài) 因此P線圈用于檢測能流的上升沿 并用線圈上面的地址來輸出上升沿脈沖 P TRIG指令用于檢測能流的上升沿 并且直接輸出上升沿脈沖 如果P TRIG指令左邊只有I1 0觸點(diǎn) 可以用I1 0的P觸點(diǎn)來代替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)消失 則指示燈熄滅 如果沒有消失 指示燈轉(zhuǎn)為常亮 直至故障消失 定時(shí)器 使用定時(shí)器指令可創(chuàng)建編程的時(shí)間延遲 S7 1200PLC有4種定時(shí)器 TP 脈沖定時(shí)器可生成具有預(yù)設(shè)寬度時(shí)間的脈沖 TON 接通延遲定時(shí)器輸出Q在預(yù)設(shè)的延時(shí)過后設(shè)置為ON TOF 關(guān)斷延遲定時(shí)器輸出Q在預(yù)設(shè)的延時(shí)過后重置為OFF TONR 保持型接通延遲定時(shí)器輸出在預(yù)設(shè)的延時(shí)過后設(shè)置為ON 在使用R輸入重置經(jīng)過的時(shí)間之前 會(huì)跨越多個(gè)定時(shí)時(shí)段一直累加經(jīng)過的時(shí)間 RT 通過清除存儲(chǔ)在指定定時(shí)器背景數(shù)據(jù)塊中的時(shí)間數(shù)據(jù)來重置定時(shí)器 每個(gè)定時(shí)器都使用一個(gè)存儲(chǔ)在數(shù)據(jù)塊中的結(jié)構(gòu)來保存定時(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)帶開始運(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í)開始后經(jīng)過的時(shí)間 或稱為已耗時(shí)間值 可以不為ET指定地址 它們的數(shù)值類型為32位的Time 單位為ms 最大定時(shí)時(shí)間為T 24D 20H 31M 23S 647MS IEC定時(shí)器和IEC計(jì)數(shù)器屬于功能塊 調(diào)用時(shí)需要指定配套的背景數(shù)據(jù)塊 定時(shí)器和計(jì)數(shù)器指令的數(shù)據(jù)保存在背景數(shù)據(jù)塊中 在梯形圖中輸入定時(shí)器指令時(shí) 打開右邊的指令窗口將 定時(shí)器操作 文件夾中的定時(shí)器指令拖放到梯形圖中適當(dāng)?shù)奈恢?在出現(xiàn)的 調(diào)用選項(xiàng) 對(duì)話框中修改將要生成的背景數(shù)據(jù)塊的名稱 或采用默認(rèn)的名稱 點(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è)按鈕開關(guān) 用于START的S1和用于STOP的S2 在傳送帶的尾部也有兩個(gè)按鈕開關(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的頻率閃爍 如果沒有任何風(fēng)機(jī)轉(zhuǎn)動(dòng) 則指示燈不亮 輸入位I0 0 I0 1 I0 2分別為風(fēng)機(jī)1 2 3輸入端 通過傳送帶電機(jī)KM1帶動(dòng)傳送帶傳送物品 通過產(chǎn)品檢測器PH檢測產(chǎn)品通過的數(shù)量 傳送帶每傳送24個(gè)產(chǎn)品機(jī)械手KM2動(dòng)作1次 進(jìn)行包裝 機(jī)械手動(dòng)作后 延時(shí)2秒 機(jī)械手的電磁鐵切斷 通過傳送帶起動(dòng)按鈕 傳送帶停機(jī)按鈕控制傳送帶的運(yùn)動(dòng) 計(jì)數(shù)器應(yīng)用舉例 產(chǎn)品數(shù)量檢測 每24個(gè)產(chǎn)品機(jī)械手動(dòng)作1次 機(jī)械手動(dòng)作后 延時(shí)2秒 機(jī)械手的電磁鐵切斷 測到一個(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)展廳滿50人時(shí) 紅燈亮 表示不準(zhǔn)進(jìn)入 展廳人數(shù)控制系統(tǒng)I O分配表 展廳人數(shù)控制程序 運(yùn)料車自動(dòng)裝 卸料控制控制要求 某運(yùn)料車如圖所示 可在A B兩地分別啟動(dòng) 運(yùn)料車啟動(dòng)后 自動(dòng)返回A地停止 同時(shí)控制料斗門的電磁閥Y1打開 開始裝料 1分鐘后 電磁閥Y1斷開 關(guān)閉料斗門 運(yùn)料車自動(dòng)向B地運(yùn)行 到達(dá)B地后停止 小車底門由電磁閥Y2控制打開 開始卸料 1分鐘后 運(yùn)料車底門關(guān)閉 開始返回A地 之后重復(fù)運(yùn)行 運(yùn)料車在運(yùn)行過程中 可用手動(dòng)開關(guān)使其停車 再次啟動(dòng)后 可重復(fù) 中內(nèi)容 圖7 43運(yùn)料車自動(dòng)裝 卸料控制示意圖 運(yùn)料車自動(dòng)裝 卸料控制I O分配表 比較指令 可以使用 等于 操作確定第一個(gè)比較值是否等于第二個(gè)比較值 要比較的兩個(gè)值必須為相同的數(shù)據(jù)類型 該LAD觸點(diǎn)比較結(jié)果為TRUE時(shí) 則該觸點(diǎn)會(huì)被激活 在程序編輯器中單擊該指令后 可以從下拉菜單中選擇比較類型和數(shù)據(jù)類型 可以使用 大于 操作確定第一個(gè)比較值是否大于第二個(gè)比較值 要比較的兩個(gè)值必須為相同的數(shù)據(jù)類型 如果比較為真 則RLO為 1 在比較字符串時(shí) 通過字符ASCII碼比較字符 例如 a 大于 A 從左到右執(zhí)行比較 第一個(gè)不同的字符決定比較結(jié)果 如果較長字符串的左側(cè)部分和較短字符串相同 則認(rèn)為較長字符串更大 使用IN RANGE和OUT RANGE指令可測試輸入值是在指定的值范圍之內(nèi)還是之外 如果比較結(jié)果為TRUE 則功能框輸出為TRUE 輸入?yún)?shù)MIN VAL和MAX的數(shù)據(jù)類型必須相同 在程序編輯器中單擊該指令后 可以從下拉菜單中選擇數(shù)據(jù)類型 例 用比較和計(jì)數(shù)指令編寫開關(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長亮提示 使用OK和NOT OK指令可測試輸入的數(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í)行過程中未發(fā)生錯(cuò)誤 則輸出ENO的信號(hào)狀態(tài)為 1 如果滿足下列條件之一 使能輸出ENO將返回信號(hào)狀態(tài) 0 輸入EN的信號(hào)狀態(tài)為 0 復(fù)制的數(shù)據(jù)量超出輸出OUT存儲(chǔ)區(qū)所提供的數(shù)據(jù)量 可以通過 填充塊 操作使用輸入IN的值填充存儲(chǔ)區(qū) 目標(biāo)區(qū)域 從輸出OUT指定的地址開始填充目標(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í)行過程中未發(fā)生錯(cuò)誤 則輸出ENO的信號(hào)狀態(tài)為 1 如果滿足下列條件之一 使能輸出ENO將返回信號(hào)狀態(tài) 0 輸入EN的信號(hào)狀態(tài)為 0 復(fù)制的數(shù)據(jù)量超出輸出OUT存儲(chǔ)區(qū)所提供的數(shù)據(jù)量 數(shù)據(jù)復(fù)制操作規(guī)則 要復(fù)制Bool數(shù)據(jù)類型 請(qǐng)使用SET BF RESET BF R S或輸出線圈 LAD 要復(fù)制單個(gè)基本數(shù)據(jù)類型 結(jié)構(gòu)或要復(fù)制字符串中的單個(gè)字符 請(qǐng)使用MOVE 要復(fù)制基本數(shù)據(jù)類型數(shù)組 請(qǐng)使用MOVE BLK或UMOVE BLK要復(fù)制字符串 請(qǐng)使用S CONVMOVE BLK和UMOVE BLK指令不能用于將數(shù)組或結(jié)構(gòu)復(fù)制到I Q或M存儲(chǔ)區(qū) 數(shù)據(jù)填充操作規(guī)則 要使用BOOL數(shù)據(jù)類型填充 請(qǐng)使用SET BF RESET BF R S或輸出線圈 LAD 要使用單個(gè)基本數(shù)據(jù)類型填充或要在字符串中填充單個(gè)字符 請(qǐng)使用MOVE 要使用基本數(shù)據(jù)類型填充數(shù)組 請(qǐng)使用FILL BLK或UFILL BLK FILL BLK和UFILL BLK指令不能用于將數(shù)組填充到I Q或M存儲(chǔ)區(qū) 轉(zhuǎn)換指令 轉(zhuǎn)換 操作讀取參數(shù)IN的數(shù)據(jù) 然后根據(jù)指定的數(shù)據(jù)類型對(duì)其進(jìn)行轉(zhuǎn)換 僅當(dāng)使能輸入EN的信號(hào)狀態(tài)為 1 時(shí) 才能啟動(dòng) 轉(zhuǎn)換 操作 如果執(zhí)行過程中未發(fā)生錯(cuò)誤 則輸出ENO的信號(hào)狀態(tài)也為 1 如果滿足下列條件之一 使能輸出ENO將返回信號(hào)狀態(tài) 0 輸入EN的信號(hào)狀態(tài)為 0 處理過程中發(fā)生溢出之類的錯(cuò)誤 可以使用 取整數(shù)字值 運(yùn)算將輸入IN的值取整為最接近的整數(shù) 該運(yùn)算將輸入IN的值解釋為浮點(diǎn)數(shù)并將其轉(zhuǎn)換為最接近的雙精度整數(shù) 如果輸入值恰好是相鄰偶數(shù)和奇數(shù)的平均數(shù) 則選擇偶數(shù) 運(yùn)算結(jié)果放在輸出OUT中 可供查詢 只有使能輸入EN的信號(hào)狀態(tài)為 1 時(shí) 才執(zhí)行該操作 如果運(yùn)算執(zhí)行過程中未發(fā)生錯(cuò)誤 則輸出ENO的信號(hào)狀態(tài)為 1 如果滿足下列條件之一 使能輸出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中 可供查詢 輸出值可以大于或等于輸入值 只有使能輸入EN的信號(hào)狀態(tài)為 1 時(shí) 才執(zhí)行該操作 如果運(yùn)算執(zhí)行過程中未發(fā)生錯(cuò)誤 則輸出ENO的信號(hào)狀態(tài)為 1 如果滿足下列條件之一 使能輸出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中 可供查詢 輸出值可以小于或等于輸入值 只有使能輸入EN的信號(hào)狀態(tài)為 1 時(shí) 才執(zhí)行該操作 如果運(yùn)算執(zhí)行過程中未發(fā)生錯(cuò)誤 則輸出ENO的信號(hào)狀態(tài)為 1 如果滿足下列條件之一 使能輸出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í)行過程中未發(fā)生錯(cuò)誤 則輸出ENO的信號(hào)狀態(tài)為 1 如果滿足下列條件之一 使能輸出ENO將返回信號(hào)狀態(tài) 0 輸入EN的信號(hào)狀態(tài)為 0 可以使用 標(biāo)定 運(yùn)算通過將輸入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)算通過將輸入VALUE的變量值映射到線性標(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)簽的名稱以便執(zhí)行該操作 指定的跳轉(zhuǎn)標(biāo)簽位于該操作的上方 指定的跳轉(zhuǎn)標(biāo)簽必須在執(zhí)行該操作的塊中 指定的名稱在塊中只能出現(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)簽的名稱可以包含字母 數(shù)字或下劃線 跳轉(zhuǎn)標(biāo)簽以及指定了該跳轉(zhuǎn)標(biāo)簽的操作必須位于同一個(gè)塊中 跳轉(zhuǎn)標(biāo)簽的名稱在塊中只能分配一次 可以使用 為0時(shí)塊中跳轉(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)一次 如果該操作的輸入端的邏輯運(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í)行該操作 如果滿足該條件 將在當(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í)行 圖無條件跳轉(zhuǎn) 圖條件跳轉(zhuǎn) 字邏輯運(yùn)算指令 可以使用 AND邏輯運(yùn)算 將輸入IN1的值與輸入IN2的值通過AND邏輯逐位運(yùn)算 并通過輸出OUT查詢結(jié)果 執(zhí)行該運(yùn)算時(shí) 輸入IN1的值的位0與輸入IN2的值的位0通過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è)位 該位通過輸入值指定 解碼 運(yùn)算讀取輸入IN的值 然后在輸出值中置位一個(gè)位 該位位置與讀取的值一致 輸出值中的其它位以零填充 只有使能輸入EN的信號(hào)狀態(tài)為 1 時(shí) 才能啟動(dòng) 解碼 運(yùn)算 如果執(zhí)行過程中未發(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)寫入輸出OUT的變量中 只有使能輸入EN的信號(hào)狀態(tài)為 1 時(shí) 才能啟動(dòng) 編碼 運(yùn)算 如果執(zhí)行過程中未發(fā)生錯(cuò)誤 則輸出ENO的信號(hào)狀態(tài)也為 1 如果使能輸入EN的信號(hào)狀態(tài)為 0 則使能輸出ENO的信號(hào)狀態(tài)復(fù)位為 0 選擇 操作依靠一個(gè)開關(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í)行過程中未發(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起開始編號(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ù)類型時(shí) 才能執(zhí)行 多路復(fù)用 操作 參數(shù)K例外 因?yàn)橹荒転槠渲付ㄕ麛?shù) 只有使能輸入EN的信號(hào)狀態(tài)為 1 時(shí) 才執(zhí)行該操作 如果執(zhí)行過程中未發(fā)生錯(cuò)誤 則輸出ENO的信號(hào)狀態(tài)也為 1 移位和循環(huán)指令 可以使用 右移 操作將輸入IN的變量數(shù)據(jù)逐位右移 并通過輸出OUT查詢結(jié)果 使用參數(shù)N設(shè)置指定將移位的位數(shù) 參數(shù)N的值為 0 時(shí) 輸入IN的值將被復(fù)制到輸出OUT的變量中 當(dāng)參數(shù)N的值大于位數(shù)時(shí) 輸入IN的變量值將按其可用位數(shù)向右移位 無符號(hào)值移位時(shí) 用零填充變量左側(cè)區(qū)域中空出的位 如果指定值有符號(hào) 則用符號(hào)位的信號(hào)狀態(tài)填充空出的位 可以使用 左移 操作將輸入IN中的變量數(shù)據(jù)逐位左移 并通過輸出OUT查詢結(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)右移 并通過輸出OUT查詢結(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)左移 并通過輸出OUT查詢結(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)指令實(shí)現(xiàn)彩燈控制 編寫程序如圖5 30所示 其中I0 0為控制開關(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)換通過選擇指令輸入和輸出的數(shù)據(jù)類型來決定轉(zhuǎn)換的類型 可通過輸出OUT查詢轉(zhuǎn)換結(jié)果 使用T ADD可將輸入IN1的時(shí)間與輸入IN2的時(shí)間相加 通過輸出OUT查詢結(jié)果 可以對(duì)下列格式進(jìn)行相加操作 時(shí)間段 TIME 與時(shí)間段 TIME 相加 結(jié)果可以輸出到TIME格式的變量中 時(shí)間段 TIME 與時(shí)間點(diǎn) DTL 相加 結(jié)果可以輸出到DTL格式的變量中 通過選擇指令輸入和輸出的數(shù)據(jù)類型來決定輸入IN1和輸出OUT的格式 在輸入IN2中 只能指定TIME格式的時(shí)間 使用T SUB可將輸入IN1的時(shí)間與輸入IN2的時(shí)間相減 通過輸出OUT查詢差值 可以對(duì)下列格式進(jìn)行相減操作 時(shí)間段 TIME 與時(shí)間段 TIME 相減 結(jié)果可以輸出到TIME格式的變量中 從某時(shí)間點(diǎn) DTL 減去一個(gè)時(shí)間段 TIME 結(jié)果可以輸出到DTL格式的變量中 通過選擇指令輸入和輸出的數(shù)據(jù)類型來決定輸入IN1和輸出OUT的格式 在輸入IN2中 只能指定TIME格式的時(shí)間 使用T DIFF可將輸入IN1的時(shí)間與輸入IN2的時(shí)間相減 以TIME格式通過輸出OUT輸出結(jié)果 在輸入IN1和IN2中只能指定DTL格式的值 如果在輸入IN2中指定的時(shí)間大于在輸入IN1中指定的時(shí)間 則結(jié)果將以負(fù)值的形式通過輸出OUT輸出 如果該指令的結(jié)果超出允許范圍 則此結(jié)果將限制為相應(yīng)的值 并且使能輸出ENO將設(shè)置為 0 可使用WR SYS T設(shè)置CPU時(shí)鐘的日期和時(shí)間 在指令的輸入IN指定DTL格式的日期和時(shí)間 在輸出RET VAL中 可以查詢指令執(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中 可以查詢指令執(zhí)行期間是否出錯(cuò) 可使用RD LOC T從CPU時(shí)鐘讀取當(dāng)前本地時(shí)間 并在輸出OUT以DTL格式輸出該值 在CPU時(shí)鐘的組態(tài)中設(shè)置的時(shí)區(qū)和夏令時(shí)開始時(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ù)表示將被忽略 無效字符可能會(huì)中斷字符轉(zhuǎn)換 此時(shí) 使能輸出ENO將設(shè)置為 0 可通過選擇輸出OUT的數(shù)據(jù)類型來決定轉(zhuǎn)換的輸出格式 數(shù)字值轉(zhuǎn)換為字符串 STRING 通過選擇輸入IN的數(shù)據(jù)類型來決定要轉(zhuǎn)換的數(shù)字值格式 必須在輸出OUT中指定一個(gè)有效的STRING數(shù)據(jù)類型的變量 轉(zhuǎn)換后的字符串長度取決于輸入IN的值 由于第一個(gè)字節(jié)包含字符串的最大長度 第二個(gè)字節(jié)包含字符串的實(shí)際長度 因此轉(zhuǎn)換的結(jié)果從字符串的第三個(gè)字節(jié)開始存儲(chǔ) 輸出正數(shù)字值時(shí)不帶符號(hào) 復(fù)制字符串 如果在指令的輸入和輸出均輸入STRING數(shù)據(jù)類型 則輸入IN的字符串將被復(fù)制到輸出OUT 如果輸入IN字符串的實(shí)際長度超出輸出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 則將從指定字符串的第一個(gè)字符開始轉(zhuǎn)換 轉(zhuǎn)換允許的字符為數(shù)字0到9 小數(shù)點(diǎn) 逗號(hào)小數(shù)點(diǎn) 符號(hào) E 和 e 以及加號(hào)和減號(hào)字符 無效字符可能會(huì)中斷轉(zhuǎn)換 此時(shí) 使能輸出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可指定從字符串中的哪個(gè)字符開始寫入結(jié)果 例如 如果參數(shù)P中指定的值為 2 則將從字符串的第二個(gè)字符開始保存轉(zhuǎn)換值 通過參數(shù)SIZE可以指定字符串中寫入的字符數(shù) 這要從參數(shù)P中指定的字符開始算起 如果由參數(shù)P和SIZE定義的長度不夠 則使能輸出ENO將設(shè)置為 0 如果輸出值比指定長度短 則結(jié)果將以右對(duì)齊方式寫入字符串 空字符位置將填入空格 轉(zhuǎn)換允許的字符為數(shù)字0到9 小數(shù)點(diǎn) 逗號(hào)小數(shù)點(diǎn) 符號(hào) E 和 e 以及加號(hào)和減號(hào)字符 無效字符可能會(huì)中斷轉(zhuǎn)換 此時(shí) 使能輸出ENO將設(shè)置為 0 使用參數(shù)FORMAT可指定在轉(zhuǎn)換期間如何解釋數(shù)字值以及如何將其寫入字符串 只能為參數(shù)FORMAT指定USINT數(shù)據(jù)類型的變量 字符串操作指令 STRING類型的變量包含兩個(gè)長度 最大長度和當(dāng)前長度 即當(dāng)前有效字符的數(shù)量 每個(gè)變量的字符串最大長度在STRING關(guān)鍵字的方括號(hào)中指定 當(dāng)前長度表示實(shí)際使用的字符位置數(shù) 當(dāng)前長度必須小于或等于最大長度 字符串占用的字節(jié)數(shù)為最大長度加2 可使用 LEN 指令查詢在輸入IN中指定的字符串的當(dāng)前長度 并在輸出OUT以數(shù)字值的形式將其輸出 空字符串 的長度為零 如果操作處理期間出錯(cuò) 則將輸出空字符串 CONCAT連接字符串參數(shù)IN1和IN2以形成一個(gè)字符串 并放在OUT中 目標(biāo)字符串必須足夠長 否則結(jié)果字符串將被截短并且使能輸出ENO將設(shè)置為 0 值 如果指令處理期間出錯(cuò)并且可以寫入到輸出OUT 則將輸出空字符串 可使用LEFT從輸入IN字符串的第一個(gè)字符開始提取出一部分字符串 通過參數(shù)L指定要提取的字符數(shù) 以STRING格式通過輸出OUT輸出提取的字符 如果要提取的字符數(shù)大于字符串的當(dāng)前長度 則輸出OUT將返回輸入字符串 參數(shù)L的值為 0 時(shí)或者輸入值為空字符串時(shí)都將返回空字符串 如果參數(shù)L的值為負(fù)值 則將輸出空字符串并且使能輸出ENO將設(shè)置為 0 值 可使用MID將輸入IN字符串的一部分提取出來 可通過參數(shù)P指定要提取的第一個(gè)字符的位置 通過參數(shù)L指定要提取的字符串長度 提取的部分字符串通過輸出OUT輸出 執(zhí)行該指令時(shí)應(yīng)遵守以下規(guī)則 如果要提取的字符數(shù)超出輸入IN字符串的當(dāng)前長度 則將輸出從字符位置P開始到該字符串末尾的這一部分字符串 如果通過參數(shù)P指定的字符位置超出輸入IN字符串的當(dāng)前長度 則將通過輸出OUT輸出空字符串并且使能輸出ENO將設(shè)置為 0 值 如果參數(shù)L或P的值等于零或?yàn)樨?fù)值 則將通過輸出OUT輸出空字符串并且使能輸出ENO將設(shè)置為 0 值 可使用DELETE將輸入IN字符串的一部分刪除 可通過參數(shù)P指定要?jiǎng)h除的第一個(gè)字符的位置 可使用參數(shù)L指定要?jiǎng)h除的字符數(shù) 剩余部分的字符串通過輸出OUT以STRING格式輸出 執(zhí)行該指令時(shí)應(yīng)遵守以下規(guī)則 如果參數(shù)L或P的值等于零 則輸出OUT將返回輸入字符串 如果參數(shù)P的值大于輸入IN字符串的當(dāng)前長度 則輸出OUT將返回輸入字符串 如果要?jiǎng)h除的字符數(shù)大于輸入IN字符串的長度 則將輸出空字符串 如果參數(shù)L或P的值為負(fù)值 則將輸出空字符串并且使能輸出ENO將設(shè)置為 0 值 從字符串1的某個(gè)字符位置開始插入字符串2 并將結(jié)果存儲(chǔ)在目標(biāo)字符串中 可使用參數(shù)P指定要插入字符的字符位置 以STRING格式通過輸出OUT輸出結(jié)果 執(zhí)行該指令時(shí)應(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指定要替換的第一個(gè)字符的位置 通過參數(shù)L指定要替換的字符數(shù) 以STRING格式通過輸出OUT輸出結(jié)果 執(zhí)行該指令時(shí)應(yīng)遵守以下規(guī)則 如果參數(shù)L的值等于零 則輸出OUT將返回輸入IN1的字符串 如果P等于1 則將從輸入IN1字符串的第一個(gè)字符開始 包括該字符 對(duì)其進(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輸出第一個(gè)搜索結(jié)果的位置 如果搜索未返回任何匹配值 則將通過輸出OUT輸出 0 值 如果指令處理期間出錯(cuò) 則將輸出空字符串 某十字路口 東西方向車流量較小 南北方向車流量較大 東西方向上綠燈亮30秒 南北方向上綠燈亮40秒 綠燈向紅燈轉(zhuǎn)換中間黃燈亮5秒且閃爍 紅燈在最后5秒閃爍 十字路口紅綠燈示意圖如圖所示 試?yán)肞LC進(jìn)行控制 并編寫梯形圖程序 執(zhí)行機(jī)構(gòu)與動(dòng)作過程 雖然十字路口有12只紅綠燈 但同一個(gè)方向上的同色燈 如燈1與燈7 同時(shí)動(dòng)作 應(yīng)作為一個(gè)輸出 所以共有6個(gè)輸出 由于一個(gè)方向上亮綠燈或黃燈時(shí) 另一個(gè)方向上肯定亮紅燈 所以亮紅燈可不作為一個(gè)單獨(dú)的時(shí)間狀態(tài) 十字路口紅綠燈工作為循環(huán)方式 循環(huán)周期為80秒 由4部分組成 40秒 5秒 30秒 5秒 程序控制指令 TSEND C是異步指令且具有以下功能 設(shè)置并建立通信連接 TSEND C可設(shè)置并建立TCP或ISO on TCP通信連接 設(shè)置并建立連接后 CPU會(huì)自動(dòng)保持和監(jiān)視該連接 在參數(shù)CONNECT中指定的連接描述用于設(shè)置通信連接 要建立連接 參數(shù)CONT的值必須設(shè)置為 1 連接成功建立后 參數(shù)DONE在一個(gè)周期內(nèi)設(shè)置為 1 若CPU轉(zhuǎn)到STOP模式 將終止現(xiàn)有連接并刪除所設(shè)置的相應(yīng)連接 必須再次執(zhí)行TSEND C 才能重新設(shè)置并建立該連接 通過現(xiàn)有通信連接發(fā)送數(shù)據(jù) 通過參數(shù)DATA可指定要發(fā)送的區(qū)域 這包括要發(fā)送數(shù)據(jù)的地址和長度 在參數(shù)REQ中檢測到上升沿時(shí)執(zhí)行發(fā)送作業(yè) 使用參數(shù)LEN指定通過一個(gè)發(fā)送作業(yè)可發(fā)送的最大字節(jié)數(shù) 在發(fā)送作業(yè)完成前不允許編輯要發(fā)送的數(shù)據(jù) 如果發(fā)送作業(yè)成功執(zhí)行 則參數(shù)DONE將設(shè)置為 1 參數(shù)DONE的信號(hào)狀態(tài)為 1 并不表示是確認(rèn)通信伙伴已讀取發(fā)送數(shù)據(jù) 終止通信連接 參數(shù)CONT設(shè)置為 0 時(shí) 將終止通信連接 通信指令 設(shè)置并建立通信連接 TRCV C可設(shè)置并建立TCP或ISO on TCP通信連接 設(shè)置并建立連接后 CPU會(huì)自動(dòng)保持和監(jiān)視該連接 使用參數(shù)CONNECT指定的連接描述 可以設(shè)置通信連接 要建立連接 參數(shù)CONT的值必須設(shè)置為 1 連接成功建立后 參數(shù)DONE在一個(gè)周期內(nèi)設(shè)置為 1 若CPU轉(zhuǎn)到STOP模式 將終止現(xiàn)有連接并刪除所設(shè)置的相應(yīng)連接 必須再次執(zhí)行TRCV C 才能重新設(shè)置并建立該連接 通過現(xiàn)有通信連接接收數(shù)據(jù) 如果參數(shù)EN R的值設(shè)置為 1 則啟用數(shù)據(jù)接收 接收到的數(shù)據(jù)將輸入到接收區(qū)中 根據(jù)所用的協(xié)議選項(xiàng) 通過參數(shù)LEN指定接收區(qū)長度 如果LEN0 或者通過參數(shù)DATA的長度信息來指定 如果LEN 0 成功接收數(shù)據(jù)后 參數(shù)DONE的信號(hào)狀態(tài)為 1 如果數(shù)據(jù)傳送過程中出錯(cuò) 參數(shù)DONE將設(shè)置為 0 終止通信連接 參數(shù)CONT設(shè)置為 0 時(shí) 將終止通信連接 點(diǎn)對(duì)點(diǎn)指令 點(diǎn)對(duì)點(diǎn)指令 啟動(dòng)和取消延時(shí)中斷指令 禁用和啟用報(bào)警中斷指令 PID控制指令 運(yùn)動(dòng)控制指令 脈沖指令 5 3全局庫指令 USS協(xié)議庫指令 Modbus協(xié)議庫指令- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 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文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 西門子 S7 1200 plc05 指令系統(tǒng)
鏈接地址:http://m.kudomayuko.com/p-8024390.html