2024-10-13-01-codesys新建工程

1.


2.

ADD1(IN1:=INS1,IN2:=INS2,ADDOUT=>OUT,SUBDOUT=>); 中的 => 代表什么含义



编程 


=>




在您提供的代码片段中,`=>` 符号用于指定函数调用中的输出参数。这在某些编程语言中,特别是工业控制编程语言如Structured Text (ST) 中,用来明确指出哪些参数是输出参数。

让我们详细解析一下这个函数调用:

```pascal

ADD1(IN1:=INS1, IN2:=INS2, ADDOUT=>OUT, SUBDOUT=>);

```

- `ADD1` 是函数的名称。

- `IN1` 和 `IN2` 是输入参数,分别被赋值为 `INS1` 和 `INS2`。

- `ADDOUT` 和 `SUBDOUT` 是输出参数,其中 `ADDOUT` 的结果将被赋值给变量 `OUT`。

- `SUBDOUT` 后面没有指定变量,表示这个输出参数被忽略或不使用。

具体来说:

- `IN1:=INS1` 表示将 `INS1` 的值传递给 `ADD1` 函数的 `IN1` 参数。

- `IN2:=INS2` 表示将 `INS2` 的值传递给 `ADD1` 函数的 `IN2` 参数。

- `ADDOUT=>OUT` 表示 `ADD1` 函数的 `ADDOUT` 输出参数的结果将被赋值给变量 `OUT`。

- `SUBDOUT=>` 表示 `ADD1` 函数的 `SUBDOUT` 输出参数的结果被忽略,不会赋值给任何变量。

这是一个典型的函数调用方式,用于明确区分输入参数和输出参数。这种方式有助于提高代码的可读性和维护性。

例如,假设 `ADD1` 函数的定义如下:

```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

```

在这个函数中:

- `IN1` 和 `IN2` 是输入参数。

- `ADDOUT` 和 `SUBDOUT` 是输出参数,分别返回 `IN1 + IN2` 和 `IN1 - IN2` 的结果。

当您调用 `ADD1` 函数时:

```pascal

VAR

    INS1 : DINT := 100;

    INS2 : DINT := 50;

    OUT : DINT;

END_VAR

ADD1(IN1:=INS1, IN2:=INS2, ADDOUT=>OUT, SUBDOUT=>);

// 调用后,OUT 将被赋值为 150

```

在这个例子中,`OUT` 将被赋值为 `150`,而 `SUBDOUT` 的结果被忽略。





0.

《反斗星》


谭咏麟  《爱的根源》 《雾之恋》 《爱情陷阱》



//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);



分析 的 情况;


您提供的代码段描述了一个定时器逻辑,用于实现一个2秒导通(ON)和1秒断开(OFF)的循环。这里使用了两个定时器 `T1` 和 `T2` 来实现这个功能。让我们详细解析一下这段代码,并确保其正确性。

### 代码解析

1. **定时器 T1**:

  ```pascal

  t1(IN:=m0 AND NOT T2.Q, PT:=T#1S, Q=>, ET=>ET1);

  ```

  - `IN`:输入信号,当 `m0` 为 `TRUE` 且 `T2.Q` 为 `FALSE` 时,定时器 `T1` 开始计时。

  - `PT`:预设时间,设置为1秒 (`T#1S`)。

  - `Q`:输出信号,当定时器计时结束时变为 `TRUE`。

  - `ET`:剩余时间,计时过程中会显示剩余时间,计时结束后为0。

2. **定时器 T2**:

  ```pascal

  t2(IN:=t1.Q, PT:=T#1S, Q=>, ET=>ET2);

  ```

  - `IN`:输入信号,当 `T1.Q` 为 `TRUE` 时,定时器 `T2` 开始计时。

  - `PT`:预设时间,设置为1秒 (`T#1S`)。

  - `Q`:输出信号,当定时器计时结束时变为 `TRUE`。

  - `ET`:剩余时间,计时过程中会显示剩余时间,计时结束后为0。

### 逻辑分析

1. **初始状态**:

  - 假设 `m0` 为 `TRUE`,`T2.Q` 为 `FALSE`。

  - `T1` 的输入 `IN` 为 `TRUE`,开始计时1秒。

2. **T1 计时结束**:

  - 1秒后,`T1.Q` 变为 `TRUE`。

  - `T2` 的输入 `IN` 为 `TRUE`,开始计时1秒。

3. **T2 计时结束**:

  - 1秒后,`T2.Q` 变为 `TRUE`。

  - `T1` 的输入 `IN` 变为 `FALSE`(因为 `NOT T2.Q` 为 `FALSE`),`T1` 停止计时,`T1.Q` 变为 `FALSE`。

4. **T2 保持1秒**:

  - `T2` 继续保持 `TRUE` 状态1秒。

5. **T2 计时结束**:

  - 1秒后,`T2.Q` 变为 `FALSE`。

  - `T1` 的输入 `IN` 变为 `TRUE`,`T1` 再次开始计时1秒。

### 完整代码

为了确保代码的完整性和可读性,以下是完整的代码示例:

```pascal

VAR

    m0 : BOOL := TRUE;  // 假设 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);

```

### 注意事项

1. **初始化**:

  - 确保 `m0` 的初始状态为 `TRUE`,以便定时器逻辑能够正常启动。

  - 如果 `m0` 为 `FALSE`,则整个逻辑将不会启动。

2. **输出信号**:

  - 如果你需要使用 `T1.Q` 或 `T2.Q` 的输出信号,可以在 `Q=>` 后面指定一个变量来接收这些信号。

3. **调试**:

  - 使用 CODESYS 的监视窗口来观察 `T1.Q` 和 `T2.Q` 的状态变化,确保逻辑按预期工作。

通过以上步骤,您可以实现一个2秒导通(ON)和1秒断开(OFF)的循环逻辑。如果有任何疑问或需要进一步的帮助,请随时告诉我!



如果想完整的搞法:





2.

192.168.0.250

192.168.0.89  以太网的 ip



3.


3.


4.



0

dennglu登录到


启动

再  刚才的 再来一遍



02


要想 掉电 后不丢失 :


需要  创建启动应用






再次 上电  就会 自动 启动 




最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容