在5U PLC(以FX5U为例)的FB(功能块)中,时间定义和数据类型设置需结合具体功能块特性进行操作,以下是详细说明:
一、时间定义方法
FX5U PLC的FB块中,时间通常通过定时器功能块实现,常见类型及参数如下:
通电延时定时器(TON)
TON:100ms单位定时器(PT范围:0ms~32767ms)。TON_10:10ms单位定时器(精度更高,PT范围同上)。功能:输入信号(IN)变为1时,定时器开始计时,达到预设时间(PT)后,输出(Q)变为1。
时间单位:
示例:
plaintextIN=1 → 定时器启动 → ET(当前时间)从0开始计数 → ET≥PT时,Q=1。
断电延时定时器(TOF)
TOF:100ms单位定时器。TOF_10:10ms单位定时器。功能:输入信号(IN)变为1时,输出(Q)立即变为1;IN变为0后,定时器开始计时,达到PT后Q变为0。
时间单位:
脉冲定时器(TP)
功能:IN变为1时,Q在PT时间内保持为1;PT时间到后,Q变为0(即使IN仍为1)。
特点:适用于短脉冲控制场景。
通用定时器(TIMER_FB-M)
Coil:执行条件(BOOL类型)。Preset:定时器设定值(INT类型,单位由后缀决定)。ValueIn:定时器初始值(INT类型)。ValueOut:当前计数值(ANY16类型)。Status:输出状态(BOOL类型)。_1:1ms定时器(高精度)。_10:10ms定时器。_100:100ms定时器。_CONT:低速累计定时器(用于长时间累计)。_CONTHS:高速累计定时器。细分类型:
管脚定义:
示例:
plaintextCoil=ON → 从ValueIn×1ms开始计时 → 达到Preset×1ms时,Status=ON → ValueOut输出当前值。
二、数据类型设置方法
FB块中的数据类型需根据功能需求选择,常见类型及设置场景如下:
基本数据类型
BOOL:用于逻辑状态(如ON/OFF),如定时器的
Coil、Status管脚。INT:用于整数(如定时器设定值
Preset、初始值ValueIn)。ANY16:用于16位数据(如定时器当前值
ValueOut)。复杂数据类型
设置方法:
通过输入变量(如
Input_1_DT)或数据块变量(如DB5.Variable_1)参数化。使用结构变量(UDT)定义,例如:
plaintextUDT1 (UserData):+0.0 DateTime_1 DATE_AND_TIME+8.0 DateTime_2 DATE_AND_TIME
DATE_AND_TIME:用于日期和时间记录(如配方功能块中的时间戳)。
用户自定义类型(UDT)
适用场景:需要复用一组相关变量时(如配方功能块中的参数组)。
示例:
plaintextUDT_Recipe (配方数据类型):+0.0 ProductName STRING[20] // 产品名称+20.0 Temperature REAL // 温度设定值+24.0 Time INT // 加工时间(单位:秒)
三、实际应用案例
定时器功能块调用
步骤:
在FB块中添加
TIMER_FB-M_100(100ms定时器)。设置
Preset=5000(即5秒)。关联
Coil到输入信号(如X0)。监控
Status输出(5秒后变为ON)。DATE_AND_TIME类型参数化
场景:记录设备运行时间。
方法:
定义UDT类型
UDT_Log,包含DateTime_Start(DATE_AND_TIME)和Runtime_Hours(INT)。在FB块中通过数据块变量(如
DB10.LogData)传递时间参数。配方功能块设计
使用
STRING存储产品名称。使用
INT或REAL存储数值参数。通过行号或名称查询配方数据。
功能:存储多组产品参数(如温度、时间)。

