1.

:
ADD1(IN1:=INS1,IN2:=INS2,ADDOUT=>OUT,SUBDOUT=>); 中的 => 代表什么含義
編程?
=>
在您提供的代碼片段中,`=>` 符號(hào)用于指定函數(shù)調(diào)用中的輸出參數(shù)。這在某些編程語(yǔ)言中,特別是工業(yè)控制編程語(yǔ)言如Structured Text (ST) 中,用來(lái)明確指出哪些參數(shù)是輸出參數(shù)。
讓我們?cè)敿?xì)解析一下這個(gè)函數(shù)調(diào)用:
```pascal
ADD1(IN1:=INS1, IN2:=INS2, ADDOUT=>OUT, SUBDOUT=>);
```
- `ADD1` 是函數(shù)的名稱。
- `IN1` 和 `IN2` 是輸入?yún)?shù),分別被賦值為 `INS1` 和 `INS2`。
- `ADDOUT` 和 `SUBDOUT` 是輸出參數(shù),其中 `ADDOUT` 的結(jié)果將被賦值給變量 `OUT`。
- `SUBDOUT` 后面沒有指定變量,表示這個(gè)輸出參數(shù)被忽略或不使用。
具體來(lái)說(shuō):
- `IN1:=INS1` 表示將 `INS1` 的值傳遞給 `ADD1` 函數(shù)的 `IN1` 參數(shù)。
- `IN2:=INS2` 表示將 `INS2` 的值傳遞給 `ADD1` 函數(shù)的 `IN2` 參數(shù)。
- `ADDOUT=>OUT` 表示 `ADD1` 函數(shù)的 `ADDOUT` 輸出參數(shù)的結(jié)果將被賦值給變量 `OUT`。
- `SUBDOUT=>` 表示 `ADD1` 函數(shù)的 `SUBDOUT` 輸出參數(shù)的結(jié)果被忽略,不會(huì)賦值給任何變量。
這是一個(gè)典型的函數(shù)調(diào)用方式,用于明確區(qū)分輸入?yún)?shù)和輸出參數(shù)。這種方式有助于提高代碼的可讀性和維護(hù)性。
例如,假設(shè) `ADD1` 函數(shù)的定義如下:
```pascal
FUNCTION ADD1 : DINT
VAR_INPUT
? ? IN1 : DINT;
? ? IN2 : DINT;
END_VAR
VAR_OUTPUT
? ? ADDOUT : DINT;
? ? SUBDOUT : DINT;
END_VAR
ADDOUT := IN1 + IN2;
SUBDOUT := IN1 - IN2;
END_FUNCTION
```
在這個(gè)函數(shù)中:
- `IN1` 和 `IN2` 是輸入?yún)?shù)。
- `ADDOUT` 和 `SUBDOUT` 是輸出參數(shù),分別返回 `IN1 + IN2` 和 `IN1 - IN2` 的結(jié)果。
當(dāng)您調(diào)用 `ADD1` 函數(shù)時(shí):
```pascal
VAR
? ? INS1 : DINT := 100;
? ? INS2 : DINT := 50;
? ? OUT : DINT;
END_VAR
ADD1(IN1:=INS1, IN2:=INS2, ADDOUT=>OUT, SUBDOUT=>);
// 調(diào)用后,OUT 將被賦值為 150
```
在這個(gè)例子中,`OUT` 將被賦值為 `150`,而 `SUBDOUT` 的結(jié)果被忽略。

《反斗星》
譚詠麟? 《愛的根源》 《霧之戀》 《愛情陷阱》

//2s 通 1s 斷
t1(IN:=m0 AND NOT T2.Q,PT:=T#1S,Q=>,ET=>ET1);
t2(IN:=t1.Q,PT:=T#1S,Q=>,ET=>ET2);
分析 的 情況;
您提供的代碼段描述了一個(gè)定時(shí)器邏輯,用于實(shí)現(xiàn)一個(gè)2秒導(dǎo)通(ON)和1秒斷開(OFF)的循環(huán)。這里使用了兩個(gè)定時(shí)器 `T1` 和 `T2` 來(lái)實(shí)現(xiàn)這個(gè)功能。讓我們?cè)敿?xì)解析一下這段代碼,并確保其正確性。
### 代碼解析
1. **定時(shí)器 T1**:
? ```pascal
? t1(IN:=m0 AND NOT T2.Q, PT:=T#1S, Q=>, ET=>ET1);
? ```
? - `IN`:輸入信號(hào),當(dāng) `m0` 為 `TRUE` 且 `T2.Q` 為 `FALSE` 時(shí),定時(shí)器 `T1` 開始計(jì)時(shí)。
? - `PT`:預(yù)設(shè)時(shí)間,設(shè)置為1秒 (`T#1S`)。
? - `Q`:輸出信號(hào),當(dāng)定時(shí)器計(jì)時(shí)結(jié)束時(shí)變?yōu)?`TRUE`。
? - `ET`:剩余時(shí)間,計(jì)時(shí)過(guò)程中會(huì)顯示剩余時(shí)間,計(jì)時(shí)結(jié)束后為0。
2. **定時(shí)器 T2**:
? ```pascal
? t2(IN:=t1.Q, PT:=T#1S, Q=>, ET=>ET2);
? ```
? - `IN`:輸入信號(hào),當(dāng) `T1.Q` 為 `TRUE` 時(shí),定時(shí)器 `T2` 開始計(jì)時(shí)。
? - `PT`:預(yù)設(shè)時(shí)間,設(shè)置為1秒 (`T#1S`)。
? - `Q`:輸出信號(hào),當(dāng)定時(shí)器計(jì)時(shí)結(jié)束時(shí)變?yōu)?`TRUE`。
? - `ET`:剩余時(shí)間,計(jì)時(shí)過(guò)程中會(huì)顯示剩余時(shí)間,計(jì)時(shí)結(jié)束后為0。
### 邏輯分析
1. **初始狀態(tài)**:
? - 假設(shè) `m0` 為 `TRUE`,`T2.Q` 為 `FALSE`。
? - `T1` 的輸入 `IN` 為 `TRUE`,開始計(jì)時(shí)1秒。
2. **T1 計(jì)時(shí)結(jié)束**:
? - 1秒后,`T1.Q` 變?yōu)?`TRUE`。
? - `T2` 的輸入 `IN` 為 `TRUE`,開始計(jì)時(shí)1秒。
3. **T2 計(jì)時(shí)結(jié)束**:
? - 1秒后,`T2.Q` 變?yōu)?`TRUE`。
? - `T1` 的輸入 `IN` 變?yōu)?`FALSE`(因?yàn)?`NOT T2.Q` 為 `FALSE`),`T1` 停止計(jì)時(shí),`T1.Q` 變?yōu)?`FALSE`。
4. **T2 保持1秒**:
? - `T2` 繼續(xù)保持 `TRUE` 狀態(tài)1秒。
5. **T2 計(jì)時(shí)結(jié)束**:
? - 1秒后,`T2.Q` 變?yōu)?`FALSE`。
? - `T1` 的輸入 `IN` 變?yōu)?`TRUE`,`T1` 再次開始計(jì)時(shí)1秒。
### 完整代碼
為了確保代碼的完整性和可讀性,以下是完整的代碼示例:
```pascal
VAR
? ? m0 : BOOL := TRUE;? // 假設(shè) m0 為 TRUE
? ? ET1 : TIME;
? ? ET2 : TIME;
? ? T1 : TON;
? ? T2 : TON;
END_VAR
T1(IN:=m0 AND NOT T2.Q, PT:=T#1S, Q=>, ET=>ET1);
T2(IN:=T1.Q, PT:=T#1S, Q=>, ET=>ET2);
```
### 注意事項(xiàng)
1. **初始化**:
? - 確保 `m0` 的初始狀態(tài)為 `TRUE`,以便定時(shí)器邏輯能夠正常啟動(dòng)。
? - 如果 `m0` 為 `FALSE`,則整個(gè)邏輯將不會(huì)啟動(dòng)。
2. **輸出信號(hào)**:
? - 如果你需要使用 `T1.Q` 或 `T2.Q` 的輸出信號(hào),可以在 `Q=>` 后面指定一個(gè)變量來(lái)接收這些信號(hào)。
3. **調(diào)試**:
? - 使用 CODESYS 的監(jiān)視窗口來(lái)觀察 `T1.Q` 和 `T2.Q` 的狀態(tài)變化,確保邏輯按預(yù)期工作。
通過(guò)以上步驟,您可以實(shí)現(xiàn)一個(gè)2秒導(dǎo)通(ON)和1秒斷開(OFF)的循環(huán)邏輯。如果有任何疑問(wèn)或需要進(jìn)一步的幫助,請(qǐng)隨時(shí)告訴我!
如果想完整的搞法:

192.168.0.250
192.168.0.89? 以太網(wǎng)的 ip

3.


0
dennglu登錄到
啟動(dòng)
再? 剛才的 再來(lái)一遍

要想 掉電 后不丟失 :
需要? 創(chuàng)建啟動(dòng)應(yīng)用
再次 上電? 就會(huì) 自動(dòng) 啟動(dòng)?
: