codesys 使用占位符定义界面变量显示格式
在编程中我们会使用各种类型的变量进行逻辑运算,不同类型其默认数据精度取值不一样,比如浮点型变量文本占位符为 %f
默认小数位数 6 位,但实际只想显示 3 位小数,此时就需要将界面变量的占位符进行设置以满足需求。
int 整型
语法:
% <标记> <最小显示数字个数> <类型>
- 标记:定义数据显示模式,可选项:
-
当定义最小显示数字个数时 居左显示,+
显示数据正负号,0
当定义最小显示数字个数时空缺位显示 0 - 最小显示数字个数:定义最少占据几个数字空间,默认数据位数不够时留空
- 类型:显示数据类型,如:
d
十进制,b
二进制,o
八进制,x
十六进制
示例:
%-5d:最小显示位数5位,且居左对齐显示,例如数据值为123时:`123 `
%+d:显示数据正负号,例如数据值为123时:`+123`
%05d:最小显示位数5位,且空缺位显示0,例如数据值为234时:`00234`
%08b:显示8位数的二进制模式,例如数据值为255时:`11111111`
%04x:显示4位数的十六进制模式,例如数据值为15时:`000f`
float 浮点型
语法:
% <标记> <最小显示数字个数> . <精度> f
- 标记:定义数据显示模式,可选项:
-
当定义最小显示数字个数时 居左显示,+
显示数据正负号,0
当定义最小显示数字个数时空缺位显示 0 - 最小显示数字个数:定义最少占据几个数字空间,包括小数位,默认数据位数不够时留空,不定义时默认为
%1.6f
- 精度:小数位的显示精度
示例:
%-12.9f:显示12位数字 9位小数,且居左显示
%+6.3f:显示6位数字3位小数,且显示正负号标记
%06.3f:显示6位数字3位小数,且空缺位补0显示
时间类型
语法:
%t[ <text> <time in unit> <text> ]
示例:
// 定义一个时间变量并给其赋值
ltTimeSpan : LTIME := LTIME#1D2H3M4S5MS6US7NS;
在一个 label 中定义:
text variable 设置:PLC_PRG.ltTimeSpan
text 占位符设置:Time span: %t[d] d
输出结果:Time span: 1 d
可用的占位符:%t[d]
天,%t[dd]
两位数字的天,%t[H]
小时,%t[HH]
两位数字小时,%t[m]
分钟,%t[mm]
两位数分钟,%t[s]
秒,%t[ss]
两位数秒。
也可以组合起来使用:
TEXT 占位符设置:%t[Value: dd-HH:mm:ss:ms:us:ns]
输出结果:Value: 01-02:03:04:005:006:007
如果不定义 label 的 text variable 属性,则会输出系统当前时间。
日期类型
语法:
%t[ <date and time unit> ]
和时间类型类似的用法,下面举例说明:
//定义一个 date 类型变量
dateBy : DATE := DATE#2021-02-12;
在一个 label 中定义:
text variable 设置:PLC_PRG.dateBy
text 占位符设置:Date: %t[yyyy-MM-dd dddd]
输出结果:Date: 2/12/2021 Friday
可用占位符:%t[yyyy] 年,%t[yy] 两位数年,%t[y]一位数年,%t[MMMM] 英文月份,%t[MMM]英文简写月份,%t[MM]月份,%t[ddddd] 一周的第几天,%t[dddd]英文周几,%t[dd]一个月的第几天,%t[jjj]一年中的第几天,
如果不定义 label 的 text variable 属性,则会输出系统当前日期。
字符
语法:
%s
参考链接
Placeholders with Format Definition
标签:无