TwinCAT 3 Tc2_Utilities库核心内容

TwinCAT 3 Tc2_Utilities库核心内容

功能块(3.1-3.82)函数(4.1-4.72) ,聚焦TwinCAT系统控制、数据转换、文件/内存操作、网络配置等核心能力,适配TwinCAT v3.1.0及以上版本,支持PC/CX(x86/x64/ARM)平台
gongkongbxs整理

3. 功能块(3.1-3.82)

功能块按应用场景分类,通用输出包含
BUSY
(运行状态)、
ERR
(错误状态)、
ERRID
(错误码),核心用途覆盖系统、数据、文件、网络等多场景。

3.1 数据转换类功能块

聚焦数据格式转换与时间解码,适配基础数据处理场景:

功能块名称 核心用途 关键输入 关键输出
BCD_TO_DEC(3.1) BCD码转十进制,含数值校验 BIN(BCD字节)、START(触发) DOUT(十进制结果)
DEC_TO_BCD(3.4) 十进制转BCD码,含数值校验 DIN(十进制字节)、START(触发) BOUT(BCD结果)
DCF77_TIME(3.2) 解码DCF77无线电时钟信号(已被EX版本替代) DCF_PULSE(信号)、RUN(启动) CDT(日期时间)、READY(有效标识)
DCF77_TIME_EX(3.3) 增强型DCF77解码,含时区/夏令时识别 DCF_PULSE(信号)、RUN(启动)、TLP(脉冲阈值) CDT(日期时间)、DOW(星期)、TZI(时区)

3.2 系统配置与管理类功能块

用于TwinCAT系统、路由、注册表、时区等配置:

功能块名称 核心用途 关键特性
FB_AddRouteEntry(3.6) 添加AMS路由器连接 支持本地/远程系统,输入目标NetID和路由参数
FB_RemoveRouteEntry(3.51) 删除AMS路由器连接 按连接名称删除,支持本地/远程系统
FB_RegQueryValue(3.49) 读取Windows注册表值 访问HKEY_LOCAL_MACHINE分支,支持各类数据类型
FB_RegSetValue(3.50) 写入Windows注册表值 自动适配64位系统WOW6432Node路径
FB_GetTimeZoneInformation(3.33) 读取操作系统时区设置 输出时区结构和夏令时信息
FB_SetTimeZoneInformation(3.53) 设置操作系统时区 输入时区结构,支持自定义时区参数

3.3 文件与内存操作类功能块

处理文件读写、CSV解析、内存缓冲区管理:

功能块名称 核心用途 关键特性
FB_CSVMemBufferReader(3.11) 解析缓冲区中CSV格式数据 按CRLF分隔数据集,支持字符串/字节流输出
FB_CSVMemBufferWriter(3.12) 生成CSV格式数据到缓冲区 自动添加字段分隔符,支持字符串/二进制数据
FB_FileRingBuffer(3.17) 文件环形缓冲区(FIFO) 支持数据覆盖/溢出报错,读写老数据优先
FB_MemRingBuffer(3.46) 内存环形缓冲区(FIFO) 动态存储不同长度数据集,支持复位/查询计数
FB_MemBufferMerge(3.44) 合并多个小数据段为大数据段 输入目标缓冲区和多个数据段,输出合并结果
FB_MemBufferSplit(3.45) 拆分大数据段为多个小数据段 按指定长度拆分,输出分段结果和结束标识

3.4 授权与许可证管理类功能块

用于许可证状态查询、加密狗操作:

功能块名称 核心用途 关键输入/输出
FB_CheckLicense(3.10) 查询TwinCAT 3许可证状态 输入许可证GUID,输出许可证有效性数据
FB_GetLicenses(3.28) 读取有效/无效TwinCAT许可证 输出许可证列表及数量统计
FB_GetLicensesEx(3.29) 扩展许可证查询(含OEM/演示许可证) 区分有效/挂起/演示/OEM/失效许可证
FB_LicFileCopyToDongle(3.37) 从硬盘复制文件到许可证加密狗 支持USB/EL6070加密狗,需访问密码
FB_LicFileRead(3.41) 从加密狗读取文件到缓冲区 输入文件名和缓冲区地址,输出读取字节数

3.5 PLC与TwinCAT系统控制类功能块

控制PLC运行、TwinCAT状态监控与配置:

功能块名称 核心用途 关键输入/输出
PLC_Start/PLC_Stop/PLC_Reset(3.71-3.73) PLC运行/停止/复位 输入目标NetID和端口,控制PLC runtime状态
TC_Config(3.77) TwinCAT系统切换到CONFIG模式 支持本地/远程系统,运行中系统先停后切
TC_CpuUsage(3.78) 查询TwinCAT系统CPU使用率 输出当前CPU占用百分比(%)
TC_SysLatency(3.81) 查询TwinCAT系统延迟时间 输出当前延迟和最大延迟(单位:μs)
WritePersistentData(3.82) 保存PLC持久化变量到文件 输入PLC端口,将变量值写入.bootdata文件

3.6 网络与主机信息类功能块

查询网络适配器、主机名、IP等网络信息:

功能块名称 核心用途 关键输入/输出
FB_GetAdaptersInfo(3.21) 读取网络适配器信息 输出适配器IP、MAC地址等属性列表
FB_GetHostName(3.26) 读取本地/远程主机名 输入目标NetID,输出主机名字符串
FB_GetHostAddrByName(3.25) 按主机名查询IPv4地址 输入主机名,输出IP字符串和字节数组
GetRemotePCInfo(3.59) 读取TwinCAT路由器配置的远程PC信息 输出远程PC的NetID和名称列表

3.7 时间同步与时钟类功能块

实现系统时间、RTC时钟的同步与管理:

功能块名称 核心用途 关键特性
FB_LocalSystemTime(3.43) 同步Windows系统时间到PLC 支持周期性同步,输出时区和本地时间
RTC/RTC_EX/RTC_EX2(3.74-3.76) 软件实时时钟 基础版(秒级)、增强版(毫秒级)、高级版(微秒级)
NT_GetTime(3.61) 读取Windows本地系统时间 输出年/月/日/时/分/秒/毫秒结构化数据
NT_SetLocalTime(3.63) 设置Windows本地系统时间 输入结构化时间数据,同步系统时钟

3.8 其他功能块

涵盖PID控制、性能分析、系统操作等:

FB_BasicPID(3.9):简单PID控制器,输入设定值/实际值/参数(Kp/Tn/Tv/Td),输出控制量。Profiler(3.73):测量PLC代码执行时间,输出单次/最小/最大/平均执行时间(μs)。FB_ScopeServerControl(3.52):控制Scope Server数据记录,支持启动/停止/保存配置。NT_Shutdown/NT_Reboot(3.65-3.62):Windows系统关机/重启,支持延迟执行。


4. 函数(4.1-4.72)

函数按功能分类,聚焦数据转换、字符串操作、字节序处理等基础能力,无复杂状态管理,直接输入输出数据。

4.1 时间函数(4.1.1-4.1.18)

处理日期时间格式转换与时间计算:

函数名 核心用途 输入/输出
DT_TO_FILETIME(4.1.1) DATE_AND_TIME转FILETIME格式 输入:DT → 输出:T_FILETIME
FILETIME_TO_DT(4.1.11) FILETIME转DATE_AND_TIME格式 输入:T_FILETIME → 输出:DT
F_GetDayOfWeek(4.1.4) 计算指定日期的星期(1=周一~7=周日) 输入:DT → 输出:星期数(WORD)
F_GetWeekOfTheYear(4.1.8) 计算指定日期的年度周数(ISO 8601) 输入:DT → 输出:周数(WORD)
F_YearIsLeapYear(4.1.10) 判断是否为闰年 输入:年份(WORD) → 输出:BOOL(是/否)

4.2 扩展字符串函数(4.2.1-4.2.28)

支持字符串拼接、修改、编码转换等增强操作:

函数名 核心用途 关键特性
CONCAT2(4.2.2) 拼接两个字符串,支持长度校验 避免溢出,超长时截断并返回状态
FIND2(4.2.5) 在字符串中查找子串,支持重复匹配 返回首次匹配位置,未找到返回0
FindAndReplace(4.2.8) 查找并替换字符串中指定子串 支持多次替换,返回替换次数
STRING_TO_UTF8(4.2.16) 字符串转UTF-8编码 输入字符串指针,输出UTF-8字节流
UTF8_TO_STRING(4.2.19) UTF-8编码转字符串 跳过未知字符,超长时截断
WSTRING_TO_STRING2(4.2.26) 宽字符串转普通字符串 不支持字符自动跳过,返回转换状态

4.3 字节序转换函数(4.3.2-4.3.11)

实现主机与网络字节序互转(适配网络通信):

函数名 核心用途 数据长度
HOST_TO_BE16/BE32/BE64(4.3.2-4.3.4) 主机字节序转网络字节序 16位/32位/64位( legacy类型)
HOST_TO_BE64EX(4.3.5) 主机字节序转网络字节序 64位(原生LWORD类型)
BE16_TO_HOST/BE32_TO_HOST(4.3.7-4.3.8) 网络字节序转主机字节序 16位/32位
BE64_TO_HOSTEX(4.3.10) 网络字节序转主机字节序 64位(原生LWORD类型)

4.4 浮点与复数函数(4.4.1-4.5.2)

处理浮点/复数与其他类型转换、有效性检测:

函数名 核心用途 输入/输出
BOOL_TO_FLOAT/FLOAT_TO_BOOL(4.4.1/4.4.3) 布尔值与浮点值互转 布尔→浮点(1.0/0.0),浮点非0→TRUE
LrealIsFinite(4.4.16) 检测LREAL是否为有限值 输入:LREAL → 输出:BOOL(有限/无限)
LrealIsNaN(4.4.17) 检测LREAL是否为无效值(NaN) 输入:LREAL → 输出:BOOL(是/否)
LcomplexAbs(4.5.2) 计算复数的绝对值 输入:LCOMPLEX → 输出:LREAL(绝对值)
LcomplexIsNaN(4.5.1) 检测复数是否为无效值(NaN) 输入:LCOMPLEX → 输出:BOOL(是/否)

4.5 指针转换函数(4.6.1-4.6.26)

读取各类指针变量的实际内容:

函数名 核心用途 输入/输出
PBOOL_TO_BOOL(4.6.1) 读取BOOL指针指向的内容 输入:POINTER TO BOOL → 输出:BOOL
PBYTE_TO_BYTE(4.6.2) 读取BYTE指针指向的内容 输入:POINTER TO BYTE → 输出:BYTE
PDT_TO_DT(4.6.5) 读取DATE_AND_TIME指针指向的内容 输入:POINTER TO DT → 输出:DT
PSTRING_TO_STRING(4.6.16) 读取STRING指针指向的内容 输入:POINTER TO STRING → 输出:STRING

4.6 其他函数(4.7.1-4.72)

涵盖校验和、GUID转换、数据与字符串互转等:

函数名 核心用途 关键特性
F_CheckSum16(4.30) 计算16位校验和 输入数据缓冲区,输出校验和结果
DATA_TO_HEXSTR(4.21) 二进制数据转十六进制字符串 支持指定长度,输出格式化字符串
HEXSTR_TO_DATA(4.45) 十六进制字符串转二进制数据 输入字符串,输出数据缓冲区
GUID_TO_STRING(4.41) GUID结构转字符串 输出标准格式GUID字符串(含连字符)
STRING_TO_GUID(4.62) 字符串转GUID结构 支持标准格式字符串解析
DEG_TO_RAD/RAD_TO_DEG(4.22/4.58) 角度与弧度互转 输入角度/弧度值,输出对应转换结果

© 版权声明

相关文章

暂无评论

none
暂无评论...