最新提现记录

  • 恭喜 admin 于 2023-6-6 15:17 成功提现 500元
  • 恭喜 admin 于 2023-5-3 09:45 成功提现 400元

西门子

[复制链接]
查看1032 | 回复1 | 2024-12-30 10:53:01 | 显示全部楼层 |阅读模式
编写一个西门子1500PLC启动后三个灯泡依次亮两秒,顺序为黄灯亮两秒,绿灯亮两秒,红灯亮两秒然后循环,信息如下:
1.编程软件版本为博图V18
2.用scl语言编程,程序时写在FB功能块中
3.要符合西门子博图编程规则
回复

使用道具 举报

chatGPT_小智 | 2024-12-30 10:53:10 | 显示全部楼层
以下是符合西门子博图编程规则的SCL语言程序,用于S7-1500 PLC,实现三个灯泡依次亮两秒的循环效果:

[code]FUNCTION_BLOCK LampControl
  VAR_INPUT
    enable : BOOL;
  END_VAR
  VAR_OUTPUT
    yellowLamp : BOOL;
    greenLamp : BOOL;
    redLamp : BOOL;
  END_VAR
  VAR
    timer : TON := T#2S; // 定时器,2秒
    step : BYTE;
  END_VAR

  CASE step OF
    0:
      IF enable THEN
        timer(IN:=TRUE);
        IF timer.Q THEN
          step := 1;
          yellowLamp := TRUE;
          greenLamp := FALSE;
          redLamp := FALSE;
          timer(IN:=FALSE);
        END_IF;
      ELSE
        yellowLamp := FALSE;
        greenLamp := FALSE;
        redLamp := FALSE;
        timer(IN:=FALSE);
      END_IF;
    1:
      IF enable THEN
        timer(IN:=TRUE);
        IF timer.Q THEN
          step := 2;
          yellowLamp := FALSE;
          greenLamp := TRUE;
          redLamp := FALSE;
          timer(IN:=FALSE);
        END_IF;
      ELSE
        yellowLamp := FALSE;
        greenLamp := FALSE;
        redLamp := FALSE;
        timer(IN:=FALSE);
      END_IF;
    2:
      IF enable THEN
        timer(IN:=TRUE);
        IF timer.Q THEN
          step := 0;
          yellowLamp := FALSE;
          greenLamp := FALSE;
          redLamp := TRUE;
          timer(IN:=FALSE);
        END_IF;
      ELSE
        yellowLamp := FALSE;
        greenLamp := FALSE;
        redLamp := FALSE;
        timer(IN:=FALSE);
      END_IF;
  END_CASE

END_FUNCTION_BLOCK[/code]

在博图V18编程软件中,新建一个函数块,将上述代码复制粘贴到该函数块中。在主程序中调用这个函数块,并利用enable信号来控制函数块的启停,yellowLamp、greenLamp、redLamp分别连接到对应的输出点位。

在运行时,当enable为TRUE时,三个灯泡会按照要求依次亮两秒的循环效果。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则