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