前言ⅩⅢ
引言ⅩⅣ
1 范围1
2 规范性引用文件2
3 定义、缩略语及词法结构约定2
3.1 术语和定义2
3.2 缩略语和缩写词8
3.3 词法结构约定9
4 通用功能块(FB)定义和EDD 模型10
4.1 设备结构(设备模型) 10
4.2 块复合19
4.3 EDD 和EDDL 模型20
5 详细的块定义22
5.1 概述22
5.2 应用FB 22
5.3 组件FB 28
5.4 技术块28
5.5 设备(源)块36
5.6 对所有块都通用的算法38
6 FB环境39
7 对系统管理的映射39
8 对通信的映射39
9 电子设备描述语言41
9.1 总貌41
9.2 EDD 识别信息47
9.3 BLOCK 50
9.4 COLLECTION 54
9.5 COMMAND 56
9.6 CONNECTION 60
9.7 DOMAIN 61
9.8 EDIT_DISPLAY 61
9.9 IMPORT 63
9.10 LIKE 71
9.11 MENU 71
9.12 METHOD 80
9.13 PROGRAM 81
9.14 RECORD 81
9.15 REFERENCE_ARRAY 82
9.16 Relations 83
9.17 RESPONSE_CODES 84
9.18 VALUE_ARRAY 84
9.19 VARIABLE 85
9.20 VARIABLE_LIST 99
9.21 共同属性99
9.22 输出转移(OPEN 和CLOSE) 101
9.23 带条件的表达式102
9.24 引用102
9.25 字符串105
9.26 表达式107
9.27 文本字典111
10 一致性陈述112
附录A (规范性附录) 参数描述113
附录B (规范性附录) GB/T21099一致性申明119
附录C (规范性附录) EDDL 形式定义120
附录D (规范性附录) EDDL 内置函数库213
附录E (规范性附录) EDD 例子291
附录F (规范性附录) EDDL 和内置函数程序的行规308
图1 对于其他标准和产品GB/T21099系列的定位1
图2 由过程(P&ID 图)推导出的FB结构10
图3 可分布于设备之间的FB结构(根据GB/T19769.1-2005) 11
图4 GB/T21099FB可在不同设备中实现11
图5 设备的通用组件12
图6 GB/T21099的块类型12
图7 GB/T21099块总貌(非规范性的图形表示) 13
图8 设备模型的UML 分类图16
图9 测量过程信号流19
图10 执行过程信号流20
图11 应用过程信号流20
图12 EDD 生成过程21
图13 模拟量输入FB 23
图14 模拟量输出FB 24
图15 离散量输入FB 25
图16 离散量输出FB 26
图17 计算FB 27
图18 控制FB 28
图19 温度技术块29
图20 压力技术块32
图21 可调执行技术块33
图22 开/关执行技术块35
图23 Harel状态图37
图24 ISO OSI参考模型的应用结构39
图25 参照OSI参考模型的客户机/服务器关系40
图26 GB/T21099FB到APOs的映射40
图27 BLOCK_A 42
图28 COLLECTION 42
图29 COMMAND 43
图30 DOMAIN 43
图31 EDIT_DISPLAY 43
图32 LIKE 44
图33 MENU 44
图34 PROGRAM 45
图35 RECORD 45
图36 REFERENCE_ARRAY 45
图37 REFRESH 45
图38 UNIT 46
图39 WRITE_AS_ONE 46
图40 VALUE_ARRAY 46
图41 VARIABLE 46
图42 VARIABLE_LIST 47
图43 EDDL 导入机制63
图44 MENU 激活(ACCESSOFFLINE) 77
图45 输入新值后执行的动作77
图46 在MENU 的所有VARIABLE 输入被接受后执行的ACTION(ACCESSOFFLINE) 77
图47 执行方法78
图48 MENU 激活(ACCESSONLINE) 78
图49 动态VARIABLE 的循环读取(ACCESSONLINE) 79
图50 MENU 的所有VARIABLE 输入被接受后执行的ACTION(ACCESSONLINE) 79
图51 读写操作时间98
图E.1 使用EDD 操作员画面的例子291
表1 字段属性描述9
表2 GB/T21099和GB/T19769模型元素间的引用15
表3 变量和参数描述模板18
表4 Sensor_Type的温度传感器示例30
表5 设备状态的状态表36
表6 设备状态转换表37
表7 DD_REVISION 属性48
表8 DEVICE_REVISION 属性48
表9 DEVICE_TYPE 属性48
表10 EDD_PROFILE 属性49
表11 EDD_REVISION 属性49
表12 MANUFACTURER 属性49
表13 MANUFACTURER_EXT 属性49
表14 BLOCK_A 属性50
表15 CHARACTERISTICS属性51
表16 PARAMETERS属性51
表17 COLLECTION_ITEMS属性51
表18 EDIT_DISPLAY_ITEMS属性51
表19 MENU_ITEMS属性52
表20 METHOD_ITEMS属性52
表21 PARAMETER_LISTS的属性52
表22 REFERENCE_ARRAY_ITEMS属性52
表23 REFRESH_ITEMS属性53
表24 UNIT_ITEMS属性53
表25 WRITE_AS_ONE_ITEMS属性53
表26 BLOCK_B属性54
表27 NUMBER 属性54
表28 TYPE 属性54
表29 COLLECTION 属性55
表30 item?type 55
表31 COMMAND 属性56
表32 OPERATION 属性57
表33 TRANSACTION 属性57
表34 REPLY 属性58
表35 INDEX 属性58
表36 BLOCK_B属性59
表37 NUMBER 属性59
表38 SLOT 属性59
表39 CONNECTION 属性59
表40 HEADER 属性60
表41 MODULE 属性60
表42 CONNECTION 属性60
表43 APPINSTANCE 属性60
表44 DOMAIN 属性61
表45 HANDLING 属性61
表46 EDIT_DISPLAY 属性61
表47 EDIT_ITEMS属性62
表48 DISPLAY_ITEMS属性62
表49 PRE_EDIT_ACTIONS属性63
表50 导入设备描述64
表51 重定义属性65
表52 BLOCK_A 属性的重定义规则65
表53 BLOCK_B属性的重定义规则66
表54 COLLECTION 属性的重定义规则66
表55 COMMAND 属性的重定义规则67
表56 CONNECTION 属性的重定义规则67
表57 DOMAIN 属性的重定义规则67
表58 EDIT_DISPLAY 属性的重定义规则67
表59 MENU 属性的重定义规则68
表60 METHOD 属性的重定义规则68
表61 PROGRAM 属性的重定义规则69
表62 RECORD 属性的重定义规则69
表63 REFERENCE_ARRAY 属性的重定义规则69
表64 RESPONSE_CODES属性的重定义规则69
表65 VALUE_ARRAY 属性的重定义规则70
表66 VARIABLE 属性的重定义规则70
表67 VARIABLE_LIST 属性的重定义规则71
表68 LIKE 属性71
表69 MENU 属性72
表70 ITEMS属性73
表71 ACCESS属性73
表72 ENTRY 属性73
表73 POST_EDIT_ACTIONS属性74
表74 PURPOSE 属性75
表75 ROLE 属性76
表76 STYLE 属性76
表77 VALIDITY 属性76
表78 METHOD 属性80
表79 ACCESS属性80
表80 VALIDITY 属性81
表81 PROGRAM 属性81
表82 ARGUMENT 属性81
表83 RECORD 属性82 表84 REFERENCE_ARRAY 属性82
表85 ELEMENTS属性82
表86 REFRESH 属性83
表87 UNIT 属性83
表88 WRITE_AS_ONE 属性84
表89 RESPONSE_CODES属性84
表90 VALUE_ARRAY 属性85
表91 NUMBER_OF_ELEMENTS属性85
表92 TYPE 属性85
表93 VARIABLE 属性86
表94 CLASS属性86
表95 TYPE 属性88
表96 DOUBLE,FLOAT,INTEGER,UNSIGNED_INTEGER 属性89
表97 BIT_ENUMERATED 属性92
表98 状态类别属性92
表99 ALL、AO、DV、TV 属性93
表100 ENUMERATED 类型属性93
表101 INDEX 类型属性94
表102 objectreference 类型属性94
表103 DEFAULT_REFERENCE 属性94
表104 String类型属性95
表105 CONSTANT_UNIT 属性96
表106 HANDLING 属性96
表107 POST_EDIT_ACTIONS、PRE_EDIT_ACTIONS、POST_READ_ACTIONS、PRE_READ_ACTIONS、POST_WRITE_ACTIONS、PRE_WRITE_ACTIONS属性97
表108 READ/WRITE_TIMEOUT 属性98
表109 STYLE 属性98
表110 VALIDITY 属性99
表111 VARIABLE_LIST 属性99
表112 DEFINITION 属性99
表113 HELP属性100
表114 LABEL 属性100
表115 MEMBERS属性100
表116 RESPONSE_CODES属性101
表117 打开和关闭属性101
表118 IF、SELECT 条件102
表119 引用一个EDD 实例103
表120 引用RECORD 的元素103
表121 引用VALUE_ARRAY 的元素103
表122 引用COLLECTION 的元素103
表123 引用REFERENCE_ARRAY 的元素104
表124 引用VALUE_ARRAY 的元素104
表125 引用BLOCK_APARAMETERS的元素105
表126 引用BLOCK_APARAMETER_LISTS的元素105
表127 引用BLOCK_A CHARACTERISTICS 105
表128 字符串作为一个字符串文字106
表129 字符串作为字符串变量106
表130 字符串为一个列举值106
表131 字符串作为一个字典引用106
表132 引用EDD 实例的HELP和LABEL 属性107
表133 字符串操作107
表134 基本表达式107
表135 VARIABLE 的属性值108
表136 一元表达式108
表137 乘法操作符109
表138 加法操作符109
表139 移位操作符109
表140 关系操作符110
表141 等式操作符110
表142 文本字典属性111
表A.1 参数描述113
表B.1 一致性(子)条款选择表119
表B.2 (子)条款选择表内容119
表C.1 对于整型数的约定123
表C.2 在字符串文字中使用换码序列124
表C.3 字符串文字中使用的语言代码124
表C.4 EDDL 运算符125
表C.5 EDDL 关键字125
表D.1 内置函数词法元表素的格式213
表D.2 词法元表素的内容213
表D.3 内置函数abort 214
表D.4 内置函数abort_on_comm_errors 214
表D.5 内置函数ABORT_ON_ALL_COMM_STATUS 214
表D.6 内置函数ABORT_ON_ALL_DEVICE_STATUS 215
表D.7 内置函数ABORT_ON_ALL_RESPONSE_CODES 215
表D.8 内置函数abort_on_all_response_codes 216
表D.9 内置函数abort_on_comm_error 216
表D.10 内置函数ABORT_ON_COMM_ERROR 216
表D.11 内置函数ABORT_ON_COMM_STATUS 217
表D.12 内置函数ABORT_ON_DEVICE_STATUS 217
表D.13 内置函数ABORT_ON_NO_DEVICE 218
表D.14 内置函数ABORT_ON_RESPONSE_CODE 219
表D.15 内置函数abort_on_response_code 219
表D.16 内置函数ACKNOWLEDGE 219
表D.17 内置函数acknowledge 220
表D.18 内置函数add_abort_method(versionA) 220
表D.19 内置函数add_abort_method(versionB) 220
表D.20 内置函数assign 221
表D.21 内置函数assign_double 221
表D.22 内置函数assign_float 221
表D.23 内置函数assign_int 222
表D.24 内置函数assign_var 222
表D.25 内置函数atof 222
表D.26 内置函数atoi 223
表D.27 内置函数dassign 223
表D.28 内置函数DELAY 223
表D.29 内置函数delay 224
表D.30 内置函数DELAY_TIME 224
表D.31 内置函数delayfor 224
表D.32 内置函数DICT_ID 225
表D.33 内置函数discard_on_exit 225
表D.34 内置函数display 226
表D.35 内置函数display_builtin_error 226
表D.36 内置函数display_comm_error 226
表D.37 内置函数display_comm_status 227
表D.38 内置函数display_device_status 227
表D.39 内置函数display_dynamics 228
表D.40 内置函数display_message 228
表D.41 内置函数display_response_code 229
表D.42 内置函数display_response_status 229
表D.43 内置函数display_xmtr_status 229
表D.44 内置函数edit_device_value 230
表D.45 内置函数edit_local_value 231
表D.46 内置函数ext_send_command 231
表D.47 内置函数ext_send_command_trans 232
表D.48 内置函数fail_on_all_comm_errors 232
表D.49 内置函数fail_on_all_response_errors 233
表D.50 内置函数fail_on_comm_error 233
表D.51 内置函数fail_on_response_code 234
表D.52 内置函数fassign 234
表D.53 内置函数fgetval 234
表D.54 内置函数float_value 234
表D.55 内置函数fsetval 235
表D.56 内置函数ftoa 235
表D.57 内置函数fvar_value 235
表D.58 内置函数get_acknowledgement 236
表D.59 内置函数get_comm_error 236
表D.60 内置函数get_comm_error_string 237
表D.61 内置函数get_date 237
表D.62 内置函数get_date_value 238
表D.63 内置函数get_dds_error 238
表D.64 内置函数GET_DEV_VAR_VALUE 239
表D.65 内置函数get_dev_var_璤_H竉籣穇value 239
表D.66 内置函数get_dictionary_string 239
表D.67 内置函数get_double 240
表D.68 内置函数get_double_value 240
表D.69 内置函数get_float 241
表D.70 内置函数get_float_value 241
表D.71 内置函数GET_LOCAL_VAR_VALUE 242
表D.72 内置函数get_local_var_value 242
表D.73 内置函数get_more_status 242
表D.74 内置函数get_resolve_status 243
表D.75 内置函数get_response_code 243
表D.76 内置函数get_response_code_string 244
表D.77 内置函数get_signed 244
表D.78 内置函数get_signed_value 245
表D.79 内置函数get_status_code_string 245
表D.80 内置函数get_status_string 246
表D.81 内置函数get_stddict_string 246
表D.82 内置函数get_string 247
表D.83 内置函数get_string_value 247
表D.84 内置函数GET_TICK_COUNT 248
表D.85 内置函数get_unsigned 248
表D.86 内置函数get_unsigned_value 248
表D.87 内置函数iassign 249
表D.88 内置函数igetval 249
表D.89 内置函数IGNORE_ALL_COMM_STATUS 250
表D.90 内置函数IGNORE_ALL_DEVICE_STATUS 250
表D.91 内置函数IGNORE_ALL_RESPONSE_CODES 250
表D.92 内置函数IGNORE_COMM_ERROR 251
表D.93 内置函数IGNORE_COMM_STATUS 251
表D.94 内置函数IGNORE_DEVICE_STATUS 252
表D.95 内置函数IGNORE_NO_DEVICE 252
表D.96 内置函数IGNORE_RESPONSE_CODE 252
表D.97 内置函数int_value 253
表D.98 内置函数is_NaN 253
表D.99 内置函数isetval 253
表D.100 内置函数ITEM_ID 254
表D.101 内置函数itoa 254
表D.102 内置函数ivar_value 254
表D.103 内置函数lassign 254
表D.104 内置函数lgetval 255
表D.105 内置函数LOG_MESSAGE 255
表D.106 内置函数long_value 255
表D.107 内置函数lsetval 256
表D.108 内置函数lvar_value 256
表D.109 内置函数MEMBER_ID 256
表D.110 内置函数method_abort 257
表D.111 内置函数process_abort 257
表D.112 内置函数put_date 257
表D.113 内置函数put_date_value 258
表D.114 内置函数put_double 258
表D.115 内置函数put_double_value 259
表D.116 内置函数put_float 259
表D.117 内置函数put_float_value 259
表D.118 内置函数PUT_MESSAGE 260
表D.119 内置函数put_message 260
表D.120 内置函数put_signed 261
表D.121 内置函数put_signed_value 261
表D.122 内置函数put_string 262
表D.123 内置函数put_string_value 262
表D.124 内置函数put_unsigned 263
表D.125 内置函数put_unsigned_value 263
表D.126 内置函数READ_COMMAND 264
表D.127 内置函数read_value 264
表D.128 内置函数remove_abort_method(versionA) 265
表D.129 内置函数remove_abort_method(versionB) 265
表D.130 内置函数remove_all_abort_methods 265
表D.131 内置函数resolvemm__array_ref 266
表D.132 内置函数resolve_block_ref 266
表D.133 内置函数resolve_param_list_ref 267
表D.134 内置函数resolve_param_ref 267
表D.135 内置函数resolve_record_ref 268
表D.136 内置函数retry_on_all_comm_errors 268
表D.137 内置函数RETRY_ON_ALL_COMM_STATUS 268
表D.138 内置函数RETRY_ON_ALL_DEVICE_STATUS 269
表D.139 内置函数RETRY_ON_ALL_RESPONSE_CODES 269
表D.140 内置函数retry_on_all_response_codes 270
表D.141 内置函数RETRY_ON_COMM_ERROR 270
表D.142 内置函数retry_on_comm_error 270
表D.143 内置函数RETRY_ON_COMM_STATUS 271
表D.144 内置函数RETRY_ON_DEVICE_STATUS 271
表D.145 内置函数RETRY_ON_NO_DEVICE 272
表D.146 内置函数RETRY_ON_RESPONSE_CODE 272
表D.147 内置函数retry_on_response_code 272
表D.148 内置函数rspcode_string 273
表D.149 内置函数save_on_exit 273
表D.150 内置函数save_values 274
表D.151 内置函数SELECT_FROM_LIST 274
表D.152 内置函数select_fromlist 274
表D.153 内置函数select_from_menu 275
表D.154 内置函数send 276
表D.155 内置函数send_all_values 276
表D.156 内置函数send_command 276
表D.157 内置函数send_command_trans 277
表D.158 内置函数send_on_exit 277
表D.159 内置函数send_trans 278
表D.160 内置函数send_value 278
表D.161 内置函数SET_NUMBER_OF_RETRIES 278
表D.162 内置函数VARID 279
表D.163 内置函数vassign 279
表D.164 内置函数WRITE_COMMAND 279
表D.165 内置函数XMTR_ABORT_ON_ALL_COMM_STATUS 280
表D.166 内置函数XMTR_ABORT_ON_ALL_DEVICE_STATUS 280
表D.167 内置函数XMTR_ABORT_ON_ALL_RESPONSE_CODES 281
表D.168 内置函数XMTR_ABORT_ON_COMM_ERROR 281
表D.169 内置函数XMTR_ABORT_ON_COMM_STATUS 281
表D.170 内置函数XMTR_ABORT_ON_DATA 282
表D.171 内置函数XMTR_ABORT_ON_DEVICE_STATUS 282
表D.172 内置函数XMTR_ABORT_ON_NO_DEVICE 283 表D.173 内置函数XMTR_ABORT_ON_RESPONSE_CODE 283
表D.174 内置函数XMTR_IGNORE_ALL_COMM_STATUS 284
表D.175 内置函数XMTR_IGNORE_ALL_DEVICE_STATUS 284
表D.176 内置函数XMTR_IGNORE_ALL_RESPONSE_CODES 284
表D.177 内置函数XMTR_IGNORE_COMM_ERROR 285
表D.178 内置函数XMTR_IGNORE_COMM_STATUS 285
表D.179 内置函数XMTR_IGNORE_DEVICE_STATUS 286
表D.180 内置函数XMTR_IGNORE_NO_DEVICE 286
表D.181 内置函数XMTR_IGNORE_RESPONSE_CODE 286
表D.182 内置函数XMTR_RETRY_ON_ALL_DEVICE_STATUS 287
表D.183 内置函数XMTR_RETRY_ON_ALL_RESPONSE_CODE 287
表D.184 内置函数XMTR_RETRY_ON_ALL_RESPONSE_CODES 288
表D.185 内置函数XMTR_RETRY_ON_COMM_ERROR 288
表D.186 内置函数XMTR_RETRY_ON_COMM_STATUS 288
表D.187 内置函数XMTR_RETRY_ON_DATA 289
表D.188 内置函数XMTR_RETRY_ON_DEVICE_STATUS 289
表D.189 内置函数XMTR_RETRY_ON_NO_DEVICE 290
表D.190 内置函数XMTR_RETRY_ON_RESPONSE_CODE 290
表F.1 行规选择表308
表F.2 EDDL 形式定义行规表308
表F.3 选项表的内容308
表F.4 PROFIBUS的EDDL 元素选项308
表F.5 关于PROFIBUS的内置函数行规312
表F.6 关于基金会现场总线EDDL 元素选择318
表F.7 关于现场总线基金会的内置函数行规323
表F.8 EDDL 中HCF元素选项329
表F.9 关于HCF的内置函数行规333
表F.10 程序定义数据类型340
表F.11 变量类型340
表F.12 DATE 编码341
表F.13 DATE_AND_TIME 编码341
表F.14 DURATION 编码342
表F.15 TIME 编码342
表F.16 TIME_VALUE 编码342
表F.17 PACKED_ASCII编码343