『7x24小时有问必答』
西门子PLC变量数据类型:
一、西门子PLC变量表51个数据类型:
以下是对这 51 个标识符的详细解释,按字母顺序排列,涵盖其类型和主要功能:
Aom_Ident
通常用于标识 AO(模拟量输出)模块的相关信息,可能涉及模块型号、地址或配置参数,在 PLC 硬件组态中用于识别和管理模拟量输出设备。
Bool
布尔型数据类型,是 PLC 中最基础的数据类型之一,只有两种取值:TRUE(真)或FALSE(假),常用于表示开关状态(如触点通断、指示灯亮灭)、逻辑判断条件等。
Byte
字节型数据类型,由 8 位二进制数组成,取值范围为 0~255,可用于存储小范围的整数、二进制状态组合(如 8 个独立开关的状态),或作为数据传输的基本单位。
Char
字符型数据类型,通常占用 1 个字节,用于表示单个 ASCII 字符(如字母、数字、符号),在文本处理或人机交互(如显示信息)中使用。
Conn_Any
通用连接类型,泛指 PLC 与其他设备(如 HMI、传感器、执行器)之间的任意连接,不局限于特定通信协议或设备类型,用于描述连接的通用性。
Conn_Ouc
可能指 “输出连接”(Output Connection),用于标识 PLC 输出信号与外部设备的连接关系,如控制电磁阀、电机等执行器的连接路径。
Conn_Prg
可能指 “程序连接”(Program Connection),用于描述 PLC 内部程序块之间的逻辑连接或数据交互,如函数块与主程序的调用关系。
Date
日期型数据类型,用于存储年、月、日信息(如 2023-10-01),常用于时间相关的控制逻辑(如定时任务、生产日期记录)。
DB_ANY
通用数据块类型,泛指任意类型的数据块(Data Block),数据块是 PLC 中用于存储数据的区域,可存放变量、数组、结构体等,供程序块调用和修改。
DB_DYN
动态数据块(Dynamic Data Block),其大小或结构可在运行时动态调整,适用于数据量不固定的场景(如动态生成的日志、可变长度的参数列表)。
DB_WWW
可能与 Web 服务相关的数据块,用于存储 PLC 与 Web 服务器交互的数据(如网页显示的参数、远程控制指令),支持通过网络访问 PLC 数据。
DInt
双整数型(32 位有符号整数),取值范围为 - 2,147,483,648~2,147,483,647,适用于需要较大数值范围的计数、计量场景(如生产数量统计、位置坐标)。
DWord
双字类型(32 位无符号整数),取值范围为 0~4,294,967,295,可用于存储大整数、地址指针,或作为 32 位二进制状态的组合(如多个设备的状态集合)。
Event_Any
通用事件类型,泛指 PLC 中的任意事件(如故障报警、状态变化、定时触发),用于统一描述各类事件的触发和处理机制。
Event_Att
可能指 “属性事件”(Attribute Event),当设备或变量的属性(如量程、地址、状态)发生变化时触发的事件,用于监控系统配置的变更。
Event_HwInt
硬件中断事件(Hardware Interrupt Event),由硬件设备(如传感器、I/O 模块)触发的中断信号(如急停信号、超限报警),会暂停当前程序执行,优先处理中断逻辑。
Hw_Any
通用硬件类型,泛指 PLC 系统中的任意硬件设备(如 CPU、I/O 模块、通信模块、传感器),用于描述硬件的通用性属性。
Hw_Device
硬件设备,特指 PLC 系统中的物理设备(如 CPU 模块、电源模块),用于标识和管理具体的硬件单元及其参数(如型号、固件版本)。
Hw_DpSlave
  DP从站设备(Profibus DP Slave),指在 Profibus DP 总线中作为从站的设备(如远程 I/O 模块、变频器),受主站(通常是 PLC)控制和通信。
Hw_Hsc
高速计数器硬件(Hardware High-Speed Counter),PLC 的专用硬件模块或集成功能,用于快速计数高频脉冲信号(如编码器反馈的位置脉冲)。
Hw_IEPort
工业以太网端口(Industrial Ethernet Port),PLC 上用于工业以太网通信的物理接口,支持 Profinet 等协议,实现与其他设备的高速网络连接。
Hw_Interface
硬件接口,指 PLC 与外部设备连接的物理或逻辑接口(如串口、总线接口),用于定义设备间的通信方式和电气特性。
Hw_Io
I/O  硬件(Input/Output Hardware),特指 PLC 的输入 / 输出模块,负责采集外部信号(如传感器输入)和输出控制信号(如继电器输出)。
Hw_IoSystem
I/O系统硬件,指由多个 I/O 模块组成的整体系统(如分布式 I/O 站),用于集中管理分散的输入 / 输出点,扩展 PLC 的控制范围。
Hw_Pto
脉冲串输出硬件(Hardware Pulse Train Output),PLC 的专用硬件功能,用于输出精确的脉冲序列,控制步进电机或伺服电机的运动(如位置、速度控制)。
Hw_Pwm
脉冲宽度调制硬件(Hardware Pulse Width Modulation),通过调整脉冲信号的占空比实现模拟量输出(如控制阀门开度、电机转速),由硬件电路生成,精度和响应速度较高。
Hw_SubModule
子模块硬件,指集成在主模块内的辅助模块(如 CPU 模块上的通信子模块、I/O 模块上的端子子模块),用于扩展主模块的功能。
Int
整数型(16 位有符号整数),取值范围为 - 32,768~32,767,适用于中等范围的计数或计量场景(如小批量生产计数、温度值表示)。
LReal
长实数型(64 位浮点数),精度高于 Real,可表示更大范围的数值(约 ±1.7×10^±308),适用于高精度计算(如 PID 控制参数、复杂数学运算)。
OB_Any
通用组织块(Organization Block),泛指 PLC 中的任意组织块,组织块是操作系统与用户程序的接口,用于处理特定事件或周期任务。
OB_Att
可能指 “属性组织块”(Attribute Organization Block),用于处理与硬件或变量属性相关的系统事件(如模块故障、参数修改)。
OB_Cyclic
循环组织块,按固定周期执行用户程序(如 10ms、100ms),是 PLC 主程序的核心,用于实现连续的过程控制逻辑。
OB_Delay
延时组织块,用于处理延时触发的任务(如延时启动、延时关闭),在设定的时间后执行特定逻辑。
OB_DIAG
诊断组织块,当系统出现诊断事件(如模块故障、通信中断)时触发,用于执行故障处理逻辑(如报警输出、安全停机)。
OB_HWINT
硬件中断组织块,响应硬件中断事件(如 Hw_Hsc 的计数溢出、急停信号),优先执行中断服务程序,确保紧急事件的快速处理。
OB_PCYCLE
过程循环组织块,可能与特定过程的循环控制相关,用于协调多个周期性任务的执行顺序或优先级。
OB_STARTUP
启动组织块,在 PLC 上电启动或重启时执行,用于初始化系统参数(如变量复位、设备自检、初始状态设置)。
OB_TIMEERROR
时间错误组织块,当程序执行时间超过设定的最大周期(如循环超时)时触发,用于处理程序运行超时的异常情况(如强制复位、报警)。
OB_Tod
可能与 “时间 - of-day”(Time of Day)相关的组织块,用于处理与实时时钟相关的任务(如定时执行的每日操作、时间同步)。
Pip
可能指 “过程映像分区”(Process Image Partition),PLC 将输入 / 输出信号分为多个分区,用于分批刷新或隔离不同的控制区域,提高程序执行效率。
Port
端口,指硬件接口的物理或逻辑端口(如通信端口、I/O 端口地址),用于标识数据传输的通道(如以太网端口号、串口地址)。
Real
实数型(32 位浮点数),可表示带小数的数值(约 ±3.4×10^±38),适用于需要小数精度的场景(如温度、压力、流量的测量值)。
Rtm
可能指 “实时模块”(Real-Time Module)或 “运行时间监控”(Run-Time Monitoring),用于管理 PLC 的实时运行性能或监控程序执行时间。
SInt
短整数型(8 位有符号整数),取值范围为 - 128~127,适用于小范围的计数或状态表示(如设备编号、有限的状态码)。
Time
时间型数据类型,用于存储时间间隔(如 10s、5min),单位通常为毫秒,常用于定时器设置、延时控制、运行时间累计。
Time_Of_Day
日时间型,用于存储一天中的具体时间(如 14:30:25.500),结合实时时钟使用,适用于时间触发的控制逻辑(如定时启动生产流程)。
UDInt
无符号双整数型(32 位无符号整数),取值范围为 0~4,294,967,295,适用于不需要负数的大数值场景(如累计产量、绝对位置)。
UInt
无符号整数型(16 位无符号整数),取值范围为 0~65,535,适用于不需要负数的中等范围计数(如设备运行次数、短距离位置)。
USInt
无符号短整数型(8 位无符号整数),取值范围为 0~255,适用于不需要负数的小范围场景(如百分比、小量程计数)。
WChar
宽字符型,通常占用 2 个字节,支持 Unicode 字符(如中文、日文),用于需要显示多语言文本的人机交互场景。
Word
字类型(16 位无符号整数),取值范围为 0~65,535,可用于存储中等范围整数、16 位二进制状态组合(如 16 个开关的状态),或作为数据传输的单位。
二、数据块中的数据类型
以下是对 94种西门子博途(TIA Portal)数据块中数据类型的详细说明,涵盖其功能、作用及典型用法:
AOM_IDENT
功能:标识模拟量输出(AO)模块的属性信息
作用:存储 AO 模块的型号、地址、版本等硬件标识数据,用于系统识别和组态管理
用法:在硬件配置相关的数据块中定义,供诊断程序读取模块信息
Array
功能:有序数据集合,可存储多个同类型元素
作用:批量管理相同类型的数据(如多个温度值、设备状态)
用法:定义格式为Array[起始索引..结束索引] of 数据类型,例如Array[1..10] of Real表示 10 个实数组成的数组
Array[0..1] of Bool
功能:包含 2 个布尔值的数组
作用:存储 2 个开关状态(如两个传感器的通断信号)
用法:常用于紧凑存储少量布尔变量,节省内存空间
Any
功能:通用指针类型,可指向任意数据类型
作用:实现灵活的数据访问,适用于需要处理多种类型数据的通用函数
用法:在函数接口中定义,如VAR_INPUT data : Any; END_VAR,可接收不同类型的输入参数
Alias
功能:为已有变量创建别名
作用:简化变量引用,增强程序可读性(如为DB1.DBX0.0创建别名Motor_Start
用法:在数据块中通过 "重命名" 功能创建,不改变变量地址和类型
Bit
功能:单个二进制位(0 或 1)
作用:最小的存储单位,用于表示最基础的开关状态
用法:通常作为字节、字等类型的组成部分(如DB1.DBX0.0表示 DB1 中第 0 字节的第 0 位)
Block_DB
功能:数据块(DB)的块指针类型
作用:指向特定的数据块,用于动态访问不同数据块
用法:在函数中定义为输入参数,如VAR_INPUT db_ptr : Block_DB; END_VAR,通过指针操作指定数据块
Block_FB
功能:功能块(FB)的块指针类型
作用:指向特定的功能块实例,用于动态调用功能块
用法:用于间接调用功能块,支持程序的灵活性和可扩展性
Block_FC
功能:函数(FC)的块指针类型
作用:指向特定的函数,用于动态调用函数
用法:在需要根据条件调用不同函数时使用,如根据模式选择不同的计算函数
Block_OB
功能:组织块(OB)的块指针类型
作用:指向特定的组织块,用于系统事件处理的配置
用法:主要用于系统组态,指定事件触发时调用的组织块
Block_SDB
功能:系统数据块(SDB)的块指针类型
作用:指向系统数据块,用于访问系统配置信息
用法:由系统自动生成和管理,用户通常无需直接操作
Bool
功能:布尔类型,取值为TRUEFALSE
作用:表示开关状态(如按钮按下 / 释放、阀门开 / 关)
用法:最基础的数据类型,广泛用于逻辑判断、条件控制
Byte
功能:8 位无符号整数(0~255)
作用:存储小范围整数或打包多个布尔状态(1 字节可存 8 个 Bool)
用法:用于通信数据传输(如 Modbus 协议)、状态字存储
Char
功能:单字符类型(1 字节),支持 ASCII 编码
作用:表示单个字符(如字母、数字、符号)
用法:用于文本显示、简单字符串拼接
CONN_ANY
功能:通用连接类型
作用:描述 PLC 与其他设备(如 HMI、变频器)的任意类型连接
用法:在通信组态相关数据块中定义,用于管理设备间的连接关系
CONN_OUC
功能:输出连接类型
作用:标识 PLC 输出信号与外部设备的连接(如控制信号到执行器)
用法:在 I/O 映射和连接表中使用,明确输出信号的去向
CONN_PRG
功能:程序内部连接类型
作用:描述 PLC 内部程序块之间的数据交互关系
用法:用于程序块接口定义,明确变量的传递路径
CREF
功能:常量引用类型
作用:指向常量的引用,确保访问的是常量值
用法:在需要固定参数的函数中使用,防止常量被意外修改
Date
功能:日期类型,存储年、月、日(如DT2023-10-01
作用:记录日期信息(如生产批次日期)
用法:用于时间相关的逻辑控制,如到期提醒、按日期统计
Date_And_Time
功能:日期和时间组合类型(如DT2023-10-01-14:30:00
作用:记录精确到秒的时间点
用法:用于事件日志、定时任务触发(如每天特定时间执行操作)
DInt
功能:32 位有符号整数(-2,147,483,648~2,147,483,647)
作用:存储大范围整数(如累计产量、长时间计时)
用法:适用于需要大数值范围的计数、计量场景
DTL
功能:日期时间结构类型(Date and Time Long)
作用:高精度时间存储,包含年、月、日、时、分、秒、毫秒
用法:用于需要毫秒级精度的时间记录,如高速事件的时间戳
Duration
功能:时间间隔类型
作用:表示两个时间点之间的差值(如 1 小时 30 分钟)
用法:用于计算运行时长、间隔控制
DWord
功能:32 位无符号整数(0~4,294,967,295)
作用:存储大整数、地址指针或 32 位状态组合
用法:用于存储设备地址、大计数器值、32 位控制字
Enum
功能:枚举类型,包含预定义的离散值
作用:规范变量的取值范围(如设备状态:停止 = 0、运行 = 1、故障 = 2)
用法:提高程序可读性,限制变量只能取定义的枚举值
ErrorStruct
功能:错误信息结构体
作用:存储错误代码、错误描述、发生时间等故障信息
用法:在诊断程序中定义,用于统一管理和传递错误信息
EVENT_ANY
功能:通用事件类型
作用:描述任意类型的系统事件(如故障、状态变化)
用法:在事件处理程序中作为通用参数,接收不同类型的事件
EVENT_ATT
功能:属性事件类型
作用:当变量或设备属性(如量程、地址)变化时触发的事件
用法:用于监控系统配置变更,执行相应的适配逻辑
EVENT_HWINT
功能:硬件中断事件类型
作用:描述硬件触发的中断事件(如急停信号、高速计数器溢出)
用法:与 OB_HWINT 组织块配合,处理紧急事件
Function
功能:函数(FC)类型
作用:指向用户定义的函数,用于程序块的引用和调用
用法:在需要动态调用函数时使用,如根据条件选择不同的计算函数
FunctionBlock
功能:功能块(FB)类型
作用:指向用户定义的功能块,用于实例化和调用
用法:用于创建功能块的实例,实现模块化编程
HW_ANY
功能:通用硬件类型
作用:描述任意硬件设备(如 CPU、I/O 模块、传感器)
用法:在硬件组态数据块中使用,统一管理不同类型的硬件
HW_DEVICE
功能:硬件设备类型
作用:标识具体的硬件设备(如 CPU 1511-1 PN)
用法:存储设备型号、固件版本、地址等信息,用于硬件诊断
HW_DPSLAVE
功能:Profibus DP 从站类型
作用:描述 Profibus DP 总线上的从站设备(如 ET200 分布式 I/O)
用法:在 DP 总线组态中定义,管理从站与主站的通信
HW_HSC
功能:高速计数器硬件类型
作用:描述高速计数器模块或集成功能的属性
用法:存储计数器的地址、量程、模式等参数,用于高速计数控制
HW_IEPORT
功能:工业以太网端口类型
作用:描述 PLC 的以太网接口属性(如 IP 地址、子网掩码)
用法:在网络组态中定义,配置 Profinet 通信参数
HW_INTERFACE
功能:硬件接口类型
作用:描述硬件设备的物理或逻辑接口(如串口、总线接口)
用法:用于定义设备间的连接方式和通信协议
HW_IO
功能:I/O 硬件类型
作用:描述输入 / 输出模块的属性(如地址、信号类型)
用法:在 I/O 映射中使用,关联物理 I/O 点与程序变量
HW_IOSYSTEM
功能:I/O 系统类型
作用:描述由多个 I/O 模块组成的系统(如分布式 I/O 站)
用法:用于管理 I/O 系统的整体配置和通信
HW_PTO
功能:脉冲串输出硬件类型
作用:描述 PTO 功能的属性(如脉冲频率、数量)
用法:配置步进电机或伺服电机的控制参数
HW_PWM
功能:脉冲宽度调制硬件类型
作用:描述 PWM 输出的属性(如频率、占空比范围)
用法:用于控制阀门开度、电机转速等需要模拟量输出的场景
HW_SUBMODULE
功能:子模块硬件类型
作用:描述主模块下的子模块(如 CPU 上的通信子模块)
用法:管理子模块的配置和状态监控
IEC_COUNTER
功能:IEC 标准计数器类型
作用:实现计数功能(如递增计数、递减计数)
用法:在程序中调用,用于产品计数、工序计数等场景
IEC_DCOUNTER
功能:双方向计数器类型
作用:支持递增和递减双向计数
用法:适用于需要正向 / 反向计数的场景(如物料进出计数)
IEC_SCOUNTER
功能:有符号计数器类型
作用:计数范围包含正负值(如位置偏差计数)
用法:用于需要记录正负偏差的计数场景
IEC_TIMER
功能:IEC 标准定时器类型
作用:实现延时控制(如接通延时、断开延时)
用法:用于设备启动延时、故障复位延时等逻辑
IEC_UCOUNTER
功能:无符号计数器类型
作用:仅支持非负整数计数(如产量统计)
用法:用于不需要负数的计数场景
IEC_UDCOUNTER
功能:无符号双方向计数器类型
作用:支持无符号的递增 / 递减计数
用法:适用于非负范围内的双向计数(如库存变动)
IEC_USCOUNTER
功能:无符号短计数器类型
作用:小范围无符号计数(0~65535)
用法:用于计数范围较小的场景(如批次内产品计数)
Int
功能:16 位有符号整数(-32,768~32,767)
作用:存储中等范围整数(如电机转速、温度值)
用法:广泛用于模拟量转换、中等范围计数
Interval
功能:时间间隔类型(与 Duration 类似)
作用:表示两个时间点之间的时间差
用法:用于计算时间间隔,如设备运行时间、周期控制
LDate
功能:长日期类型
作用:高精度存储日期信息(支持更大的年份范围)
用法:用于需要长期记录的日期数据(如设备寿命起始日期)
LDate_And_Time
功能:长日期时间类型
作用:高精度存储日期和时间(包含毫秒)
用法:用于需要精确时间戳的场景(如事件记录、同步控制)
LInt
功能:64 位有符号整数(-9,223,372,036,854,775,808~9,223,372,036,854,775,807)
作用:存储超大范围整数(如长时间计时、大数据量计数)
用法:适用于需要极大数值范围的场景
LReal
功能:64 位浮点数(双精度)
作用:存储高精度小数(如 PID 参数、复杂计算结果)
用法:用于需要高精度的数学运算、工艺参数计算
LTime
功能:长时问类型(精度更高的时间间隔)
作用:表示更长的时间间隔(如数月、数年)
用法:用于长期运行的设备计时(如设备总运行时间)
LTime_Of_Day
功能:长日时间类型
作用:高精度存储一天中的时间(精确到纳秒)
用法:用于需要极高时间精度的场景(如高速同步控制)
LWord
功能:64 位无符号整数
作用:存储超大范围无符号数值或 64 位状态组合
用法:用于存储大型地址、超大计数器值
NREF
功能:变量引用类型
作用:指向变量的引用,用于间接访问变量
用法:在需要动态访问不同变量时使用,提高程序灵活性
OB_ANY
功能:通用组织块类型
作用:描述任意类型的组织块(OB)
用法:在系统配置中用于统一管理不同功能的组织块
OB_ATT
功能:属性组织块类型
作用:处理与硬件或变量属性相关的系统事件
用法:响应属性变更事件,执行相应的处理逻辑
OB_CYCLIC
功能:循环组织块类型
作用:按固定周期执行用户程序(如 OB35)
用法:用于周期性任务(如数据采集、控制算法执行)
OB_DELAY
功能:延时组织块类型
作用:处理延时触发的任务
用法:用于需要延时执行的操作(如故障报警延时)
OB_DIAG
功能:诊断组织块类型
作用:处理系统诊断事件(如模块故障)
用法:执行故障诊断和报警处理逻辑
OB_HWINT
功能:硬件中断组织块类型
作用:响应硬件中断事件(如急停信号)
用法:优先处理紧急事件,确保系统安全
OB_PCYCLE
功能:过程循环组织块类型
作用:协调过程控制的循环任务
用法:用于同步多个周期性控制任务
OB_STARTUP
功能:启动组织块类型(如 OB100)
作用:PLC 启动时执行初始化操作
用法:初始化变量、设备自检、设置初始状态
OB_TIMEERROR
功能:时间错误组织块类型
作用:处理程序执行超时事件
用法:防止程序因超时进入停机状态,执行错误处理
OB_TOD
功能:日时间组织块类型
作用:按特定时间点触发任务(如每天 8 点)
用法:用于定时执行的操作(如每日数据备份)
PIP
功能:过程映像分区类型
作用:管理输入 / 输出过程映像的分区刷新
用法:优化程序执行效率,实现不同区域的独立刷新
Pointer
功能:指针类型,存储变量的地址
作用:实现对变量的间接访问
用法:在需要动态修改访问地址的场景中使用(如数组元素遍历)
PORT
功能:端口类型
作用:标识通信端口(如以太网端口号、串口地址)
用法:在通信配置中定义数据传输的通道
QWord
功能:64 位无符号整数(与 LWord 类似)
作用:存储超大范围无符号数值
用法:用于需要 64 位数据的场景(如加密数据、大型文件地址)
Real
功能:32 位浮点数(单精度)
作用:存储带小数的数值(如温度、压力)
用法:广泛用于模拟量处理、常规数学运算
RTM
功能:实时监控类型
作用:记录程序执行时间、资源占用等实时数据
用法:用于系统性能分析和优化
SInt
功能:8 位有符号整数(-128~127)
作用:存储小范围整数(如设备编号、状态码)
用法:节省内存空间,适用于小量程数据
SWord
功能:16 位有符号字类型(与 Int 相同)
作用:存储 16 位有符号整数
用法:与 Int 通用,常用于特定协议的数据传输
String
功能:字符串类型(最多 254 个字符)
作用:存储文本信息(如设备名称、报警描述)
用法:用于 HMI 显示、日志记录、文本通信
Struct
功能:结构体类型,包含多个不同类型的成员
作用:将相关数据组合成一个整体(如设备参数结构体包含温度、压力、流量)
用法:提高数据组织性,便于模块化管理
Timestamp
功能:时间戳类型
作用:记录事件发生的精确时间
用法:用于事件日志、数据采集的时间标记
Time
功能:时间间隔类型(单位:ms)
作用:表示时间长度(如 5000ms=5 秒)
用法:用于定时器设置、延时控制、运行时间累计
Time_Of_Day
功能:日时间类型(如TOD14:30:00
作用:存储一天中的时间(精确到秒)
用法:用于定时任务(如设备定时启停)
UDInt
功能:32 位无符号整数(0~4,294,967,295)
作用:存储无符号大范围整数(如绝对位置、累计产量)
用法:适用于不需要负数的大数值场景
UInt
功能:16 位无符号整数(0~65,535)
作用:存储无符号中等范围整数(如设备运行次数)
用法:用于非负计数、地址标识
ULInt
功能:64 位无符号整数(与 QWord 相同)
作用:存储超大范围无符号整数
用法:用于需要 64 位无符号数据的场景
USInt
功能:8 位无符号整数(0~255)
作用:存储无符号小范围整数(如百分比、小量程计数)
用法:节省内存,适用于非负小数值
UWord
功能:16 位无符号字类型(与 UInt 相同)
作用:存储 16 位无符号整数
用法:常用于通信数据、状态字存储
Variant
功能:变体类型,可动态存储不同类型的数据
作用:实现灵活的数据处理,支持多种类型的输入输出
用法:在通用函数中作为参数,适应不同数据类型的需求
WChar
功能:宽字符类型(2 字节),支持 Unicode 编码
作用:表示多语言字符(如中文、日文)
用法:用于多语言文本显示、国际化界面
Word
功能:16 位无符号整数(0~65,535)
作用:存储中等范围整数或 16 位状态组合
用法:用于模拟量原始值、设备状态字、通信数据
WString
功能:宽字符串类型,支持 Unicode 字符(最多 511 个字符)
作用:存储多语言文本(如中文报警信息)
用法:用于需要显示非 ASCII 字符的场景
DB_ANY
功能:通用数据块类型
作用:描述任意类型的数据块(如全局 DB、背景 DB)
用法:在程序中动态访问不同数据块的通用接口
DB_DYN
功能:动态数据块类型
作用:大小可动态调整的数据块,适用于数据量可变的场景
用法:用于存储动态生成的数据(如日志、可变参数列表)
DB_WWW
功能:Web 相关数据块类型
作用:存储 PLC 与 Web 服务器交互的数据(如网页显示参数)
用法:支持通过网络浏览器访问和控制 PLC 数据
三、程序块中的接口定义
       1、Main组织块接口
要分析博途组织块(OB1)的接口及数据类型,需分 Input(输入)、Temp(临时变量)、Constant(常量) 三个区域逐一说明:

1. Input(输入区)

输入区的变量由系统或上层逻辑传递,为 OB1 提供执行上下文信息:
Initial_Call
数据类型:Bool(布尔型,取值TRUE/FALSE)。
作用:标识 OB1 是否为首次调用(如 PLC 启动时、OB1 第一次执行时,该值为TRUE;之后循环执行时为FALSE)。
典型用法:用于 “仅启动时执行一次” 的初始化逻辑(如变量复位、设备初始状态设置)。
Remanence
数据类型:Bool
作用:标识 “保持性数据是否可用”(掉电后仍能保存的变量称为 “保持性数据”,若系统存在这类数据,RemanenceTRUE)。
典型用法:判断系统是否有历史保持数据,从而决定是否需要恢复设备状态(如生产线重启时,是否沿用上次的工艺参数)。

2. Temp(临时变量区)

界面显示<新增>,表示暂未定义具体临时变量。
临时变量的特性:仅在 OB1本次执行周期内有效,执行完成后会被自动清空。
典型用法:存储中间计算结果(如逻辑运算的临时值、循环计数的中间变量),数据类型可根据需求自定义(如IntRealBool等)。

3. Constant(常量区)

Constant_1
数据类型:AOM_IDENT(模拟量输出模块标识类型,用于存储 AO 模块的硬件信息,如型号、版本、地址等)。
默认值:160(十六进制值0,是该类型的初始 / 默认编码)。
作用:固定标识某一模拟量输出(AO)模块,程序运行中其值不会改变,用于与 AO 模块相关的硬件诊断、组态逻辑(如通过该常量识别特定 AO 模块,读取其状态或配置)。

整体总结

OB1 的接口区通过 “输入变量” 获取执行上下文(首次调用、保持性数据状态),“临时变量” 支持中间计算,“常量” 则用于固定关联硬件标识等静态信息,共同为 OB1 的逻辑执行提供数据基础。
2.函数块
要分析博途 ** 函数块(FB1)** 的接口区域,需针对 Input、Output、InOut、Static、Temp、Constant 六个部分,分别说明其功能、特性与典型用法:
1. Input(输入区)
功能:接收外部(如 OB1、其他块)传递的输入参数,为 FB 的逻辑执行提供 “原材料”。
特性:
「只读」:FB 内部只能读取 Input 变量,无法修改其值;
「调用时传递」:每次调用 FB 时,由调用方(如 OB1)传入数据,不同调用可传递不同值。
典型用法:
传递控制命令(如 Start : Bool,表示 “启动 FB 逻辑”);
传递工艺参数(如 Setpoint : Real,表示 “目标设定值”)。
2. Output(输出区)
功能:向外部传递 FB 执行后的结果参数,是 FB 逻辑的 “产出”。
特性:
「只写」:FB 内部为 Output 变量赋值,外部(调用方)通过读取获取结果;
「存储在背景 DB」:结果会保存在 FB 的背景数据块中,即使 FB 执行结束也能被外部访问。
典型用法:
传递执行状态(如 Running : Bool,表示 “FB 是否正在运行”);
传递计算结果(如 ActualValue : Real,表示 “FB 计算后的实际值”)。
3. InOut(输入输出区)
功能:实现双向数据交互(既接收外部数据,又向外部反馈修改后的数据)。
特性:
「可读可写」:FB 内部可修改 InOut 变量的值,且修改后会同步到背景数据块,外部能获取更新后的值;
「带状态交互」:适合需要 “传递并更新状态” 的场景(如变量需要被 FB 持续修改)。
典型用法:
传递需被 FB 修改的变量(如 Counter : Int,FB 内部进行计数,外部读取更新后的计数值)。
4. Static(静态变量区)
功能:存储 FB 的内部持久化状态,数据保存在 FB 的背景数据块中。
特性:
「持久化」:只要背景数据块存在,Static 变量的值会被长期保存(即使 FB 执行完成、甚至 PLC 重启后,若配置了 “保持” 也能保留);
「内部可见」:仅在 FB 内部可见和操作,外部无法直接访问(需通过 FB 接口间接影响)。
典型用法:
存储 FB 的运行状态(如 CycleCount : Int,记录 FB 被调用的次数);
存储需要长期保留的中间结果(如 HistoryValue : Real,用于趋势分析的历史数据)。
5. Temp(临时变量区)
功能:存储 FB 执行过程中的临时计算数据。
特性:
「临时有效」:仅在 FB本次执行周期内有效,执行完成后会被自动清空,下次调用重新初始化;
「存于 L 栈」:存储在 PLC 的 “局部数据栈(L 栈)” 中,不占用背景数据块空间。
典型用法:
存储中间计算结果(如 TempSum : Real,用于临时求和运算);
存储循环变量(如 i : Int,用于 For 循环的计数)。
6. Constant(常量区)
功能:存储 FB 内部使用的固定值。
特性:
「不可修改」:定义后值永久固定,FB 内部和外部都无法改变;
「内部复用」:用于 FB 逻辑中需要 “固定参数” 的场景(如算法的比例系数、阈值等)。
典型用法:
存储算法固定参数(如 Kp : Real := 2.5,表示 PID 控制的比例常数);
存储设备固有属性(如 MaxSpeed : Int := 1000,表示设备最大转速)。
整体逻辑
FB 的接口区域分工明确:
Input/Output/InOut 负责块间数据交互,实现模块化的 “输入 - 处理 - 输出”;
Static 负责内部状态持久化,让 FB 具备 “记忆能力”;
Temp 负责临时计算,优化内存使用;
Constant 负责固定参数存储,确保逻辑的稳定性。
截图中各区域显示 <新增>,说明 FB1 暂未定义具体变量,处于 “初始编辑状态”,需根据实际功能需求,在对应区域添加变量(如数据类型、名称、默认值等),以实现模块化的控制逻辑(如电机控制、PID 调节等带状态记忆的场景)。
3.函数
要分析博途 ** 函数(FC1)** 的接口区域,需针对 Input、Output、InOut、Temp、Constant、Return 六个部分,分别说明其功能、特性与典型用法:
1. Input(输入区)
功能:接收外部(如 OB1、其他块)传递的输入参数,为 FC 的逻辑执行提供 “原材料”。
特性:
「只读」:FC 内部仅能读取 Input 变量,无法修改其值;
「调用时传递」:每次调用 FC 时,由调用方(如 OB1)传入数据,不同调用可传递不同值;
「无持久存储」:因 FC 无背景数据块,Input 值仅在本次调用周期内有效。
典型用法:
传递控制命令(如 Start : Bool,表示 “启动 FC 逻辑”);
传递工艺参数(如 Setpoint : Real,表示 “目标设定值”)。
2. Output(输出区)
功能:向外部传递 FC 执行后的结果参数,是 FC 逻辑的 “产出”。
特性:
「只写」:FC 内部为 Output 变量赋值,外部(调用方)通过读取获取结果;
「无持久存储」:因 FC 无背景数据块,Output 值仅在本次调用周期内有效,下次调用需重新生成结果。
典型用法:
传递执行状态(如 Running : Bool,表示 “FC 是否正在运行”);
传递计算结果(如 ActualValue : Real,表示 “FC 计算后的实际值”)。
3. InOut(输入输出区)
功能:实现双向数据交互(既接收外部数据,又向外部反馈修改后的数据)。
特性:
「可读可写」:FC 内部可修改 InOut 变量的值,且修改后会传递回外部调用方;
「无持久存储」:因 FC 无背景数据块,InOut 的修改仅在本次调用周期内有效,下次调用需重新传递变量。
典型用法:
传递需被 FC 修改的变量(如 Counter : Int,FC 内部递增计数后,外部读取更新后的计数值)。
4. Temp(临时变量区)
功能:存储 FC 执行过程中的临时计算数据。
特性:
「临时有效」:仅在 FC本次执行周期内有效,执行完成后自动清空(存储在 PLC“局部数据栈(L 栈)” 中);
「无持久存储」:不占用背景数据块(FC 无背景 DB),下次调用重新初始化。
典型用法:
存储中间计算结果(如 TempSum : Real,用于临时求和运算);
存储循环变量(如 i : Int,用于 For 循环的计数)。
5. Constant(常量区)
功能:存储 FC 内部使用的固定值。
特性:
「不可修改」:定义后值永久固定,FC 内部和外部都无法改变;
「全局复用」:用于 FC 逻辑中需要 “固定参数” 的场景(如算法系数、阈值等)。
典型用法:
存储算法固定参数(如 Kp : Real := 2.5,表示 PID 控制的比例常数);
存储设备固有属性(如 MaxSpeed : Int := 1000,表示设备最大转速)。
6. Return(返回值区)
功能:为 FC 提供单个返回值(类似编程语言的 “函数返回值”)。
特性:
「唯一返回」:FC 仅能有一个Return 值,数据类型可自定义(截图中当前为 Void,表示 “无返回值”,可修改为Int、Real、Bool等类型);
「调用时获取」:外部调用 FC 时,通过 “读取 FC 的返回值” 获取核心结果。
典型用法:
数学计算函数返回结果(如 Calculate : Real,返回 Real 型的计算值);
逻辑判断函数返回真假(如 IsValid : Bool,返回 Bool 型的判断结果)。
整体逻辑与特点
FC(函数)的核心特点是无背景数据块,因此所有接口变量(Input/Output/InOut/Temp/Constant)均为 “单次调用有效”,不具备 “持久化状态记忆” 能力。
截图中各区域显示 <新增>,说明 FC1 暂未定义具体变量,处于 “初始编辑状态”。需根据实际功能需求(如数学计算、逻辑判断、简单信号处理等无状态依赖的场景),在对应区域添加变量(指定名称、数据类型、默认值、注释等),以实现模块化的通用逻辑。
以上就是TIA Portal V20 博途软件西门子PLC全部变量数据类型的解释说明与用法功能,感谢您阅读到这里,希望你越来越优秀!
如果你认为文章对你帮助很大,期盼您的鼓励和支持!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

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

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码