詳細說明
西門子 S7-1200 CPU 1212C AC/DC/繼電器 6ES7212-1BE40-0XB0
訂貨號:6ES7212-1BE40-0XB0
SIPLUS S7-1200 CPU 1212C 交流/直流/繼電器 基于 6ES7212-1BE40-0XB0帶防腐蝕涂層, -40- +70°C, -25°C 條件下開機, 信號電路板:0, 緊湊型 CPU,AC/DC/繼電器, 機載 I/O: 8 DI 24V DC;6 數字輸出繼電器 2A 2 AI 0-10V DC, 電源: 85-264V AC 47-63Hz 時, 程序存儲器/數據存儲器 75 KB
S7-1200 CPU中有多種沿檢測指令,這些指令可以用于變量或者邏輯運算結果(RLO)的上升沿、下降沿檢測,指令位置如圖1所示,指令說明如表1所示。
圖1、沿指令位置
LAD | SCL | 說明 |
---|---|---|
- | 掃描操作數的信號上升沿。 在觸點分配的 "IN" 位上檢測到正跳變(0->1)時,該觸點的狀態為 TRUE。該觸點邏輯狀態隨后與能流輸入狀態組合以設置能流輸出狀態。P 觸點可以放置在程序段中除分支結尾外的任何位置。 指令說明鏈接 | |
- | 掃描操作數的信號下降沿。 在觸點分配的 "IN" 位上檢測到負跳變(1->0)時,該觸點的狀態為 TRUE。該觸點邏輯狀態隨后與能流輸入狀態組合以設置能流輸出狀態。N 觸點可以放置在程序段中除分支結尾外的任何位置。 指令說明鏈接 | |
- | 在信號上升沿置位操作數。 在進入線圈的能流中檢測到正跳變(0->1)時,分配的位 "OUT" 為 TRUE。能流輸入狀態總是通過線圈后變為能流輸出狀態。P 線圈可以放置在程序段中的任何位置。 指令說明鏈接 | |
- | 在信號下降沿置位操作數。 在進入線圈的能流中檢測到負跳變(1->0)時,分配的位 "OUT" 為 TRUE。能流輸入狀態總是通過線圈后變為能流輸出狀態。N 線圈可以放置在程序段中的任何位置。 指令說明鏈接 | |
- | 掃描 RLO(邏輯運算結果)的信號上升沿。 在 "CLK" 能流輸入中檢測到正跳變(0->1)時,Q 輸出能流或者邏輯狀態為 TRUE。 P_TRIG 指令不能放置在程序段的開頭或結尾。 指令說明鏈接 | |
- | 掃描 RLO(邏輯運算結果)的的信號下降沿。 在 "CLK" 能流輸入中檢測到負跳變(1->0)時,Q 輸出能流或者邏輯狀態為 TRUE。 N_TRIG 指令不能放置在程序段的開頭或結尾。 指令說明鏈接 | |
在信號上升沿置位變量。 分配的背景數據塊用于存儲 CLK 輸入的前一狀態。在 CLK 能流輸入 (LAD) 中檢測到正跳變(0->1)時,Q 輸出能流或者邏輯狀態為 TRUE。在 LAD 中,R_TRIG 指令不能放置在程序段的開頭或結尾。 指令說明鏈接 | ||
在信號下降沿置位變量。 分配的背景數據塊用于存儲 CLK 輸入的前一狀態。在 CLK 能流輸入 (LAD) 中檢測到負跳變(1->0)時,Q 輸出能流或者邏輯狀態為 TRUE。 在 LAD 中,F_TRIG 指令不能放置在程序段的開頭或結尾。 指令說明鏈接 |
表1、沿指令說明
沿指令使用
—|P|—:掃描操作數的信號上升沿
使用該指令,可以確定
如果
指令參數如表2所示,指令的使用示例如圖2-4所示。
參數 | 聲明 | 數據類型 | 存儲區 | 說明 |
---|---|---|---|---|
Input | Bool | I、Q、M、D、L或常量 | 要掃描的信號 | |
InOut | Bool | I、Q、M、D、L | 保存上一次查詢的信號狀態的邊沿存儲位 |
表2、掃描操作數的信號上升沿指令參數
圖2、掃描操作數的信號上升沿示例
圖3、掃描操作數的信號上升沿示例
圖4、掃描操作數的信號上升沿示例 Trace 軌跡
在上述示例中,TagIn3為
—|N|—:掃描操作數的信號下降沿
使用該指令,可以確定
如果
指令參數如表3所示,指令的使用示例如圖5-7所示。
參數 | 聲明 | 數據類型 | 存儲區 | 說明 |
---|---|---|---|---|
Input | Bool | I、Q、M、D、L或常量 | 要掃描的信號 | |
InOut | Bool | I、Q、M、D、L | 保存上一次查詢的信號狀態的邊沿存儲位 |
表3、掃描操作數的信號下降沿指令參數
圖5、掃描操作數的信號下降沿示例
圖6、掃描操作數的信號下降沿示例
圖7、掃描操作數的信號下降沿示例 Trace g軌跡
在上述示例中,TagIn3為
—(P)—:在信號上升沿置位操作數
可以使用該指令在邏輯運算結果 (RLO) 從"0"變為"1"時置位
如果上一次掃描的 RLO (
指令參數如表4所示,指令的使用示例如圖8-10所示。
參數 | 聲明 | 數據類型 | 存儲區 | 說明 |
---|---|---|---|---|
Output | Bool | I、Q、M、D、L | 上升沿置位的操作數 | |
InOut | Bool | I、Q、M、D、L | 保存上一次查詢的信號狀態的邊沿存儲位 |
表4、在信號上升沿置位操作數指令參數
圖8、在信號上升沿置為操作數示例
圖9、在信號上升沿置為操作數示例
圖10、在信號上升沿置為操作數示例 Trace 軌跡
在上述示例中,“TagOut”為
—(N)—:在信號下降沿置位操作數
可以使用該指令在邏輯運算結果 (RLO) 從"1"變為"0"時置位
如果上一次掃描的 RLO (
指令參數如表5所示,指令的使用示例如圖11-13所示。
參數 | 聲明 | 數據類型 | 存儲區 | 說明 |
---|---|---|---|---|
Output | Bool | I、Q、M、D、L | 下降沿置位的操作數 | |
InOut | Bool | I、Q、M、D、L | 保存上一次查詢的信號狀態的邊沿存儲位 |
表5、在信號下降沿置位操作數指令參數
圖11、在信號下降沿置為操作數示例
圖12、在信號下降沿置為操作數示例
圖13、在信號下降沿置為操作數示例 Trace 軌跡
在上述示例中,“TagOut”為
P_TRIG: 掃描 RLO 的信號上升沿
可以使用該指令在 CLK 從"0"變為"1"時置位輸出 Q。該指令將比較 CLK 的當前信號狀態與 CLK 上一次掃描的信號狀態, CLK 上一次掃描的信號狀態保存在邊沿存儲器位
如果上一次掃描的 CLK (
指令參數如表6所示,指令的使用示例如圖14-16所示。
參數 | 聲明 | 數據類型 | 存儲區 | 說明 |
---|---|---|---|---|
CLK | Input | Bool | I、Q、M、D、L或常量 | 當前邏輯運算結果 (RLO) |
InOut | Bool | I、Q、M、D、L | 保存上一次查詢的信號狀態的邊沿存儲位 | |
Q | Output | Bool | I、Q、M、D、L | 邊沿檢測的結果 |
表6、掃描 RLO 的信號上升沿指令參數
圖14、掃描 RLO 的信號上升沿示例
圖15、掃描 RLO 的信號上升沿示例
圖16、掃描 RLO 的信號上升沿示例 Trace 軌跡
在上述示例中,當操作數“TagIn1”、“TagIn2”、“TagIn3”的邏輯運算結果 (RLO) 即 CLK 輸入從“0”變為“1”時,該指令輸出 Q 將立即返回狀態“1”一個程序周期,此時將操作數“TagOut”置位為一個程序周期,通過“TagOut”將“TagIn4”置位為“1”。
N_TRIG: 掃描 RLO 的信號下降沿
可以使用該指令在 CLK 從"1"變為"0"時置位輸出 Q。該指令將比較 CLK 的當前信號狀態與 CLK 上一次掃描的信號狀態, CLK 上一次掃描的信號狀態保存在邊沿存儲器位
如果上一次掃描的 CLK (
指令參數如表7所示,指令的使用示例如圖17-19所示。
參數 | 聲明 | 數據類型 | 存儲區 | 說明 |
---|---|---|---|---|
CLK | Input | Bool | I、Q、M、D、L或常量 | 當前邏輯運算結果 (RLO) |
InOut | Bool | I、Q、M、D、L | 保存上一次查詢的信號狀態的邊沿存儲位 | |
Q | Output | Bool | I、Q、M、D、L | 邊沿檢測的結果 |
表7、掃描 RLO 的信號下降沿指令參數
圖17、掃描 RLO 的信號下降沿示例
圖18、掃描 RLO 的信號下降沿示例
圖19、掃描 RLO 的信號下降沿示例 Trace 軌跡
在上述示例中,當操作數“TagIn1”、“TagIn2”、“TagIn3”的邏輯運算結果 (RLO) 即 CLK 輸入從“1”變為“0”時,該指令輸出 Q 將立即返回狀態“1”一個程序周期,此時將操作數“TagOut”置位為一個程序周期,通過“TagOut”將“TagIn4”置位為“1”。
R_TRIG: 檢查信號上升沿
可以使用該指令在 CLK 從"0"變為"1"時置位輸出 Q。該指令將比較 CLK 的當前信號狀態與 CLK 上一次掃描的信號狀態, CLK 上一次掃描的信號狀態保存在背景數據塊中。
如果上一次掃描的 CLK (保存在背景數據塊)為“0”,當前 CLK 信號狀態為“1”,則說明出現了一個信號上升沿。檢測到信號上升沿時,輸出 Q 信號狀態將在一個程序周期內保持置位為“1”。在其它任何情況下,輸出 Q 的信號狀態均為“0”。
指令參數如表8所示,指令的使用示例如圖20-22所示。
參數 | 聲明 | 數據類型 | 存儲區 | 說明 |
---|---|---|---|---|
EN | Input | Bool | I、Q、M、D、L或常量 | 使能輸入 |
ENO | Output | Bool | I、Q、M、D、L | 使能輸出 |
CLK | Input | Bool | I、Q、M、D、L或常量 | 當前邏輯運算結果 (RLO) |
Q | Output | Bool | I、Q、M、D、L | 邊沿檢測的結果 |
表8、檢查信號上升沿指令參數
圖20、檢測信號上升沿示例
圖21、檢測信號上升沿示例
圖22、檢測信號上升沿示例 Trace 軌跡
在上述示例中,當操作數“TagIn2”由“0”變為“1”時,當操作數“TagIn1”、“TagIn2”、“TagIn3”的邏輯運算結果 (RLO) 即 CLK 輸入從“0”變為“1”時,該指令輸出 Q 中生成一個信號上升沿,輸出的值將在一個循環周期內為“1“,從圖16-3中可以看到此時操作數“TagOut”被置位一個循環周期,通過“TagOut”將“TagIn4”置位為“1”。
F_TRIG: 檢查信號下降沿
可以使用該指令在 CLK 從"1"變為"0"時置位輸出 Q。該指令將比較 CLK 的當前信號狀態與 CLK 上一次掃描的信號狀態, CLK 上一次掃描的信號狀態保存在背景數據塊中。
如果上一次掃描的 CLK (保存在背景數據塊)為“1”,當前 CLK 信號狀態為“0”,則說明出現了一個信號下降沿。檢測到信號下降沿時,輸出 Q 信號狀態將在一個程序周期內保持置位為“1”。在其它任何情況下,輸出 Q 的信號狀態均為“0”。
指令參數如表9所示,指令的使用示例如圖23-25所示。
參數 | 聲明 | 數據類型 | 存儲區 | 說明 |
---|---|---|---|---|
EN | Input | Bool | I、Q、M、D、L或常量 | 使能輸入 |
ENO | Output | Bool | I、Q、M、D、L | 使能輸出 |
CLK | Input | Bool | I、Q、M、D、L或常量 | 當前邏輯運算結果 (RLO) |
Q | Output | Bool | I、Q、M、D、L | 邊沿檢測的結果 |
表9、檢查信號下降沿指令參數
圖23、檢測信號下降沿示例
圖24、檢測信號下降沿示例
圖25、檢測信號下降沿示例 Trace 軌跡
在上述示例中,當操作數“TagIn2”由“1”變為“0”時,操作數“TagIn1”、“TagIn2”、“TagIn3”的邏輯運算結果 (RLO) 即 CLK 輸入 從“1”變為“0”,該指令輸出 Q 中生成一個信號下降沿,輸出的值在一個循環周期內為“1”,從圖18-3中可以看到此時操作數“TagOut”被置位一個循環周期,通過“TagOut”將“TagIn4”置位為“1”。