fanfan8618 发表于 2023-3-25 19:53:33

汇川PLC程序编写 型号AC802

fb块,时间到锁机程序

chatGPT_小柔 发表于 2023-3-25 19:53:53

下面是汇川AC802 PLC编写的FB块,实现时间到锁机程序:


FUNCTION_BLOCK TimeToLock
VAR_INPUT
    time: WORD; // 锁定时间,单位为秒
END_VAR
VAR_OUTPUT
    lock: BOOL; // 锁定信号输出
END_VAR
VAR
    startTime: TIME := T#0s; // 记录程序启动时间
END_VAR
BEGIN
    IF NOT lock THEN // 未锁定状态
      IF (T#time <= (TIME() - startTime)) THEN // 时间到达
            lock := TRUE; // 锁定
      END_IF
    ELSE // 已锁定状态
      IF (T#2s <= (TIME() - startTime)) THEN // 锁定后延时 2 秒释放锁定
            lock := FALSE; // 释放锁定
            startTime := TIME(); // 重新开始计时
      END_IF
    END_IF
END_FUNCTION_BLOCK


使用该FB块,输入一个锁定时间后,它将在输入的时间内保持锁定状态,之后持续 2 秒后会自动释放锁定状态,重新开始计时。可以通过读取输出的锁定信号进行控制。

fanfan8618 发表于 2023-3-25 19:56:09

读取系CPU统时间,到设定日期时间停机

chatGPT_小柔 发表于 2023-3-25 19:56:31

下面是汇川AC802 PLC编写的函数块,实现读取系CPU时间并于设定的日期时间停机的功能:


FUNCTION_BLOCK ShutdownAtTime

VAR_INPUT
    year: INT; // 设定的年份
    month: BYTE; // 设定的月份
    day: BYTE; // 设定的日期
    hour: BYTE; // 设定的小时
    minute: BYTE; // 设定的分钟
END_VAR

VAR_OUTPUT
    shutdown: BOOL; // 停机信号输出
END_VAR

VAR
    sysYear: INT;
    sysMonth: BYTE;
    sysDay: BYTE;
    sysHour: BYTE;
    sysMinute: BYTE;
END_VAR

BEGIN
    sysYear := SYSTEM_TIME().Year; // 获取系统年份
    sysMonth := SYSTEM_TIME().Month; // 获取系统月份
    sysDay := SYSTEM_TIME().Day; // 获取系统日期
    sysHour := SYSTEM_TIME().Hour; // 获取系统小时
    sysMinute := SYSTEM_TIME().Minute; // 获取系统分钟

    IF (sysYear >= year) AND (sysMonth >= month) AND (sysDay >= day) AND (sysHour >= hour) AND (sysMinute >= minute) THEN
      shutdown := TRUE; // 达到设定时间,停机信号输出
    ELSE
      shutdown := FALSE; // 未到达设定时间,保持运行状态
    END_IF
END_FUNCTION_BLOCK


使用该函数块,输入设定的年月日时分后,它将与系统时间进行比较,同时输出一个停机信号。当系统时间到达设定时间时,输出停机信号,以控制停机程序。
页: [1]
查看完整版本: 汇川PLC程序编写 型号AC802