核心内容摘要
绝美东方韵!黑色双开叉旗袍教师穿搭指南_1
写CoDeSys程序的第一步必然是声明变量/常量而所有声明都离不开数据类型。
CoDeSys的标准数据类型完全遵循IEC
标准共分为布尔、整型、实数、字符串、时间5大类是所有PLC程序的“基础积木”。
很多新手容易踩坑比如把整型赋值给布尔型导致编译报错、字符串未指定长度浪费内存、时间类型格式写错无法运行……这篇文章就把5大类标准数据类型的关键字、位数、取值范围、核心用法和避坑点讲透搭配实战案例看完就能直接用。
布尔类型BOOLPLC程序的“开关”布尔类型是PLC中使用频率最高的类型仅表示两种状态TRUE(
或FALSE(
对应现场的“开关量”——比如传感器信号、阀门状态、电机启停信号。
核心参数占用8位内存注意不是1位仅最低位有效赋值规则只能赋TRUE/FALSE或0/1赋值整型会报C0032转换错误避坑重点若内存最低位置1如2#00000001为TRUE置0为FALSE其他值会显示INVALID布尔数组不节省内存A:ARRAY[
.7] OF BOOL会占用8个8位字节而非1个字节。
实战案例与逻辑结果赋值
整型无小数点数值的“全家桶”记规律不用死记硬背整型是CoDeSys标准类型中成员最多的类别用于表示无小数点的整数核心分有符号和无符号前缀有固定规律记住再也不用翻手册UUnsigned无符号全部位存数据无符号位SShort短整型8位DDouble双整型32位LLong长整型64位。
核心整型分类常用类型关键字位数取值范围适用场景无符号字节BYTE80~255单字节数据、寄存器状态有符号整型INT
~32767常规整数运算、小范围计数无符号双整型UDINT320~4294967295大范围无符号计数、地址存储长整型LINT
^63~2^
超大范围数据运算有符号vs无符号核心区别无符号所有位存储数据正数范围更大如UINT0~65535有符号最高位为符号位0正1负正数范围缩小一倍如INT-32768~32767。
实战案例整型运算
实数REAL/LREAL处理小数的“专用工具”指数形式超实用实数也叫浮点数用于表示带小数点的数值比如温度、压力、流量等模拟量CoDeSys支持两种REAL32位取值范围
175494351e-
3
402823466e38满足常规模拟量运算LREAL64位高精度取值范围更大需确认目标PLC支持部分设备会转换为REAL导致精度丢失。
两种赋值形式十进制小数rTemp:
2
6;直接赋值直观指数形式rTemp:
56e1;等价于
2
6适合超大/超小数值✅ 规范写法e前有数字e后为整数如123e3❌ 错误写法e
3、
1e
5。
字符串STRING字符处理的关键按需定义节省内存字符串用于存储字符序列如设备名称、故障信息关键字STRING核心特点是可指定长度这是节省PLC内存的关键存储规则实际占用内存 定义长度1个字节额外1字节存结束符默认规则未指定长度时系统默认分配80个字符占用81字节截断规则赋值字符串长度超过定义值从右至左自动截断。
避坑与优化技巧若程序中有大量短字符串如设备编号、状态描述务必指定长度避免内存浪费字符串常量必须用单引号包裹如Hello CoDeSys。
实战案例1默认长度字符串浪费内存实战案例2指定长度字符串优化内存
时间数据类型PLC的“时钟”4种类型适配不同场景时间类型用于处理时间、时刻、日期内部以双字DWORD存储共4种格式有严格要求写错直接编译报错核心参数如下类型关键字精度取值范围格式示例时间TIME毫秒071582m47s295msT#3d19h27m41s1ms时刻TIME_OF_DAY/TOD毫秒0:0:01193:02:
4
295TOD#21:32:
2
123日期DATE天
D#
日期时间DATE_AND_TIME/DT秒
06:28:15DT#
:22:31核心用法与避坑时间TIME必须以T#/t#开头单位按d→h→m→s→ms排序可自动溢出校正如T#3d29h→T#4d5h❌ 错误15ms缺T#、t#4ms13d顺序错时刻TOD按时:分:秒.毫秒格式如TOD#10:05:
0
500日期DATE按年-月-日格式如D#
日期时间DT按年-月-日-时:分:秒格式毫秒可省略。
实战案例时间类型赋值
总结标准数据类型是CoDeSys程序的“地基”核心原则是**“按需选择”**开关量用BOOL整数运算用整型优先选匹配取值范围的类型节省内存模拟量用REAL/LREAL字符处理用STRING务必指定长度时间/日期用专用时间类型严格遵循格式要求。
下一篇我们将讲解CoDeSys的标准扩展数据类型——联合体、长时间、宽字符串、引用、指针这些高级类型能解决更复杂的编程问题比如字节整合、高精度计时、间接访问内存等敬请期待