加入QQ群
售前咨询
18604058908
售后热线
13166668196
微信扫一扫
关注沈阳菲尔德
获取更多免费产品
 
Language

HART现场总线设备描述语言(DDL)中的常量和文字

 来源: |  阅读:1979次 |  2022/4/21 9:44:30

HART现场总线的设备描述语言DDL支持常量,这些常量包括了整数、浮点类型的常量和字符串文本。

整数常数

整数常量是一系列没有小数点或指数的数字。整型常数可能有一个后缀,指示其类型以及整数是有符号的还是无符号的。整数常数可以用十进制、十六进制、八进制或二进制表示法指定,如下所示:

十进制整数常量(以10为基数)是十进制数字0到9的非空序列,不是以0开头。十六进制整数常量(以十六进制为基数)是以0x或0x开头的十六进制数字。十六进制数字是0到9和字母a到f(或a到f)的值分别为10到15。八进制整数常量(以8为基数)是以0开头的数字0到7的非空序列。二进制整型常量是一个非空的二进制数字序列,其前面有0和1,后面有0b或0b。十进制整数常量默认为有符号,而十六进制和八进制常量默认为有符号没有签名。整数常量可以通过使用u或u后缀强制为无符号。默认情况下,整数常量采用可以表示的最小类型(即int、long int)它的价值。l或l后缀可用于强制将整数常量存储为长字符串。

浮点常数

浮点常量有四个部分,一个整数部分,一个小数点(.),一小部分,一个指数部分。


整数和小数部分是十进制数字序列。指数部分可能是有符号的前接字母e或e的十进制数字序列。整数部分或小数部分部分可能缺失,但并非两者都缺失;小数点或指数部分可能缺失,但不是两者都有。浮点常量默认为double,除非后跟f或f后缀(即常量为输入float)。包括l或l后缀的浮点常量为双精度类型。

字符串文字

DD中的字符串文字应使用ISO拉丁语-1(ISO 8859-1)或UTF-8(RFC 3629)进行编码。在给定的DD中,所有字符串文字必须使用相同的编码。字符串文字可能是空的用双引号(“)括起来的字符序列。括起来的字符可以是任何字符除了双引号、反斜杠或换行符。字符串文字的定义如下:

字符串常量还可以包含表示字符的转义序列。转义符号的定义如下:

符号 含义
\’ ' 单引号
\a 警报
\" " 双引号
\f 格式提要
\| 垂直分隔符
\n 新行
\? 问题
\r 回车
\\ 反斜杠
\t 水平缩进
\b 回退
\v 垂直标签

 

语言编码

还有另一个转义序列叫做语言代码。语言代码由竖条(|)组成后跟两个字母的语言代码(根据ISO规范639),可选后跟空格和两个字母的国家代码(符合ISO 3166),表示语言的方言。语言代码序列由另一个垂直条终止。这次指定字符串的语言,直到下一个语言代码。因此,字符串文本可以封装给定短语的所有翻译。不包含语言代码的字符串文字是英语(|en |)字符串。如果字符串文本不包含所有语言的翻译,那么英语将用于未指定的语言。一些典型的语言代码是:

  • |en| English
  • |it| Italian
  • |fr| French
  • |de| German
  • |es| Spanish
  • |zh| Chinese
  • |jp| Japanese

注:在HART设备描述语言的老版本(第11.0版之前),语言代码由竖条(|)组成后跟三个十进制数字。为了保持向后兼容性,有三种代码继续获得认可:|001(English)|049(German);和|033(French)。这种方法不建议在新开发中使用指示语言。

特殊方言:缩写字符串和标签根据ISO 3166,方言代码“zz”可用于实现特定含义。对于DDL,“zz”方言代码应表明该字符串是缩写或缩短的字符串。例如,一个DD开发者可以提供标准的英文翻译(即| en |)和缩写版本适用于手持主机(即| en zz |)。当不存在时,主机应用程序应默认为适合当前语言环境的字符串。

罗马和片假名

罗马字是用拉丁字母表示日语的标准。当|kt|遇到语言代码序列,后面的字符是罗马字符序列表示片假名字形(每个片假名字形2-3个字符)。此外,拉丁字符可能会通过使用.b.(开始)和.e.(结束)序列