最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【记录】查询Hart的DDL文件中的COMMAND中的RESPONSE_CODES的[no_command_specific_errors]值到底是多少

EDDL crifan 2343浏览 0评论

【背景】

得到了某个Hart设备的eddl文件,其中有对应的COMMAND的定义:

COMMAND    set_actuator_function
{ 
...
    RESPONSE_CODES
    {
            0,  SUCCESS,                [no_command_specific_errors];
            2,  DATA_ENTRY_ERROR,       [invalid_selection];         
            3,  DATA_ENTRY_ERROR,       [passed_parameter_too_large];
            4,  DATA_ENTRY_ERROR,       [passed_parameter_too_small];
            5,  MISC_ERROR,             [too_few_data_bytes_recieved];
            6,  MISC_ERROR,             [xmtr_specific_command_error];
            7,  MODE_ERROR,             [in_write_protect_mode];
            9,  DATA_ENTRY_ERROR,       [lower_range_value_too_high];
            10, DATA_ENTRY_ERROR,       [lower_range_value_too_low]; 
            11, DATA_ENTRY_ERROR,       [upper_range_value_too_high];
            12, DATA_ENTRY_ERROR,       [upper_range_value_too_low]; 
            13, DATA_ENTRY_ERROR,       [URV_and_LRV_out_of_limits]; 
            14, DATA_ENTRY_ERROR,       [span_too_small];            
            16, MODE_ERROR,             [access_restricted];       
    } 
}

 

现在,想要搞懂,对应的[no_command_specific_errors]的值,到底是多少。

【折腾过程】

1.网上搜了一堆。

发现别的,很多人,写的ddl文件中:

HART Device Description Language: an example

SIHASTIDENT01.inc

等等,也是用了同样的写法。

所以很明显,这个是那个import类型的值,是导入的官网实现定义好的值。

2。后来在:

Thermal Mass Flowmeter Sensyflow FMT500-IG HART protocol 6.0 Valid for software levels from 1.85

中看到,具体的字符串的解释是:

Response Codes  0 No Command-Specific Errors
                6 Transmitter-Specific Command Error
                8 Warning: Update Failure
                16 Access Restricted
                32 Busy 

所以猜测,难道就只是个对应的字符串:

“No Command-Specific Errors”

而已?

 

【总结】

后来的后来,经过别人的解释,终于明白了:

[hello]

之类的东西,中的hello,是个字符串变量;

表示该字符串是个,和当前语言相关的字符串。

而该变量的值,是放在别的文件中定义的。比如某个xml文件中。

其中的定义,类似于这样的值:

en: "hello"

zh:"你好"

等等,

当,用于解析dd的,DD解析器,当前设置的是中文,则显示对应的中文的“你好”,而如果换成英文,则显示对应的"hello"

说白了,就是

xxx本身是,和语言无关的,单个字符串变量,是个固定的值;

而[xxx],用来支持多国语言的显示而已,可以根据语言不同,显示不同语言的字符串。

而对应的xxx的值,是放在另外的,专门的(比如xml)文件中定义的。

dd解析器,在解析dd文件时,会去加载对应的值的。

转载请注明:在路上 » 【记录】查询Hart的DDL文件中的COMMAND中的RESPONSE_CODES的[no_command_specific_errors]值到底是多少

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
90 queries in 0.175 seconds, using 22.04MB memory