/src/wireshark/epan/dissectors/packet-s7comm_szl_ids.c
Line | Count | Source |
1 | | /* packet-s7comm_szl_ids.c |
2 | | * |
3 | | * Author: Thomas Wiens, 2014 (th.wiens@gmx.de) |
4 | | * Description: Wireshark dissector for S7-Communication |
5 | | * |
6 | | * Wireshark - Network traffic analyzer |
7 | | * By Gerald Combs <gerald@wireshark.org> |
8 | | * Copyright 1998 Gerald Combs |
9 | | * |
10 | | * SPDX-License-Identifier: GPL-2.0-or-later |
11 | | */ |
12 | | |
13 | | #include "config.h" |
14 | | |
15 | | #include <epan/packet.h> |
16 | | #include <epan/tfs.h> |
17 | | #include <wsutil/array.h> |
18 | | #include "packet-s7comm.h" |
19 | | #include "packet-s7comm_szl_ids.h" |
20 | | |
21 | | static int ett_s7comm_szl; |
22 | | static int hf_s7comm_userdata_szl_partial_list; /* Partial list in szl response */ |
23 | | static int hf_s7comm_userdata_szl_id; /* SZL id */ |
24 | | |
25 | | static const value_string szl_module_type_names[] = { |
26 | | { 0x0, "CPU" }, /* Binary: 0000 */ |
27 | | { 0x4, "IM" }, /* Binary: 0100 */ |
28 | | { 0xc, "CP" }, /* Binary: 1100 */ |
29 | | { 0x8, "FM" }, /* Binary: 1000 */ |
30 | | { 0, NULL } |
31 | | }; |
32 | | static int hf_s7comm_userdata_szl_id_type; |
33 | | static int hf_s7comm_userdata_szl_id_partlist_ex; |
34 | | static int hf_s7comm_userdata_szl_id_partlist_num; |
35 | | static int hf_s7comm_userdata_szl_id_partlist_len; |
36 | | static int hf_s7comm_userdata_szl_id_partlist_cnt; |
37 | | static int ett_s7comm_userdata_szl_id; |
38 | | static int * const s7comm_userdata_szl_id_fields[] = { |
39 | | &hf_s7comm_userdata_szl_id_type, |
40 | | &hf_s7comm_userdata_szl_id_partlist_ex, |
41 | | &hf_s7comm_userdata_szl_id_partlist_num, |
42 | | NULL |
43 | | }; |
44 | | /* Partial list extract names */ |
45 | | static const value_string szl_id_partlist_ex_names[] = { |
46 | | { 0x0000, "All SZL partial lists of the module" }, |
47 | | { 0x0011, "All identification data records of a module" }, |
48 | | { 0x0012, "All characteristics" }, |
49 | | { 0x0013, "Data records of all memory areas" }, |
50 | | { 0x0014, "All system areas of a module" }, |
51 | | { 0x0015, "Data records of all block types of a module" }, |
52 | | { 0x0016, "Data records of all priority classes" }, |
53 | | { 0x0017, "All SDBs of a module" }, |
54 | | { 0x0018, "All data records" }, |
55 | | { 0x0019, "Status of all LEDs" }, |
56 | | { 0x001c, "Identification of all components" }, |
57 | | { 0x0021, "Data records of all possible interrupts on a module" }, |
58 | | { 0x0022, "Data records of all possible interrupts on a module" }, |
59 | | { 0x0023, "Data records of all priority classes of a module" }, |
60 | | { 0x0024, "All modules that can occur on the module" }, |
61 | | { 0x0031, "Not defined" }, |
62 | | { 0x0033, "All stations logged on for messages and diagnostic events" }, |
63 | | { 0x0037, "Details of all Ethernet interfaces" }, |
64 | | { 0x0071, "Information about the current status of the H system" }, |
65 | | { 0x0074, "Status of all LEDs" }, |
66 | | { 0x0081, "Startup information of all OBs" }, |
67 | | { 0x0082, "All startup events" }, |
68 | | { 0x0090, "Information of all DP master systems known to the CPU" }, |
69 | | { 0x0091, "Module status information of all plugged in modules and submodules" }, |
70 | | { 0x0092, "Expected status of the central racks/stations of a DP master system connected via an integrated DP interface" }, |
71 | | { 0x0094, "Expected status of the rack in the central configuration/the stations of a DP master system/IO controller system that is connected via an integrated DP/PN interface module" }, |
72 | | { 0x0095, "Extended information on a DP master system/PROFINET IO system" }, |
73 | | { 0x00a0, "All entries possible in the current mode" }, |
74 | | { 0x00b1, "Obtain the first 4 diagnostic bytes of a module with diagnostic capability" }, |
75 | | { 0x00b2, "Obtain diagnostic data record 1 of a module in a central rack, rack/slot specified by index" }, |
76 | | { 0x00b3, "Obtain diagnostic data of a module, logical base address specified by index" }, |
77 | | { 0x00b4, "Obtain diagnostic data of a DP slave, diagnostic address of the module specified by index" }, |
78 | | { 0x0100, "A partial list with all partial list extracts" }, |
79 | | { 0x0111, "A single identification data record" }, |
80 | | { 0x0112, "Characteristics of a group, specified by index" }, |
81 | | { 0x0113, "Data record for one memory area, specified by index" }, |
82 | | { 0x0114, "One system area, specified by index" }, |
83 | | { 0x0115, "Data record of a block type, specified by index" }, |
84 | | { 0x0116, "Data record of the specified priority class, specified by index" }, |
85 | | { 0x0117, "One single SDB, specified by index" }, |
86 | | { 0x0118, "One data record, specified by index" }, |
87 | | { 0x0119, "Status of one LED, specified by index" }, |
88 | | { 0x011c, "Identification of one component" }, |
89 | | { 0x0121, "Data records of all possible interrupts of one class, class specified by index" }, |
90 | | { 0x0122, "Data records of all possible interrupts of one class, class specified by index" }, |
91 | | { 0x0123, "Data record of one priority class, specified by index" }, |
92 | | { 0x0124, "Information about the last mode transition" }, |
93 | | { 0x0131, "Information about a communication unit, specified by index" }, |
94 | | { 0x0132, "Status data for one communication section of the CPU, section specified by index" }, |
95 | | { 0x0137, "Details of one Ethernet interface" }, |
96 | | { 0x0174, "Status of an LED, specified by index" }, |
97 | | { 0x0181, "Startup information of all synchronous error OBs" }, |
98 | | { 0x0182, "Startup events of all synchronous error OBs" }, |
99 | | { 0x0190, "Information of one DP master system" }, |
100 | | { 0x0191, "Status information of all modules/racks with wrong type identifier" }, |
101 | | { 0x01a0, "The most recent entries, the number of most recent entries specified by index" }, |
102 | | { 0x0200, "A partial list extract" }, |
103 | | { 0x021c, "Identification of all components of a CPU in an H system" }, |
104 | | { 0x0221, "Data records for the specified interrupt, interrupt (OB no.) specified by index" }, |
105 | | { 0x0222, "Data records for the specified interrupt, interrupt (OB no.) specified by index" }, |
106 | | { 0x0223, "Data records of the priority classes being processed" }, |
107 | | { 0x0224, "Processed mode transition" }, |
108 | | { 0x0281, "Startup information of all synchronous error OBs of one priority class" }, |
109 | | { 0x0282, "Startup events of all synchronous error OBs of one priority class" }, |
110 | | { 0x0291, "Status information of all faulty modules" }, |
111 | | { 0x0292, "Actual status of the central racks/stations of a DP master system connected via an integrated DP interface" }, |
112 | | { 0x0294, "Actual status of the rack in the central configuration/the stations of a DP master system/IO controller system that is connected via an integrated DP/PN interface module" }, |
113 | | { 0x0300, "Possible indexes of a partial list extract" }, |
114 | | { 0x031c, "Identification of one component of all redundant CPUs in an H system" }, |
115 | | { 0x0381, "Startup information of all OBs of one priority class" }, |
116 | | { 0x0382, "Startup events of all OBs of a priority class" }, |
117 | | { 0x0391, "Status information of all modules that are not available" }, |
118 | | { 0x0392, "State of the battery backup of the racks in a central configuration" }, |
119 | | { 0x0424, "Current mode transition" }, |
120 | | { 0x0492, "State of the total backup of the racks in a central configuration" }, |
121 | | { 0x04a0, "Start information of all standard OBs" }, |
122 | | { 0x0524, "Specified mode transition, specified by index" }, |
123 | | { 0x0581, "Startup information of all synchronous error OBs before processing" }, |
124 | | { 0x0582, "Startup events of all synchronous error OBs before processing" }, |
125 | | { 0x0591, "Status information of all submodules of the host module" }, |
126 | | { 0x0592, "State of the 24 V power supply of the modules in a central configuration" }, |
127 | | { 0x05a0, "All entries from communications units" }, |
128 | | { 0x0681, "Startup information of all synchronous error OBs of a priority class before processing" }, |
129 | | { 0x0682, "Startup events of all synchronous error OBs of a priority class before processing" }, |
130 | | { 0x0692, "OK state of the expansion racks in the central configuration / of the stations of a DP master system connected via an integrated DP interface" }, |
131 | | { 0x0694, "Status of the expansion racks in the central configuration/the stations of a DP master system/IO controller system that is connected via an integrated DP/PN interface module" }, |
132 | | { 0x0696, "Module status information on all interface modules in a specified module (with PROFIBUS DP and central modules, the interface module level is not present)" }, |
133 | | { 0x06a0, "All entries of the object management system" }, |
134 | | { 0x0781, "Startup information of all OBs of one priority class before processing" }, |
135 | | { 0x0782, "Startup events of all OBs of one priority class before processing" }, |
136 | | { 0x07a0, "All entries of the test and installation function" }, |
137 | | { 0x0822, "Data records of all interrupts of one class and for which the corresponding interrupt OB is loaded, class specified by index" }, |
138 | | { 0x0881, "Startup information of all OBs before processing" }, |
139 | | { 0x0882, "Startup events of all OBs before processing" }, |
140 | | { 0x08a0, "All entries due to operating statuses" }, |
141 | | { 0x0921, "Data records of all interrupts of one class and for which the corresponding interrupt OB is loaded, class specified by index" }, |
142 | | { 0x0922, "Data records of all interrupts for which the corresponding interrupt OB is loaded" }, |
143 | | { 0x0981, "Startup information of all synchronous error OBs being processed" }, |
144 | | { 0x0982, "Startup events of all synchronous error OBs being processed" }, |
145 | | { 0x0991, "Module status information of a DP master system" }, |
146 | | { 0x09a0, "All entries caused by asynchronous errors" }, |
147 | | { 0x0a21, "Data records of all interrupts for which the corresponding interrupt OB is loaded" }, |
148 | | { 0x0a81, "Startup information of all synchronous error OBs of a priority class being processed" }, |
149 | | { 0x0a82, "Startup events of all synchronous error OBs of a priority class being processed" }, |
150 | | { 0x0a91, "Module status information of all DP master systems" }, |
151 | | { 0x0aa0, "All entries caused by synchronous errors" }, |
152 | | { 0x0b81, "Startup information of all OBs of one priority class being processed" }, |
153 | | { 0x0b82, "Startup events of all OBs of one priority class being processed" }, |
154 | | { 0x0ba0, "All entries caused by STOP, abort, mode transition" }, |
155 | | { 0x0c75, "Communication status between the H system and a switched DP slave, slave specified by index" }, |
156 | | { 0x0c81, "Startup information of all OBs being processed" }, |
157 | | { 0x0c82, "Startup events of all OBs being processed" }, |
158 | | { 0x0c91, "Status information of a module in the central rack or connected to an integrated DP communications processor via the logical base address" }, |
159 | | { 0x0c96, "Module status information on a module/interface module centrally or at a PROFIBUS DP/PROFINET interface module via the start address" }, |
160 | | { 0x0ca0, "All entries caused by fault-tolerant/fail-safe events" }, |
161 | | { 0x0d91, "Module status information of all modules in the specified rack/in the specified station (DP or PROFINET)" }, |
162 | | { 0x0da0, "All diagnostic entries" }, |
163 | | { 0x0e91, "Module status information of all configured modules" }, |
164 | | { 0x0ea0, "All user entries" }, |
165 | | { 0x0f00, "List of all the SZL-IDs of a module, only partial list header information" }, |
166 | | { 0x0f11, "Module identification, only partial list header information" }, |
167 | | { 0x0f12, "CPU characteristics, only partial list header information" }, |
168 | | { 0x0f13, "User memory areas, only partial list header information" }, |
169 | | { 0x0f14, "System areas, only partial list header information" }, |
170 | | { 0x0f15, "Block types, only partial list header information" }, |
171 | | { 0x0f16, "Priority classes, only partial list header information" }, |
172 | | { 0x0f17, "List of the permitted SDBs, only partial list header information" }, |
173 | | { 0x0f18, "Maximum S7-300 I/O configuration, only partial list header information" }, |
174 | | { 0x0f19, "Status of the module LEDs, only partial list header information" }, |
175 | | { 0x0f1c, "Component Identification, only partial list header information" }, |
176 | | { 0x0f21, "Interrupt / error assignment, only partial list header information" }, |
177 | | { 0x0f22, "Interrupt status, only partial list header information" }, |
178 | | { 0x0f23, "Priority classes, only partial list header information" }, |
179 | | { 0x0f24, "Modes, only partial list header information" }, |
180 | | { 0x0f31, "Communication capability parameters, only partial list header information" }, |
181 | | { 0x0f32, "Communication status data, only partial list header information" }, |
182 | | { 0x0f33, "Diagnostics: device logon list, only partial list header information" }, |
183 | | { 0x0f37, "Ethernet - Details of a Module, only partial list header information" }, |
184 | | { 0x0f71, "H CPU group information, only partial list header information" }, |
185 | | { 0x0f81, "Start information list, only partial list header information" }, |
186 | | { 0x0f82, "Start event list, only partial list header information" }, |
187 | | { 0x0f90, "DP Master System Information, only partial list header information" }, |
188 | | { 0x0f91, "Module status information, only partial list header information" }, |
189 | | { 0x0f92, "Rack / station status information, only partial list header information" }, |
190 | | { 0x0f94, "Rack / station status information, only partial list header information" }, |
191 | | { 0x0f95, "Extended DP master system information, only partial list header information" }, |
192 | | { 0x0fa0, "Diagnostic buffer of the CPU, only partial list header information" }, |
193 | | { 0x4092, "Expected status of the stations of a DP master system connected via an external DP interface" }, |
194 | | { 0x4292, "Actual status of the stations of a DP master system connected via an external DP interface" }, |
195 | | { 0x4692, "OK state of the stations of a DP master system connected via an external DP interface" }, |
196 | | { 0x4c91, "Status information of a module connected to an external DP communications processor via the logical base address" }, |
197 | | { 0x4f92, "Only partial list header information of the '4x92' list" }, |
198 | | { 0, NULL } |
199 | | }; |
200 | | static value_string_ext szl_id_partlist_ex_names_ext = VALUE_STRING_EXT_INIT(szl_id_partlist_ex_names); |
201 | | |
202 | | static const value_string szl_partial_list_names[] = { |
203 | | { 0x0000, "List of all the SZL-IDs of a module" }, |
204 | | { 0x0011, "Module identification" }, |
205 | | { 0x0012, "CPU characteristics" }, |
206 | | { 0x0013, "User memory areas" }, |
207 | | { 0x0014, "System areas" }, |
208 | | { 0x0015, "Block types" }, |
209 | | { 0x0016, "Priority classes" }, |
210 | | { 0x0017, "List of the permitted SDBs with a number < 1000" }, |
211 | | { 0x0018, "Maximum S7-300 I/O configuration" }, |
212 | | { 0x0019, "Status of the module LEDs" }, |
213 | | { 0x001c, "Component Identification" }, |
214 | | { 0x0021, "Interrupt / error assignment" }, |
215 | | { 0x0022, "Interrupt status" }, |
216 | | { 0x0023, "Priority classes" }, |
217 | | { 0x0024, "Modes" }, |
218 | | { 0x0025, "Assignment between process image partitions and OBs" }, |
219 | | { 0x0031, "Communication capability parameters" }, |
220 | | { 0x0032, "Communication status data" }, |
221 | | { 0x0033, "Diagnostics: device logon list" }, |
222 | | { 0x0037, "Ethernet - Details of a Module" }, |
223 | | { 0x0071, "H CPU group information" }, |
224 | | { 0x0074, "Status of the module LEDs" }, |
225 | | { 0x0075, "Switched DP slaves in the H-system" }, |
226 | | { 0x0076, "DNN tree’s root node" }, |
227 | | { 0x0077, "DNN node - all linked objects" }, |
228 | | { 0x0078, "DNN node data" }, |
229 | | { 0x0081, "Start information list" }, |
230 | | { 0x0082, "Start event list" }, |
231 | | { 0x0090, "DP Master System Information" }, |
232 | | { 0x0091, "Module status information" }, |
233 | | { 0x0092, "Rack / station status information" }, |
234 | | { 0x0094, "Rack / station status information" }, |
235 | | { 0x0095, "Extended DP master system information" }, |
236 | | { 0x0096, "Module status information, PROFINET IO and PROFIBUS DP" }, |
237 | | { 0x00a0, "Diagnostic buffer of the CPU" }, |
238 | | { 0x00b1, "Module diagnostic information (data record 0)" }, |
239 | | { 0x00b2, "Module diagnostic information (data record 1), geographical address" }, |
240 | | { 0x00b3, "Module diagnostic information (data record 1), logical address" }, |
241 | | { 0x00b4, "Diagnostic data of a DP slave" }, |
242 | | { 0, NULL } |
243 | | }; |
244 | | static value_string_ext szl_partial_list_names_ext = VALUE_STRING_EXT_INIT(szl_partial_list_names); |
245 | | |
246 | | static int hf_s7comm_userdata_szl_index; /* SZL index */ |
247 | | static int hf_s7comm_userdata_szl_tree; /* SZL item tree */ |
248 | | |
249 | | /* Index description for SZL Requests */ |
250 | | static const value_string szl_0111_index_names[] = { |
251 | | { 0x0001, "Identification of the module" }, |
252 | | { 0x0006, "Identification of the basic hardware" }, |
253 | | { 0x0007, "Identification of the basic firmware" }, |
254 | | { 0x0081, "Identification of the firmware-extension" }, |
255 | | { 0, NULL } |
256 | | }; |
257 | | |
258 | | static const value_string szl_0112_index_names[] = { |
259 | | { 0x0000, "MC7 processing unit" }, |
260 | | { 0x0100, "Time system" }, |
261 | | { 0x0200, "System response" }, |
262 | | { 0x0300, "Language description of the CPU" }, |
263 | | { 0x0400, "Availability of SFC 87 and SFC 88" }, |
264 | | { 0, NULL } |
265 | | }; |
266 | | |
267 | | static const value_string szl_0113_index_names[] = { |
268 | | { 0x0001, "Work memory" }, |
269 | | { 0x0002, "Load memory integrated" }, |
270 | | { 0x0003, "Load memory plugged in" }, |
271 | | { 0x0004, "Maximum plug-in load memory" }, |
272 | | { 0x0005, "Size of the backup memory" }, |
273 | | { 0x0006, "Size of the memory reserved by the system for CFBs" }, |
274 | | { 0, NULL } |
275 | | }; |
276 | | |
277 | | static const value_string szl_0114_index_names[] = { |
278 | | { 0x0001, "PII (number in bytes)" }, |
279 | | { 0x0002, "PIQ (number in bytes)" }, |
280 | | { 0x0003, "Memory (number)" }, |
281 | | { 0x0004, "Timers (number)" }, |
282 | | { 0x0005, "Counters (number)" }, |
283 | | { 0x0006, "Number of bytes in the logical address area" }, |
284 | | { 0x0007, "Size of the entire local data area of the CPU in bytes" }, |
285 | | { 0x0008, "Memory (number in bytes)" }, |
286 | | { 0x0009, "Local data (entire local data area of the CPU in Kbytes)" }, |
287 | | { 0, NULL } |
288 | | }; |
289 | | |
290 | | static const value_string szl_0115_index_names[] = { |
291 | | { 0x0800, "OB" }, |
292 | | { 0x0a00, "DB" }, |
293 | | { 0x0b00, "SDB" }, |
294 | | { 0x0c00, "FC" }, |
295 | | { 0x0e00, "FB" }, |
296 | | { 0, NULL } |
297 | | }; |
298 | | |
299 | | static const value_string szl_0116_index_names[] = { |
300 | | { 0x0000, "Free cycle" }, |
301 | | { 0x000a, "Time-of-day interrupt" }, |
302 | | { 0x0014, "Time-delay interrupt" }, |
303 | | { 0x001e, "Cyclic interrupt" }, |
304 | | { 0x0028, "Hardware interrupt" }, |
305 | | { 0x0050, "Asynchronous error interrupt" }, |
306 | | { 0x005a, "Background" }, |
307 | | { 0x0064, "Startup" }, |
308 | | { 0x0078, "Synchronous error interrupt" }, |
309 | | { 0, NULL } |
310 | | }; |
311 | | |
312 | | static const value_string szl_0118_index_names[] = { |
313 | | { 0x0001, "Number of the rack: 1" }, |
314 | | { 0x0002, "Number of the rack: 2" }, |
315 | | { 0x0003, "Number of the rack: 3" }, |
316 | | { 0x00ff, "Maximum number of racks (racknr) and total number of possible slots (anzst)" }, |
317 | | { 0, NULL } |
318 | | }; |
319 | | |
320 | | static const value_string szl_0121_index_names[] = { |
321 | | { 0x0000, "Free cycle" }, |
322 | | { 0x0a0a, "Time-of-day interrupt" }, |
323 | | { 0x1414, "Time-delay interrupt" }, |
324 | | { 0x1e23, "Cyclic interrupt" }, |
325 | | { 0x2828, "Hardware interrupt" }, |
326 | | { 0x5050, "Asynchronous error interrupt" }, |
327 | | { 0x005a, "Background" }, |
328 | | { 0x0064, "Startup" }, |
329 | | { 0x7878, "Synchronous error interrupt" }, |
330 | | { 0, NULL } |
331 | | }; |
332 | | |
333 | | static const value_string szl_0222_index_names[] = { |
334 | | { 0x0000, "Free cycle" }, |
335 | | { 0x000a, "Time-of-day interrupt" }, |
336 | | { 0x0014, "Time-delay interrupt" }, |
337 | | { 0x001e, "Cyclic interrupt" }, |
338 | | { 0x0028, "Hardware interrupt" }, |
339 | | { 0x0032, "DP interrupt" }, |
340 | | { 0x003c, "Multicomputing or synchronous cycle (isochrone) interrupt" }, |
341 | | { 0x0048, "Redundancy interrupt (on with S7-400H systems)" }, |
342 | | { 0x0050, "Asynchronous error interrupt" }, |
343 | | { 0x005a, "Background" }, |
344 | | { 0x0064, "Startup" }, |
345 | | { 0x0078, "Synchronous error interrupt" }, |
346 | | { 0, NULL } |
347 | | }; |
348 | | |
349 | | static const value_string szl_0524_index_names[] = { |
350 | | { 0x5000, "Mode STOP" }, |
351 | | { 0x5010, "Mode STARTUP" }, |
352 | | { 0x5020, "Mode RUN" }, |
353 | | { 0x5030, "Mode HOLD" }, |
354 | | { 0x4520, "Mode DEFECT" }, |
355 | | { 0, NULL } |
356 | | }; |
357 | | |
358 | | static const value_string szl_0131_index_names[] = { |
359 | | { 0x0001, "General data for communication" }, |
360 | | { 0x0002, "Test and installation function constants" }, |
361 | | { 0x0003, "Operator interface (O/I)" }, |
362 | | { 0x0004, "Object management system (OMS)" }, |
363 | | { 0x0005, "Diagnostics" }, |
364 | | { 0x0006, "Communication function block (CFB)" }, |
365 | | { 0x0007, "Global data" }, |
366 | | { 0x0008, "Test and installation function time information" }, |
367 | | { 0x0009, "Time-of-day capability parameters" }, |
368 | | { 0x0010, "Message parameters" }, |
369 | | { 0x0011, "SCAN capability parameters" }, |
370 | | { 0, NULL } |
371 | | }; |
372 | | |
373 | | static const value_string szl_0132_index_names[] = { |
374 | | { 0x0001, "General data for communication" }, |
375 | | { 0x0002, "Test and installation status" }, |
376 | | { 0x0003, "Operator interface status" }, |
377 | | { 0x0004, "Object management system status" }, |
378 | | { 0x0005, "Diagnostics" }, |
379 | | { 0x0006, "Data exchange with CFBs" }, |
380 | | { 0x0007, "Global data" }, |
381 | | { 0x0008, "Time system" }, |
382 | | { 0x0009, "MPI status" }, |
383 | | { 0x000a, "Communication bus status" }, |
384 | | { 0x000b, "32-bit runtime meters 0-7" }, |
385 | | { 0x000c, "32-bit runtime meters 8-15" }, |
386 | | { 0x0010, "S7-SCAN part 1" }, |
387 | | { 0x0011, "S7-SCAN part 2" }, |
388 | | { 0, NULL } |
389 | | }; |
390 | | |
391 | | static const value_string szl_0119_0174_ledid_index_names[] = { |
392 | | { 0x0001, "SF (group error)" }, |
393 | | { 0x0002, "INTF (internal error)" }, |
394 | | { 0x0003, "EXTF (external error)" }, |
395 | | { 0x0004, "RUN" }, |
396 | | { 0x0005, "STOP" }, |
397 | | { 0x0006, "FRCE (force)" }, |
398 | | { 0x0007, "CRST (cold restart)" }, |
399 | | { 0x0008, "BAF (battery fault/overload, short circuit of battery voltage on bus)" }, |
400 | | { 0x0009, "USR (user-defined)" }, |
401 | | { 0x000a, "USR1 (user-defined)" }, |
402 | | { 0x000b, "BUS1F (bus error interface 1)" }, |
403 | | { 0x000c, "BUS2F (bus error interface 2)" }, |
404 | | { 0x000d, "REDF (redundancy error)" }, |
405 | | { 0x000e, "MSTR (master)" }, |
406 | | { 0x000f, "RACK0 (rack number 0)" }, |
407 | | { 0x0010, "RACK1 (rack number 1)" }, |
408 | | { 0x0011, "RACK2 (rack number 2)" }, |
409 | | { 0x0012, "IFM1F (interface error interface module 1)" }, |
410 | | { 0x0013, "IFM2F (interface error interface module 2)" }, |
411 | | { 0x0014, "BUS3F (bus fault interface 3)" }, |
412 | | { 0x0015, "MAINT (maintenance demand)" }, |
413 | | { 0x0016, "DC24V" }, |
414 | | { 0x0080, "IF (init failure)" }, |
415 | | { 0x0081, "UF (user failure)" }, |
416 | | { 0x0082, "MF (monitoring failure)" }, |
417 | | { 0x0083, "CF (communication failure)" }, |
418 | | { 0x0084, "TF (task failure)" }, |
419 | | { 0x00ec, "APPL_STATE_RED" }, |
420 | | { 0x00ed, "APPL_STATE_GREEN" }, |
421 | | { 0, NULL } |
422 | | }; |
423 | | |
424 | | static const value_string szl_xy1c_index_names[] = { |
425 | | { 0x0001, "Name of the automation system" }, |
426 | | { 0x0002, "Name of the module" }, |
427 | | { 0x0003, "Plant designation of the module" }, |
428 | | { 0x0004, "Copyright entry" }, |
429 | | { 0x0005, "Serial number of the module" }, |
430 | | { 0x0007, "Module type name" }, |
431 | | { 0x0008, "Serial number of the memory card" }, |
432 | | { 0x0009, "Manufacturer and profile of a CPU module" }, |
433 | | { 0x000a, "OEM ID of a module" }, |
434 | | { 0x000b, "Location ID of a module" }, |
435 | | { 0, NULL } |
436 | | }; |
437 | | |
438 | | /* Header fields of the SZL */ |
439 | | static int hf_s7comm_szl_0000_0000_szl_id; |
440 | | static int hf_s7comm_szl_0000_0000_module_type_class; |
441 | | static int hf_s7comm_szl_0000_0000_partlist_extr_nr; |
442 | | static int hf_s7comm_szl_0000_0000_partlist_nr; |
443 | | |
444 | | static int hf_s7comm_szl_xy12_0x00_charac; |
445 | | static const value_string szl_xy12_cpu_characteristic_names[] = { |
446 | | { 0x0000, "MC7 processing unit group" }, |
447 | | { 0x0001, "MC7 processing generating code" }, |
448 | | { 0x0002, "MC7 interpreter" }, |
449 | | { 0x0100, "Time system group" }, |
450 | | { 0x0101, "1 ms resolution" }, |
451 | | { 0x0102, "10 ms resolution" }, |
452 | | { 0x0103, "No real time clock" }, |
453 | | { 0x0104, "BCD time-of-day format" }, |
454 | | { 0x0105, "All time-of-day functions (set time-of-day, set and read time-of-day, time-of-day synchronization: time-of-day slave and time-of-day master)" }, |
455 | | { 0x0106, "SFC 78 OB_RT is available" }, |
456 | | { 0x0200, "System response group" }, |
457 | | { 0x0201, "Capable of multiprocessor mode" }, |
458 | | { 0x0202, "Cold restart, warm restart and hot restart possible" }, |
459 | | { 0x0203, "Cold restart and hot restart possible" }, |
460 | | { 0x0204, "Warm restart and hot restart possible" }, |
461 | | { 0x0205, "Only warm restart possible" }, |
462 | | { 0x0206, "New distributed I/O configuration is possible during RUN by using predefined resources" }, |
463 | | { 0x0207, "H-CPU in stand-alone mode: New distributed I/O configuration is possible during RUN by using predefined resources" }, |
464 | | { 0x0208, "For taking motion control functionality into account" }, |
465 | | { 0x0300, "Language description of the CPU group" }, |
466 | | { 0x0301, "Reserved" }, |
467 | | { 0x0302, "All 32 bit fixed-point instructions" }, |
468 | | { 0x0303, "All floating-point instructions" }, |
469 | | { 0x0304, "sin, asin, cos, acos, tan, atan, sqr, sqrt, ln, exp" }, |
470 | | { 0x0305, "Accumulator 3/accumulator 4 with corresponding instructions (ENT,PUSH,POP,LEAVE)" }, |
471 | | { 0x0306, "Master Control Relay instructions" }, |
472 | | { 0x0307, "Address register 1 exists with corresponding instructions" }, |
473 | | { 0x0308, "Address register 2 exists with corresponding instructions" }, |
474 | | { 0x0309, "Operations for area-crossing addressing" }, |
475 | | { 0x030A, "Operations for area-internal addressing" }, |
476 | | { 0x030B, "All memory-indirect addressing instructions for bit memory (M)" }, |
477 | | { 0x030C, "All memory-indirect addressing instructions for data blocks (DB)" }, |
478 | | { 0x030D, "All memory-indirect addressing instructions for data blocks (DI)" }, |
479 | | { 0x030E, "All memory-indirect addressing instructions for local data (L)" }, |
480 | | { 0x030F, "All instructions for parameter transfer in FCs" }, |
481 | | { 0x0310, "Memory bit edge instructions for process image input (I)" }, |
482 | | { 0x0311, "Memory bit edge instructions for process image output (Q)" }, |
483 | | { 0x0312, "Memory bit edge instructions for bit memory (M)" }, |
484 | | { 0x0313, "Memory bit edge instructions for data blocks (DB)" }, |
485 | | { 0x0314, "Memory bit edge instructions for data blocks (DI)" }, |
486 | | { 0x0315, "Memory bit edge instructions for local data (L)" }, |
487 | | { 0x0316, "Dynamic evaluation of the FC bit" }, |
488 | | { 0x0317, "Dynamic local data area with the corresponding instructions" }, |
489 | | { 0x0318, "Reserved" }, |
490 | | { 0x0319, "Reserved" }, |
491 | | { 0x0401, "SFC 87 C_DIAG is available" }, |
492 | | { 0x0402, "SFC 88 C_CNTRL is available" }, |
493 | | { 0, NULL } |
494 | | }; |
495 | | |
496 | | static int hf_s7comm_szl_0013_0000_index; |
497 | | |
498 | | static int hf_s7comm_szl_0013_0000_code; |
499 | | static const value_string szl_memory_type_names[] = { |
500 | | { 0x0001, "volatile memory (RAM)" }, |
501 | | { 0x0002, "non-volatile memory (FEPROM)" }, |
502 | | { 0x0003, "mixed memory (RAM + FEPROM)" }, |
503 | | { 0, NULL } |
504 | | }; |
505 | | static int hf_s7comm_szl_0013_0000_size; |
506 | | static int hf_s7comm_szl_0013_0000_mode; |
507 | | static int hf_s7comm_szl_0013_0000_mode_0; |
508 | | static int hf_s7comm_szl_0013_0000_mode_1; |
509 | | static int hf_s7comm_szl_0013_0000_mode_2; |
510 | | static int hf_s7comm_szl_0013_0000_mode_3; |
511 | | static int hf_s7comm_szl_0013_0000_mode_4; |
512 | | static int hf_s7comm_szl_0013_0000_granu; |
513 | | static int hf_s7comm_szl_0013_0000_ber1; |
514 | | static int hf_s7comm_szl_0013_0000_belegt1; |
515 | | static int hf_s7comm_szl_0013_0000_block1; |
516 | | static int hf_s7comm_szl_0013_0000_ber2; |
517 | | static int hf_s7comm_szl_0013_0000_belegt2; |
518 | | static int hf_s7comm_szl_0013_0000_block2; |
519 | | |
520 | | static int hf_s7comm_szl_xy11_0001_index; |
521 | | static int hf_s7comm_szl_xy11_0001_mlfb; |
522 | | static int hf_s7comm_szl_xy11_0001_bgtyp; |
523 | | static int hf_s7comm_szl_xy11_0001_ausbg; |
524 | | static int hf_s7comm_szl_xy11_0001_ausbe; |
525 | | |
526 | | static int hf_s7comm_szl_xy14_000x_index; |
527 | | static int hf_s7comm_szl_xy14_000x_code; |
528 | | static int hf_s7comm_szl_xy14_000x_quantity; |
529 | | static int hf_s7comm_szl_xy14_000x_reman; |
530 | | |
531 | | static int hf_s7comm_szl_xy15_000x_index; |
532 | | static int hf_s7comm_szl_xy15_000x_maxanz; |
533 | | static int hf_s7comm_szl_xy15_000x_maxlng; |
534 | | static int hf_s7comm_szl_xy15_000x_maxabl; |
535 | | |
536 | | static int hf_s7comm_szl_xy22_00xx_info; |
537 | | static int hf_s7comm_szl_xy22_00xx_al1; |
538 | | static int hf_s7comm_szl_xy22_00xx_al1_0; |
539 | | static int hf_s7comm_szl_xy22_00xx_al1_1; |
540 | | static int hf_s7comm_szl_xy22_00xx_al1_2; |
541 | | static int hf_s7comm_szl_xy22_00xx_al1_4; |
542 | | static int hf_s7comm_szl_xy22_00xx_al1_5; |
543 | | static int hf_s7comm_szl_xy22_00xx_al1_6; |
544 | | static int hf_s7comm_szl_xy22_00xx_al2; |
545 | | static int hf_s7comm_szl_xy22_00xx_al2_0; |
546 | | static int hf_s7comm_szl_xy22_00xx_al2_1; |
547 | | static int hf_s7comm_szl_xy22_00xx_al2_2; |
548 | | static int hf_s7comm_szl_xy22_00xx_al2_3; |
549 | | static int hf_s7comm_szl_xy22_00xx_al3; |
550 | | |
551 | | static int ett_s7comm_szl_xy22_00xx_al1; |
552 | | static int * const s7comm_szl_xy22_00xx_al1_fields[] = { |
553 | | &hf_s7comm_szl_xy22_00xx_al1_0, |
554 | | &hf_s7comm_szl_xy22_00xx_al1_1, |
555 | | &hf_s7comm_szl_xy22_00xx_al1_2, |
556 | | &hf_s7comm_szl_xy22_00xx_al1_4, |
557 | | &hf_s7comm_szl_xy22_00xx_al1_5, |
558 | | &hf_s7comm_szl_xy22_00xx_al1_6, |
559 | | NULL |
560 | | }; |
561 | | static int ett_s7comm_szl_xy22_00xx_al2; |
562 | | static int * const s7comm_szl_xy22_00xx_al2_fields[] = { |
563 | | &hf_s7comm_szl_xy22_00xx_al2_0, |
564 | | &hf_s7comm_szl_xy22_00xx_al2_1, |
565 | | &hf_s7comm_szl_xy22_00xx_al2_2, |
566 | | &hf_s7comm_szl_xy22_00xx_al2_3, |
567 | | NULL |
568 | | }; |
569 | | |
570 | | static int hf_s7comm_szl_0131_0001_index; |
571 | | static int hf_s7comm_szl_0131_0001_pdu; |
572 | | static int hf_s7comm_szl_0131_0001_anz; |
573 | | static int hf_s7comm_szl_0131_0001_mpi_bps; |
574 | | static int hf_s7comm_szl_0131_0001_kbus_bps; |
575 | | static int hf_s7comm_szl_0131_0001_res; |
576 | | |
577 | | static int hf_s7comm_szl_0131_0002_index; |
578 | | static int hf_s7comm_szl_0131_0002_funkt_0; |
579 | | static int hf_s7comm_szl_0131_0002_funkt_0_0; |
580 | | static int hf_s7comm_szl_0131_0002_funkt_0_1; |
581 | | static int hf_s7comm_szl_0131_0002_funkt_0_2; |
582 | | static int hf_s7comm_szl_0131_0002_funkt_0_3; |
583 | | static int hf_s7comm_szl_0131_0002_funkt_0_4; |
584 | | static int hf_s7comm_szl_0131_0002_funkt_0_5; |
585 | | static int hf_s7comm_szl_0131_0002_funkt_0_6; |
586 | | static int hf_s7comm_szl_0131_0002_funkt_0_7; |
587 | | static int hf_s7comm_szl_0131_0002_funkt_1; |
588 | | static int hf_s7comm_szl_0131_0002_funkt_1_0; |
589 | | static int hf_s7comm_szl_0131_0002_funkt_1_1; |
590 | | static int hf_s7comm_szl_0131_0002_funkt_1_2; |
591 | | static int hf_s7comm_szl_0131_0002_funkt_1_3; |
592 | | static int hf_s7comm_szl_0131_0002_funkt_1_4; |
593 | | static int hf_s7comm_szl_0131_0002_funkt_1_5; |
594 | | static int hf_s7comm_szl_0131_0002_funkt_1_6; |
595 | | static int hf_s7comm_szl_0131_0002_funkt_1_7; |
596 | | static int hf_s7comm_szl_0131_0002_funkt_2; |
597 | | static int hf_s7comm_szl_0131_0002_funkt_2_0; |
598 | | static int hf_s7comm_szl_0131_0002_funkt_2_1; |
599 | | static int hf_s7comm_szl_0131_0002_funkt_2_2; |
600 | | static int hf_s7comm_szl_0131_0002_funkt_2_3; |
601 | | static int hf_s7comm_szl_0131_0002_funkt_2_4; |
602 | | static int hf_s7comm_szl_0131_0002_funkt_2_5; |
603 | | static int hf_s7comm_szl_0131_0002_funkt_2_6; |
604 | | static int hf_s7comm_szl_0131_0002_funkt_2_7; |
605 | | static int hf_s7comm_szl_0131_0002_funkt_3; |
606 | | static int hf_s7comm_szl_0131_0002_funkt_4; |
607 | | static int hf_s7comm_szl_0131_0002_funkt_5; |
608 | | static int hf_s7comm_szl_0131_0002_aseg; |
609 | | static int hf_s7comm_szl_0131_0002_eseg; |
610 | | static int hf_s7comm_szl_0131_0002_trgereig_0; |
611 | | static int hf_s7comm_szl_0131_0002_trgereig_0_0; |
612 | | static int hf_s7comm_szl_0131_0002_trgereig_0_1; |
613 | | static int hf_s7comm_szl_0131_0002_trgereig_0_2; |
614 | | static int hf_s7comm_szl_0131_0002_trgereig_0_3; |
615 | | static int hf_s7comm_szl_0131_0002_trgereig_0_4; |
616 | | static int hf_s7comm_szl_0131_0002_trgereig_0_5; |
617 | | static int hf_s7comm_szl_0131_0002_trgereig_0_6; |
618 | | static int hf_s7comm_szl_0131_0002_trgereig_0_7; |
619 | | static int hf_s7comm_szl_0131_0002_trgereig_1; |
620 | | static int hf_s7comm_szl_0131_0002_trgereig_1_0; |
621 | | static int hf_s7comm_szl_0131_0002_trgereig_1_1; |
622 | | static int hf_s7comm_szl_0131_0002_trgereig_1_2; |
623 | | static int hf_s7comm_szl_0131_0002_trgereig_1_3; |
624 | | static int hf_s7comm_szl_0131_0002_trgereig_1_4; |
625 | | static int hf_s7comm_szl_0131_0002_trgereig_1_5; |
626 | | static int hf_s7comm_szl_0131_0002_trgereig_1_6; |
627 | | static int hf_s7comm_szl_0131_0002_trgereig_1_7; |
628 | | static int hf_s7comm_szl_0131_0002_trgereig_2; |
629 | | static int hf_s7comm_szl_0131_0002_trgbed; |
630 | | static int hf_s7comm_szl_0131_0002_pfad; |
631 | | static int hf_s7comm_szl_0131_0002_tiefe; |
632 | | static int hf_s7comm_szl_0131_0002_systrig; |
633 | | static int hf_s7comm_szl_0131_0002_erg_par; |
634 | | static int hf_s7comm_szl_0131_0002_erg_pat_1; |
635 | | static int hf_s7comm_szl_0131_0002_erg_pat_2; |
636 | | static int hf_s7comm_szl_0131_0002_force; |
637 | | static int hf_s7comm_szl_0131_0002_time; |
638 | | static int hf_s7comm_szl_0131_0002_res; |
639 | | |
640 | | static int ett_s7comm_szl_0131_0002_funkt_0; |
641 | | static int * const s7comm_szl_0131_0002_funkt_0_fields[] = { |
642 | | &hf_s7comm_szl_0131_0002_funkt_0_0, |
643 | | &hf_s7comm_szl_0131_0002_funkt_0_1, |
644 | | &hf_s7comm_szl_0131_0002_funkt_0_2, |
645 | | &hf_s7comm_szl_0131_0002_funkt_0_3, |
646 | | &hf_s7comm_szl_0131_0002_funkt_0_4, |
647 | | &hf_s7comm_szl_0131_0002_funkt_0_5, |
648 | | &hf_s7comm_szl_0131_0002_funkt_0_6, |
649 | | &hf_s7comm_szl_0131_0002_funkt_0_7, |
650 | | NULL |
651 | | }; |
652 | | static int ett_s7comm_szl_0131_0002_funkt_1; |
653 | | static int * const s7comm_szl_0131_0002_funkt_1_fields[] = { |
654 | | &hf_s7comm_szl_0131_0002_funkt_1_0, |
655 | | &hf_s7comm_szl_0131_0002_funkt_1_1, |
656 | | &hf_s7comm_szl_0131_0002_funkt_1_2, |
657 | | &hf_s7comm_szl_0131_0002_funkt_1_3, |
658 | | &hf_s7comm_szl_0131_0002_funkt_1_4, |
659 | | &hf_s7comm_szl_0131_0002_funkt_1_5, |
660 | | &hf_s7comm_szl_0131_0002_funkt_1_6, |
661 | | &hf_s7comm_szl_0131_0002_funkt_1_7, |
662 | | NULL |
663 | | }; |
664 | | static int ett_s7comm_szl_0131_0002_funkt_2; |
665 | | static int * const s7comm_szl_0131_0002_funkt_2_fields[] = { |
666 | | &hf_s7comm_szl_0131_0002_funkt_2_0, |
667 | | &hf_s7comm_szl_0131_0002_funkt_2_1, |
668 | | &hf_s7comm_szl_0131_0002_funkt_2_2, |
669 | | &hf_s7comm_szl_0131_0002_funkt_2_3, |
670 | | &hf_s7comm_szl_0131_0002_funkt_2_4, |
671 | | &hf_s7comm_szl_0131_0002_funkt_2_5, |
672 | | &hf_s7comm_szl_0131_0002_funkt_2_6, |
673 | | &hf_s7comm_szl_0131_0002_funkt_2_7, |
674 | | NULL |
675 | | }; |
676 | | static int ett_s7comm_szl_0131_0002_trgereig_0; |
677 | | static int * const s7comm_szl_0131_0002_trgereig_0_fields[] = { |
678 | | &hf_s7comm_szl_0131_0002_trgereig_0_0, |
679 | | &hf_s7comm_szl_0131_0002_trgereig_0_1, |
680 | | &hf_s7comm_szl_0131_0002_trgereig_0_2, |
681 | | &hf_s7comm_szl_0131_0002_trgereig_0_3, |
682 | | &hf_s7comm_szl_0131_0002_trgereig_0_4, |
683 | | &hf_s7comm_szl_0131_0002_trgereig_0_5, |
684 | | &hf_s7comm_szl_0131_0002_trgereig_0_6, |
685 | | &hf_s7comm_szl_0131_0002_trgereig_0_7, |
686 | | NULL |
687 | | }; |
688 | | static int ett_s7comm_szl_0131_0002_trgereig_1; |
689 | | static int * const s7comm_szl_0131_0002_trgereig_1_fields[] = { |
690 | | &hf_s7comm_szl_0131_0002_trgereig_1_0, |
691 | | &hf_s7comm_szl_0131_0002_trgereig_1_1, |
692 | | &hf_s7comm_szl_0131_0002_trgereig_1_2, |
693 | | &hf_s7comm_szl_0131_0002_trgereig_1_3, |
694 | | &hf_s7comm_szl_0131_0002_trgereig_1_4, |
695 | | &hf_s7comm_szl_0131_0002_trgereig_1_5, |
696 | | &hf_s7comm_szl_0131_0002_trgereig_1_6, |
697 | | &hf_s7comm_szl_0131_0002_trgereig_1_7, |
698 | | NULL |
699 | | }; |
700 | | |
701 | | static int hf_s7comm_szl_0131_0003_index; |
702 | | static int hf_s7comm_szl_0131_0003_funkt_0; |
703 | | static int hf_s7comm_szl_0131_0003_funkt_0_0; |
704 | | static int hf_s7comm_szl_0131_0003_funkt_0_1; |
705 | | static int hf_s7comm_szl_0131_0003_funkt_0_2; |
706 | | static int hf_s7comm_szl_0131_0003_funkt_0_3; |
707 | | static int hf_s7comm_szl_0131_0003_funkt_0_4; |
708 | | static int hf_s7comm_szl_0131_0003_funkt_0_5; |
709 | | static int hf_s7comm_szl_0131_0003_funkt_0_6; |
710 | | static int hf_s7comm_szl_0131_0003_funkt_0_7; |
711 | | static int hf_s7comm_szl_0131_0003_funkt_1; |
712 | | static int hf_s7comm_szl_0131_0003_funkt_1_0; |
713 | | static int hf_s7comm_szl_0131_0003_funkt_1_1; |
714 | | static int hf_s7comm_szl_0131_0003_funkt_1_2; |
715 | | static int hf_s7comm_szl_0131_0003_funkt_1_3; |
716 | | static int hf_s7comm_szl_0131_0003_funkt_1_4; |
717 | | static int hf_s7comm_szl_0131_0003_funkt_1_5; |
718 | | static int hf_s7comm_szl_0131_0003_funkt_1_6; |
719 | | static int hf_s7comm_szl_0131_0003_funkt_1_7; |
720 | | static int hf_s7comm_szl_0131_0003_funkt_2; |
721 | | static int hf_s7comm_szl_0131_0003_funkt_2_0; |
722 | | static int hf_s7comm_szl_0131_0003_funkt_2_1; |
723 | | static int hf_s7comm_szl_0131_0003_funkt_2_2; |
724 | | static int hf_s7comm_szl_0131_0003_funkt_2_3; |
725 | | static int hf_s7comm_szl_0131_0003_funkt_2_4; |
726 | | static int hf_s7comm_szl_0131_0003_funkt_2_5; |
727 | | static int hf_s7comm_szl_0131_0003_funkt_2_6; |
728 | | static int hf_s7comm_szl_0131_0003_funkt_2_7; |
729 | | static int hf_s7comm_szl_0131_0003_funkt_3; |
730 | | static int hf_s7comm_szl_0131_0003_funkt_3_0; |
731 | | static int hf_s7comm_szl_0131_0003_funkt_3_1; |
732 | | static int hf_s7comm_szl_0131_0003_funkt_3_2; |
733 | | static int hf_s7comm_szl_0131_0003_funkt_3_3; |
734 | | static int hf_s7comm_szl_0131_0003_funkt_3_4; |
735 | | static int hf_s7comm_szl_0131_0003_funkt_3_5; |
736 | | static int hf_s7comm_szl_0131_0003_funkt_3_6; |
737 | | static int hf_s7comm_szl_0131_0003_funkt_3_7; |
738 | | static int hf_s7comm_szl_0131_0003_data; |
739 | | static int hf_s7comm_szl_0131_0003_anz; |
740 | | static int hf_s7comm_szl_0131_0003_per_min; |
741 | | static int hf_s7comm_szl_0131_0003_per_max; |
742 | | static int hf_s7comm_szl_0131_0003_res; |
743 | | |
744 | | static int ett_s7comm_szl_0131_0003_funkt_0; |
745 | | static int * const s7comm_szl_0131_0003_funkt_0_fields[] = { |
746 | | &hf_s7comm_szl_0131_0003_funkt_0_0, |
747 | | &hf_s7comm_szl_0131_0003_funkt_0_1, |
748 | | &hf_s7comm_szl_0131_0003_funkt_0_2, |
749 | | &hf_s7comm_szl_0131_0003_funkt_0_3, |
750 | | &hf_s7comm_szl_0131_0003_funkt_0_4, |
751 | | &hf_s7comm_szl_0131_0003_funkt_0_5, |
752 | | &hf_s7comm_szl_0131_0003_funkt_0_6, |
753 | | &hf_s7comm_szl_0131_0003_funkt_0_7, |
754 | | NULL |
755 | | }; |
756 | | static int ett_s7comm_szl_0131_0003_funkt_1; |
757 | | static int * const s7comm_szl_0131_0003_funkt_1_fields[] = { |
758 | | &hf_s7comm_szl_0131_0003_funkt_1_0, |
759 | | &hf_s7comm_szl_0131_0003_funkt_1_1, |
760 | | &hf_s7comm_szl_0131_0003_funkt_1_2, |
761 | | &hf_s7comm_szl_0131_0003_funkt_1_3, |
762 | | &hf_s7comm_szl_0131_0003_funkt_1_4, |
763 | | &hf_s7comm_szl_0131_0003_funkt_1_5, |
764 | | &hf_s7comm_szl_0131_0003_funkt_1_6, |
765 | | &hf_s7comm_szl_0131_0003_funkt_1_7, |
766 | | NULL |
767 | | }; |
768 | | static int ett_s7comm_szl_0131_0003_funkt_2; |
769 | | static int * const s7comm_szl_0131_0003_funkt_2_fields[] = { |
770 | | &hf_s7comm_szl_0131_0003_funkt_2_0, |
771 | | &hf_s7comm_szl_0131_0003_funkt_2_1, |
772 | | &hf_s7comm_szl_0131_0003_funkt_2_2, |
773 | | &hf_s7comm_szl_0131_0003_funkt_2_3, |
774 | | &hf_s7comm_szl_0131_0003_funkt_2_4, |
775 | | &hf_s7comm_szl_0131_0003_funkt_2_5, |
776 | | &hf_s7comm_szl_0131_0003_funkt_2_6, |
777 | | &hf_s7comm_szl_0131_0003_funkt_2_7, |
778 | | NULL |
779 | | }; |
780 | | static int ett_s7comm_szl_0131_0003_funkt_3; |
781 | | static int * const s7comm_szl_0131_0003_funkt_3_fields[] = { |
782 | | &hf_s7comm_szl_0131_0003_funkt_3_0, |
783 | | &hf_s7comm_szl_0131_0003_funkt_3_1, |
784 | | &hf_s7comm_szl_0131_0003_funkt_3_2, |
785 | | &hf_s7comm_szl_0131_0003_funkt_3_3, |
786 | | &hf_s7comm_szl_0131_0003_funkt_3_4, |
787 | | &hf_s7comm_szl_0131_0003_funkt_3_5, |
788 | | &hf_s7comm_szl_0131_0003_funkt_3_6, |
789 | | &hf_s7comm_szl_0131_0003_funkt_3_7, |
790 | | NULL |
791 | | }; |
792 | | |
793 | | static int hf_s7comm_szl_0131_0004_index; |
794 | | static int hf_s7comm_szl_0131_0004_funkt_0; |
795 | | static int hf_s7comm_szl_0131_0004_funkt_0_0; |
796 | | static int hf_s7comm_szl_0131_0004_funkt_0_1; |
797 | | static int hf_s7comm_szl_0131_0004_funkt_0_2; |
798 | | static int hf_s7comm_szl_0131_0004_funkt_0_3; |
799 | | static int hf_s7comm_szl_0131_0004_funkt_0_4; |
800 | | static int hf_s7comm_szl_0131_0004_funkt_0_5; |
801 | | static int hf_s7comm_szl_0131_0004_funkt_0_6; |
802 | | static int hf_s7comm_szl_0131_0004_funkt_0_7; |
803 | | static int hf_s7comm_szl_0131_0004_funkt_1; |
804 | | static int hf_s7comm_szl_0131_0004_funkt_1_0; |
805 | | static int hf_s7comm_szl_0131_0004_funkt_1_1; |
806 | | static int hf_s7comm_szl_0131_0004_funkt_1_2; |
807 | | static int hf_s7comm_szl_0131_0004_funkt_1_3; |
808 | | static int hf_s7comm_szl_0131_0004_funkt_1_4; |
809 | | static int hf_s7comm_szl_0131_0004_funkt_1_5; |
810 | | static int hf_s7comm_szl_0131_0004_funkt_1_6; |
811 | | static int hf_s7comm_szl_0131_0004_funkt_1_7; |
812 | | static int hf_s7comm_szl_0131_0004_funkt_2; |
813 | | static int hf_s7comm_szl_0131_0004_funkt_2_0; |
814 | | static int hf_s7comm_szl_0131_0004_funkt_2_1; |
815 | | static int hf_s7comm_szl_0131_0004_funkt_2_2; |
816 | | static int hf_s7comm_szl_0131_0004_funkt_2_3; |
817 | | static int hf_s7comm_szl_0131_0004_funkt_2_4; |
818 | | static int hf_s7comm_szl_0131_0004_funkt_2_5; |
819 | | static int hf_s7comm_szl_0131_0004_funkt_2_6; |
820 | | static int hf_s7comm_szl_0131_0004_funkt_2_7; |
821 | | static int hf_s7comm_szl_0131_0004_funkt_3; |
822 | | static int hf_s7comm_szl_0131_0004_funkt_3_0; |
823 | | static int hf_s7comm_szl_0131_0004_funkt_3_1; |
824 | | static int hf_s7comm_szl_0131_0004_funkt_3_2; |
825 | | static int hf_s7comm_szl_0131_0004_funkt_3_3; |
826 | | static int hf_s7comm_szl_0131_0004_funkt_3_4; |
827 | | static int hf_s7comm_szl_0131_0004_funkt_3_5; |
828 | | static int hf_s7comm_szl_0131_0004_funkt_3_6; |
829 | | static int hf_s7comm_szl_0131_0004_funkt_3_7; |
830 | | static int hf_s7comm_szl_0131_0004_funkt_4; |
831 | | static int hf_s7comm_szl_0131_0004_funkt_4_0; |
832 | | static int hf_s7comm_szl_0131_0004_funkt_4_1; |
833 | | static int hf_s7comm_szl_0131_0004_funkt_4_2; |
834 | | static int hf_s7comm_szl_0131_0004_funkt_4_3; |
835 | | static int hf_s7comm_szl_0131_0004_funkt_4_4; |
836 | | static int hf_s7comm_szl_0131_0004_funkt_4_5; |
837 | | static int hf_s7comm_szl_0131_0004_funkt_4_6; |
838 | | static int hf_s7comm_szl_0131_0004_funkt_4_7; |
839 | | static int hf_s7comm_szl_0131_0004_funkt_5; |
840 | | static int hf_s7comm_szl_0131_0004_funkt_6; |
841 | | static int hf_s7comm_szl_0131_0004_funkt_7; |
842 | | static int hf_s7comm_szl_0131_0004_kop; |
843 | | static int hf_s7comm_szl_0131_0004_del; |
844 | | static int hf_s7comm_szl_0131_0004_kett; |
845 | | static int hf_s7comm_szl_0131_0004_hoch; |
846 | | static int hf_s7comm_szl_0131_0004_ver; |
847 | | static int hf_s7comm_szl_0131_0004_res; |
848 | | |
849 | | static int ett_s7comm_szl_0131_0004_funkt_0; |
850 | | static int * const s7comm_szl_0131_0004_funkt_0_fields[] = { |
851 | | &hf_s7comm_szl_0131_0004_funkt_0_0, |
852 | | &hf_s7comm_szl_0131_0004_funkt_0_1, |
853 | | &hf_s7comm_szl_0131_0004_funkt_0_2, |
854 | | &hf_s7comm_szl_0131_0004_funkt_0_3, |
855 | | &hf_s7comm_szl_0131_0004_funkt_0_4, |
856 | | &hf_s7comm_szl_0131_0004_funkt_0_5, |
857 | | &hf_s7comm_szl_0131_0004_funkt_0_6, |
858 | | &hf_s7comm_szl_0131_0004_funkt_0_7, |
859 | | NULL |
860 | | }; |
861 | | static int ett_s7comm_szl_0131_0004_funkt_1; |
862 | | static int * const s7comm_szl_0131_0004_funkt_1_fields[] = { |
863 | | &hf_s7comm_szl_0131_0004_funkt_1_0, |
864 | | &hf_s7comm_szl_0131_0004_funkt_1_1, |
865 | | &hf_s7comm_szl_0131_0004_funkt_1_2, |
866 | | &hf_s7comm_szl_0131_0004_funkt_1_3, |
867 | | &hf_s7comm_szl_0131_0004_funkt_1_4, |
868 | | &hf_s7comm_szl_0131_0004_funkt_1_5, |
869 | | &hf_s7comm_szl_0131_0004_funkt_1_6, |
870 | | &hf_s7comm_szl_0131_0004_funkt_1_7, |
871 | | NULL |
872 | | }; |
873 | | static int ett_s7comm_szl_0131_0004_funkt_2; |
874 | | static int * const s7comm_szl_0131_0004_funkt_2_fields[] = { |
875 | | &hf_s7comm_szl_0131_0004_funkt_2_0, |
876 | | &hf_s7comm_szl_0131_0004_funkt_2_1, |
877 | | &hf_s7comm_szl_0131_0004_funkt_2_2, |
878 | | &hf_s7comm_szl_0131_0004_funkt_2_3, |
879 | | &hf_s7comm_szl_0131_0004_funkt_2_4, |
880 | | &hf_s7comm_szl_0131_0004_funkt_2_5, |
881 | | &hf_s7comm_szl_0131_0004_funkt_2_6, |
882 | | &hf_s7comm_szl_0131_0004_funkt_2_7, |
883 | | NULL |
884 | | }; |
885 | | static int ett_s7comm_szl_0131_0004_funkt_3; |
886 | | static int * const s7comm_szl_0131_0004_funkt_3_fields[] = { |
887 | | &hf_s7comm_szl_0131_0004_funkt_3_0, |
888 | | &hf_s7comm_szl_0131_0004_funkt_3_1, |
889 | | &hf_s7comm_szl_0131_0004_funkt_3_2, |
890 | | &hf_s7comm_szl_0131_0004_funkt_3_3, |
891 | | &hf_s7comm_szl_0131_0004_funkt_3_4, |
892 | | &hf_s7comm_szl_0131_0004_funkt_3_5, |
893 | | &hf_s7comm_szl_0131_0004_funkt_3_6, |
894 | | &hf_s7comm_szl_0131_0004_funkt_3_7, |
895 | | NULL |
896 | | }; |
897 | | static int ett_s7comm_szl_0131_0004_funkt_4; |
898 | | static int * const s7comm_szl_0131_0004_funkt_4_fields[] = { |
899 | | &hf_s7comm_szl_0131_0004_funkt_4_0, |
900 | | &hf_s7comm_szl_0131_0004_funkt_4_1, |
901 | | &hf_s7comm_szl_0131_0004_funkt_4_2, |
902 | | &hf_s7comm_szl_0131_0004_funkt_4_3, |
903 | | &hf_s7comm_szl_0131_0004_funkt_4_4, |
904 | | &hf_s7comm_szl_0131_0004_funkt_4_5, |
905 | | &hf_s7comm_szl_0131_0004_funkt_4_6, |
906 | | &hf_s7comm_szl_0131_0004_funkt_4_7, |
907 | | NULL |
908 | | }; |
909 | | |
910 | | static int hf_s7comm_szl_0131_0005_index; |
911 | | static int hf_s7comm_szl_0131_0005_funkt_0; |
912 | | static int hf_s7comm_szl_0131_0005_funkt_0_0; |
913 | | static int hf_s7comm_szl_0131_0005_funkt_0_1; |
914 | | static int hf_s7comm_szl_0131_0005_funkt_0_2; |
915 | | static int hf_s7comm_szl_0131_0005_funkt_0_3; |
916 | | static int hf_s7comm_szl_0131_0005_funkt_0_4; |
917 | | static int hf_s7comm_szl_0131_0005_funkt_0_5; |
918 | | static int hf_s7comm_szl_0131_0005_funkt_0_6; |
919 | | static int hf_s7comm_szl_0131_0005_funkt_0_7; |
920 | | static int hf_s7comm_szl_0131_0005_funkt_1; |
921 | | static int hf_s7comm_szl_0131_0005_funkt_2; |
922 | | static int hf_s7comm_szl_0131_0005_funkt_3; |
923 | | static int hf_s7comm_szl_0131_0005_funkt_4; |
924 | | static int hf_s7comm_szl_0131_0005_funkt_5; |
925 | | static int hf_s7comm_szl_0131_0005_funkt_6; |
926 | | static int hf_s7comm_szl_0131_0005_funkt_7; |
927 | | static int hf_s7comm_szl_0131_0005_anz_sen; |
928 | | static int hf_s7comm_szl_0131_0005_anz_ein; |
929 | | static int hf_s7comm_szl_0131_0005_anz_mel; |
930 | | static int hf_s7comm_szl_0131_0005_res; |
931 | | |
932 | | static int ett_s7comm_szl_0131_0005_funkt_0; |
933 | | static int * const s7comm_szl_0131_0005_funkt_0_fields[] = { |
934 | | &hf_s7comm_szl_0131_0005_funkt_0_0, |
935 | | &hf_s7comm_szl_0131_0005_funkt_0_1, |
936 | | &hf_s7comm_szl_0131_0005_funkt_0_2, |
937 | | &hf_s7comm_szl_0131_0005_funkt_0_3, |
938 | | &hf_s7comm_szl_0131_0005_funkt_0_4, |
939 | | &hf_s7comm_szl_0131_0005_funkt_0_5, |
940 | | &hf_s7comm_szl_0131_0005_funkt_0_6, |
941 | | &hf_s7comm_szl_0131_0005_funkt_0_7, |
942 | | NULL |
943 | | }; |
944 | | |
945 | | static int hf_s7comm_szl_0131_0006_index; |
946 | | static int hf_s7comm_szl_0131_0006_funkt_0; |
947 | | static int hf_s7comm_szl_0131_0006_funkt_0_0; |
948 | | static int hf_s7comm_szl_0131_0006_funkt_0_1; |
949 | | static int hf_s7comm_szl_0131_0006_funkt_0_2; |
950 | | static int hf_s7comm_szl_0131_0006_funkt_0_3; |
951 | | static int hf_s7comm_szl_0131_0006_funkt_0_4; |
952 | | static int hf_s7comm_szl_0131_0006_funkt_0_5; |
953 | | static int hf_s7comm_szl_0131_0006_funkt_0_6; |
954 | | static int hf_s7comm_szl_0131_0006_funkt_0_7; |
955 | | static int hf_s7comm_szl_0131_0006_funkt_1; |
956 | | static int hf_s7comm_szl_0131_0006_funkt_1_0; |
957 | | static int hf_s7comm_szl_0131_0006_funkt_1_1; |
958 | | static int hf_s7comm_szl_0131_0006_funkt_1_2; |
959 | | static int hf_s7comm_szl_0131_0006_funkt_1_3; |
960 | | static int hf_s7comm_szl_0131_0006_funkt_1_4; |
961 | | static int hf_s7comm_szl_0131_0006_funkt_1_5; |
962 | | static int hf_s7comm_szl_0131_0006_funkt_1_6; |
963 | | static int hf_s7comm_szl_0131_0006_funkt_1_7; |
964 | | static int hf_s7comm_szl_0131_0006_funkt_2; |
965 | | static int hf_s7comm_szl_0131_0006_funkt_2_0; |
966 | | static int hf_s7comm_szl_0131_0006_funkt_2_1; |
967 | | static int hf_s7comm_szl_0131_0006_funkt_2_2; |
968 | | static int hf_s7comm_szl_0131_0006_funkt_2_3; |
969 | | static int hf_s7comm_szl_0131_0006_funkt_2_4; |
970 | | static int hf_s7comm_szl_0131_0006_funkt_2_5; |
971 | | static int hf_s7comm_szl_0131_0006_funkt_2_6; |
972 | | static int hf_s7comm_szl_0131_0006_funkt_2_7; |
973 | | static int hf_s7comm_szl_0131_0006_funkt_3; |
974 | | static int hf_s7comm_szl_0131_0006_funkt_3_0; |
975 | | static int hf_s7comm_szl_0131_0006_funkt_3_1; |
976 | | static int hf_s7comm_szl_0131_0006_funkt_3_2; |
977 | | static int hf_s7comm_szl_0131_0006_funkt_3_3; |
978 | | static int hf_s7comm_szl_0131_0006_funkt_3_4; |
979 | | static int hf_s7comm_szl_0131_0006_funkt_3_5; |
980 | | static int hf_s7comm_szl_0131_0006_funkt_3_6; |
981 | | static int hf_s7comm_szl_0131_0006_funkt_3_7; |
982 | | static int hf_s7comm_szl_0131_0006_funkt_4; |
983 | | static int hf_s7comm_szl_0131_0006_funkt_5; |
984 | | static int hf_s7comm_szl_0131_0006_funkt_6; |
985 | | static int hf_s7comm_szl_0131_0006_funkt_6_0; |
986 | | static int hf_s7comm_szl_0131_0006_funkt_6_1; |
987 | | static int hf_s7comm_szl_0131_0006_funkt_6_2; |
988 | | static int hf_s7comm_szl_0131_0006_funkt_6_3; |
989 | | static int hf_s7comm_szl_0131_0006_funkt_6_4; |
990 | | static int hf_s7comm_szl_0131_0006_funkt_6_5; |
991 | | static int hf_s7comm_szl_0131_0006_funkt_6_6; |
992 | | static int hf_s7comm_szl_0131_0006_funkt_6_7; |
993 | | static int hf_s7comm_szl_0131_0006_funkt_7; |
994 | | static int hf_s7comm_szl_0131_0006_funkt_7_0; |
995 | | static int hf_s7comm_szl_0131_0006_funkt_7_1; |
996 | | static int hf_s7comm_szl_0131_0006_funkt_7_2; |
997 | | static int hf_s7comm_szl_0131_0006_funkt_7_3; |
998 | | static int hf_s7comm_szl_0131_0006_funkt_7_4; |
999 | | static int hf_s7comm_szl_0131_0006_funkt_7_5; |
1000 | | static int hf_s7comm_szl_0131_0006_funkt_7_6; |
1001 | | static int hf_s7comm_szl_0131_0006_funkt_7_7; |
1002 | | static int hf_s7comm_szl_0131_0006_schnell; |
1003 | | static int hf_s7comm_szl_0131_0006_zugtyp_0; |
1004 | | static int hf_s7comm_szl_0131_0006_zugtyp_0_0; |
1005 | | static int hf_s7comm_szl_0131_0006_zugtyp_0_1; |
1006 | | static int hf_s7comm_szl_0131_0006_zugtyp_0_2; |
1007 | | static int hf_s7comm_szl_0131_0006_zugtyp_0_3; |
1008 | | static int hf_s7comm_szl_0131_0006_zugtyp_0_4; |
1009 | | static int hf_s7comm_szl_0131_0006_zugtyp_0_5; |
1010 | | static int hf_s7comm_szl_0131_0006_zugtyp_0_6; |
1011 | | static int hf_s7comm_szl_0131_0006_zugtyp_0_7; |
1012 | | static int hf_s7comm_szl_0131_0006_zugtyp_1; |
1013 | | static int hf_s7comm_szl_0131_0006_zugtyp_1_0; |
1014 | | static int hf_s7comm_szl_0131_0006_zugtyp_1_1; |
1015 | | static int hf_s7comm_szl_0131_0006_zugtyp_1_2; |
1016 | | static int hf_s7comm_szl_0131_0006_zugtyp_1_3; |
1017 | | static int hf_s7comm_szl_0131_0006_zugtyp_1_4; |
1018 | | static int hf_s7comm_szl_0131_0006_zugtyp_1_5; |
1019 | | static int hf_s7comm_szl_0131_0006_zugtyp_1_6; |
1020 | | static int hf_s7comm_szl_0131_0006_zugtyp_1_7; |
1021 | | static int hf_s7comm_szl_0131_0006_zugtyp_2; |
1022 | | static int hf_s7comm_szl_0131_0006_zugtyp_2_0; |
1023 | | static int hf_s7comm_szl_0131_0006_zugtyp_2_1; |
1024 | | static int hf_s7comm_szl_0131_0006_zugtyp_2_2; |
1025 | | static int hf_s7comm_szl_0131_0006_zugtyp_2_3; |
1026 | | static int hf_s7comm_szl_0131_0006_zugtyp_2_4; |
1027 | | static int hf_s7comm_szl_0131_0006_zugtyp_2_5; |
1028 | | static int hf_s7comm_szl_0131_0006_zugtyp_2_6; |
1029 | | static int hf_s7comm_szl_0131_0006_zugtyp_2_7; |
1030 | | static int hf_s7comm_szl_0131_0006_zugtyp_3; |
1031 | | static int hf_s7comm_szl_0131_0006_zugtyp_3_0; |
1032 | | static int hf_s7comm_szl_0131_0006_zugtyp_3_1; |
1033 | | static int hf_s7comm_szl_0131_0006_zugtyp_3_2; |
1034 | | static int hf_s7comm_szl_0131_0006_zugtyp_3_3; |
1035 | | static int hf_s7comm_szl_0131_0006_zugtyp_3_4; |
1036 | | static int hf_s7comm_szl_0131_0006_zugtyp_3_5; |
1037 | | static int hf_s7comm_szl_0131_0006_zugtyp_3_6; |
1038 | | static int hf_s7comm_szl_0131_0006_zugtyp_3_7; |
1039 | | static int hf_s7comm_szl_0131_0006_zugtyp_4; |
1040 | | static int hf_s7comm_szl_0131_0006_zugtyp_5; |
1041 | | static int hf_s7comm_szl_0131_0006_zugtyp_6; |
1042 | | static int hf_s7comm_szl_0131_0006_zugtyp_6_0; |
1043 | | static int hf_s7comm_szl_0131_0006_zugtyp_6_1; |
1044 | | static int hf_s7comm_szl_0131_0006_zugtyp_6_2; |
1045 | | static int hf_s7comm_szl_0131_0006_zugtyp_6_3; |
1046 | | static int hf_s7comm_szl_0131_0006_zugtyp_6_4; |
1047 | | static int hf_s7comm_szl_0131_0006_zugtyp_6_5; |
1048 | | static int hf_s7comm_szl_0131_0006_zugtyp_6_6; |
1049 | | static int hf_s7comm_szl_0131_0006_zugtyp_6_7; |
1050 | | static int hf_s7comm_szl_0131_0006_zugtyp_7; |
1051 | | static int hf_s7comm_szl_0131_0006_zugtyp_7_0; |
1052 | | static int hf_s7comm_szl_0131_0006_zugtyp_7_1; |
1053 | | static int hf_s7comm_szl_0131_0006_zugtyp_7_2; |
1054 | | static int hf_s7comm_szl_0131_0006_zugtyp_7_3; |
1055 | | static int hf_s7comm_szl_0131_0006_zugtyp_7_4; |
1056 | | static int hf_s7comm_szl_0131_0006_zugtyp_7_5; |
1057 | | static int hf_s7comm_szl_0131_0006_zugtyp_7_6; |
1058 | | static int hf_s7comm_szl_0131_0006_zugtyp_7_7; |
1059 | | static int hf_s7comm_szl_0131_0006_res1; |
1060 | | static int hf_s7comm_szl_0131_0006_max_sd_empf; |
1061 | | static int hf_s7comm_szl_0131_0006_max_sd_al8p; |
1062 | | static int hf_s7comm_szl_0131_0006_max_inst; |
1063 | | static int hf_s7comm_szl_0131_0006_res2; |
1064 | | static int hf_s7comm_szl_0131_0006_verb_proj; |
1065 | | static int hf_s7comm_szl_0131_0006_verb_prog; |
1066 | | static int hf_s7comm_szl_0131_0006_res3; |
1067 | | |
1068 | | static int ett_s7comm_szl_0131_0006_funkt_0; |
1069 | | static int * const s7comm_szl_0131_0006_funkt_0_fields[] = { |
1070 | | &hf_s7comm_szl_0131_0006_funkt_0_0, |
1071 | | &hf_s7comm_szl_0131_0006_funkt_0_1, |
1072 | | &hf_s7comm_szl_0131_0006_funkt_0_2, |
1073 | | &hf_s7comm_szl_0131_0006_funkt_0_3, |
1074 | | &hf_s7comm_szl_0131_0006_funkt_0_4, |
1075 | | &hf_s7comm_szl_0131_0006_funkt_0_5, |
1076 | | &hf_s7comm_szl_0131_0006_funkt_0_6, |
1077 | | &hf_s7comm_szl_0131_0006_funkt_0_7, |
1078 | | NULL |
1079 | | }; |
1080 | | static int ett_s7comm_szl_0131_0006_funkt_1; |
1081 | | static int * const s7comm_szl_0131_0006_funkt_1_fields[] = { |
1082 | | &hf_s7comm_szl_0131_0006_funkt_1_0, |
1083 | | &hf_s7comm_szl_0131_0006_funkt_1_1, |
1084 | | &hf_s7comm_szl_0131_0006_funkt_1_2, |
1085 | | &hf_s7comm_szl_0131_0006_funkt_1_3, |
1086 | | &hf_s7comm_szl_0131_0006_funkt_1_4, |
1087 | | &hf_s7comm_szl_0131_0006_funkt_1_5, |
1088 | | &hf_s7comm_szl_0131_0006_funkt_1_6, |
1089 | | &hf_s7comm_szl_0131_0006_funkt_1_7, |
1090 | | NULL |
1091 | | }; |
1092 | | static int ett_s7comm_szl_0131_0006_funkt_2; |
1093 | | static int * const s7comm_szl_0131_0006_funkt_2_fields[] = { |
1094 | | &hf_s7comm_szl_0131_0006_funkt_2_0, |
1095 | | &hf_s7comm_szl_0131_0006_funkt_2_1, |
1096 | | &hf_s7comm_szl_0131_0006_funkt_2_2, |
1097 | | &hf_s7comm_szl_0131_0006_funkt_2_3, |
1098 | | &hf_s7comm_szl_0131_0006_funkt_2_4, |
1099 | | &hf_s7comm_szl_0131_0006_funkt_2_5, |
1100 | | &hf_s7comm_szl_0131_0006_funkt_2_6, |
1101 | | &hf_s7comm_szl_0131_0006_funkt_2_7, |
1102 | | NULL |
1103 | | }; |
1104 | | static int ett_s7comm_szl_0131_0006_funkt_3; |
1105 | | static int * const s7comm_szl_0131_0006_funkt_3_fields[] = { |
1106 | | &hf_s7comm_szl_0131_0006_funkt_3_0, |
1107 | | &hf_s7comm_szl_0131_0006_funkt_3_1, |
1108 | | &hf_s7comm_szl_0131_0006_funkt_3_2, |
1109 | | &hf_s7comm_szl_0131_0006_funkt_3_3, |
1110 | | &hf_s7comm_szl_0131_0006_funkt_3_4, |
1111 | | &hf_s7comm_szl_0131_0006_funkt_3_5, |
1112 | | &hf_s7comm_szl_0131_0006_funkt_3_6, |
1113 | | &hf_s7comm_szl_0131_0006_funkt_3_7, |
1114 | | NULL |
1115 | | }; |
1116 | | static int ett_s7comm_szl_0131_0006_funkt_6; |
1117 | | static int * const s7comm_szl_0131_0006_funkt_6_fields[] = { |
1118 | | &hf_s7comm_szl_0131_0006_funkt_6_0, |
1119 | | &hf_s7comm_szl_0131_0006_funkt_6_1, |
1120 | | &hf_s7comm_szl_0131_0006_funkt_6_2, |
1121 | | &hf_s7comm_szl_0131_0006_funkt_6_3, |
1122 | | &hf_s7comm_szl_0131_0006_funkt_6_4, |
1123 | | &hf_s7comm_szl_0131_0006_funkt_6_5, |
1124 | | &hf_s7comm_szl_0131_0006_funkt_6_6, |
1125 | | &hf_s7comm_szl_0131_0006_funkt_6_7, |
1126 | | NULL |
1127 | | }; |
1128 | | static int ett_s7comm_szl_0131_0006_funkt_7; |
1129 | | static int * const s7comm_szl_0131_0006_funkt_7_fields[] = { |
1130 | | &hf_s7comm_szl_0131_0006_funkt_7_0, |
1131 | | &hf_s7comm_szl_0131_0006_funkt_7_1, |
1132 | | &hf_s7comm_szl_0131_0006_funkt_7_2, |
1133 | | &hf_s7comm_szl_0131_0006_funkt_7_3, |
1134 | | &hf_s7comm_szl_0131_0006_funkt_7_4, |
1135 | | &hf_s7comm_szl_0131_0006_funkt_7_5, |
1136 | | &hf_s7comm_szl_0131_0006_funkt_7_6, |
1137 | | &hf_s7comm_szl_0131_0006_funkt_7_7, |
1138 | | NULL |
1139 | | }; |
1140 | | static int ett_s7comm_szl_0131_0006_zugtyp_0; |
1141 | | static int * const s7comm_szl_0131_0006_zugtyp_0_fields[] = { |
1142 | | &hf_s7comm_szl_0131_0006_zugtyp_0_0, |
1143 | | &hf_s7comm_szl_0131_0006_zugtyp_0_1, |
1144 | | &hf_s7comm_szl_0131_0006_zugtyp_0_2, |
1145 | | &hf_s7comm_szl_0131_0006_zugtyp_0_3, |
1146 | | &hf_s7comm_szl_0131_0006_zugtyp_0_4, |
1147 | | &hf_s7comm_szl_0131_0006_zugtyp_0_5, |
1148 | | &hf_s7comm_szl_0131_0006_zugtyp_0_6, |
1149 | | &hf_s7comm_szl_0131_0006_zugtyp_0_7, |
1150 | | NULL |
1151 | | }; |
1152 | | static int ett_s7comm_szl_0131_0006_zugtyp_1; |
1153 | | static int * const s7comm_szl_0131_0006_zugtyp_1_fields[] = { |
1154 | | &hf_s7comm_szl_0131_0006_zugtyp_1_0, |
1155 | | &hf_s7comm_szl_0131_0006_zugtyp_1_1, |
1156 | | &hf_s7comm_szl_0131_0006_zugtyp_1_2, |
1157 | | &hf_s7comm_szl_0131_0006_zugtyp_1_3, |
1158 | | &hf_s7comm_szl_0131_0006_zugtyp_1_4, |
1159 | | &hf_s7comm_szl_0131_0006_zugtyp_1_5, |
1160 | | &hf_s7comm_szl_0131_0006_zugtyp_1_6, |
1161 | | &hf_s7comm_szl_0131_0006_zugtyp_1_7, |
1162 | | NULL |
1163 | | }; |
1164 | | static int ett_s7comm_szl_0131_0006_zugtyp_2; |
1165 | | static int * const s7comm_szl_0131_0006_zugtyp_2_fields[] = { |
1166 | | &hf_s7comm_szl_0131_0006_zugtyp_2_0, |
1167 | | &hf_s7comm_szl_0131_0006_zugtyp_2_1, |
1168 | | &hf_s7comm_szl_0131_0006_zugtyp_2_2, |
1169 | | &hf_s7comm_szl_0131_0006_zugtyp_2_3, |
1170 | | &hf_s7comm_szl_0131_0006_zugtyp_2_4, |
1171 | | &hf_s7comm_szl_0131_0006_zugtyp_2_5, |
1172 | | &hf_s7comm_szl_0131_0006_zugtyp_2_6, |
1173 | | &hf_s7comm_szl_0131_0006_zugtyp_2_7, |
1174 | | NULL |
1175 | | }; |
1176 | | static int ett_s7comm_szl_0131_0006_zugtyp_3; |
1177 | | static int * const s7comm_szl_0131_0006_zugtyp_3_fields[] = { |
1178 | | &hf_s7comm_szl_0131_0006_zugtyp_3_0, |
1179 | | &hf_s7comm_szl_0131_0006_zugtyp_3_1, |
1180 | | &hf_s7comm_szl_0131_0006_zugtyp_3_2, |
1181 | | &hf_s7comm_szl_0131_0006_zugtyp_3_3, |
1182 | | &hf_s7comm_szl_0131_0006_zugtyp_3_4, |
1183 | | &hf_s7comm_szl_0131_0006_zugtyp_3_5, |
1184 | | &hf_s7comm_szl_0131_0006_zugtyp_3_6, |
1185 | | &hf_s7comm_szl_0131_0006_zugtyp_3_7, |
1186 | | NULL |
1187 | | }; |
1188 | | static int ett_s7comm_szl_0131_0006_zugtyp_6; |
1189 | | static int * const s7comm_szl_0131_0006_zugtyp_6_fields[] = { |
1190 | | &hf_s7comm_szl_0131_0006_zugtyp_6_0, |
1191 | | &hf_s7comm_szl_0131_0006_zugtyp_6_1, |
1192 | | &hf_s7comm_szl_0131_0006_zugtyp_6_2, |
1193 | | &hf_s7comm_szl_0131_0006_zugtyp_6_3, |
1194 | | &hf_s7comm_szl_0131_0006_zugtyp_6_4, |
1195 | | &hf_s7comm_szl_0131_0006_zugtyp_6_5, |
1196 | | &hf_s7comm_szl_0131_0006_zugtyp_6_6, |
1197 | | &hf_s7comm_szl_0131_0006_zugtyp_6_7, |
1198 | | NULL |
1199 | | }; |
1200 | | static int ett_s7comm_szl_0131_0006_zugtyp_7; |
1201 | | static int * const s7comm_szl_0131_0006_zugtyp_7_fields[] = { |
1202 | | &hf_s7comm_szl_0131_0006_zugtyp_7_0, |
1203 | | &hf_s7comm_szl_0131_0006_zugtyp_7_1, |
1204 | | &hf_s7comm_szl_0131_0006_zugtyp_7_2, |
1205 | | &hf_s7comm_szl_0131_0006_zugtyp_7_3, |
1206 | | &hf_s7comm_szl_0131_0006_zugtyp_7_4, |
1207 | | &hf_s7comm_szl_0131_0006_zugtyp_7_5, |
1208 | | &hf_s7comm_szl_0131_0006_zugtyp_7_6, |
1209 | | &hf_s7comm_szl_0131_0006_zugtyp_7_7, |
1210 | | NULL |
1211 | | }; |
1212 | | |
1213 | | static int hf_s7comm_szl_0131_0007_index; |
1214 | | static int hf_s7comm_szl_0131_0007_funkt_0; |
1215 | | static int hf_s7comm_szl_0131_0007_funkt_0_0; |
1216 | | static int hf_s7comm_szl_0131_0007_funkt_0_1; |
1217 | | static int hf_s7comm_szl_0131_0007_funkt_0_2; |
1218 | | static int hf_s7comm_szl_0131_0007_funkt_0_3; |
1219 | | static int hf_s7comm_szl_0131_0007_funkt_0_4; |
1220 | | static int hf_s7comm_szl_0131_0007_funkt_0_5; |
1221 | | static int hf_s7comm_szl_0131_0007_funkt_0_6; |
1222 | | static int hf_s7comm_szl_0131_0007_funkt_0_7; |
1223 | | static int hf_s7comm_szl_0131_0007_funkt_1; |
1224 | | static int hf_s7comm_szl_0131_0007_obj_0; |
1225 | | static int hf_s7comm_szl_0131_0007_obj_0_0; |
1226 | | static int hf_s7comm_szl_0131_0007_obj_0_1; |
1227 | | static int hf_s7comm_szl_0131_0007_obj_0_2; |
1228 | | static int hf_s7comm_szl_0131_0007_obj_0_3; |
1229 | | static int hf_s7comm_szl_0131_0007_obj_0_4; |
1230 | | static int hf_s7comm_szl_0131_0007_obj_0_5; |
1231 | | static int hf_s7comm_szl_0131_0007_obj_0_6; |
1232 | | static int hf_s7comm_szl_0131_0007_obj_0_7; |
1233 | | static int hf_s7comm_szl_0131_0007_obj_1; |
1234 | | static int hf_s7comm_szl_0131_0007_kons; |
1235 | | static int hf_s7comm_szl_0131_0007_sen; |
1236 | | static int hf_s7comm_szl_0131_0007_rec; |
1237 | | static int hf_s7comm_szl_0131_0007_time; |
1238 | | static int hf_s7comm_szl_0131_0007_proj; |
1239 | | static int hf_s7comm_szl_0131_0007_alarm; |
1240 | | static int hf_s7comm_szl_0131_0007_mode; |
1241 | | static int hf_s7comm_szl_0131_0007_mode_0; |
1242 | | static int hf_s7comm_szl_0131_0007_mode_1; |
1243 | | static int hf_s7comm_szl_0131_0007_kreis; |
1244 | | static int hf_s7comm_szl_0131_0007_sk_1; |
1245 | | static int hf_s7comm_szl_0131_0007_sk_2; |
1246 | | static int hf_s7comm_szl_0131_0007_ek_1; |
1247 | | static int hf_s7comm_szl_0131_0007_ek_2; |
1248 | | static int hf_s7comm_szl_0131_0007_len_1; |
1249 | | static int hf_s7comm_szl_0131_0007_len_2; |
1250 | | static int hf_s7comm_szl_0131_0007_len_3; |
1251 | | static int hf_s7comm_szl_0131_0007_res; |
1252 | | |
1253 | | static int ett_s7comm_szl_0131_0007_funkt_0; |
1254 | | static int * const s7comm_szl_0131_0007_funkt_0_fields[] = { |
1255 | | &hf_s7comm_szl_0131_0007_funkt_0_0, |
1256 | | &hf_s7comm_szl_0131_0007_funkt_0_1, |
1257 | | &hf_s7comm_szl_0131_0007_funkt_0_2, |
1258 | | &hf_s7comm_szl_0131_0007_funkt_0_3, |
1259 | | &hf_s7comm_szl_0131_0007_funkt_0_4, |
1260 | | &hf_s7comm_szl_0131_0007_funkt_0_5, |
1261 | | &hf_s7comm_szl_0131_0007_funkt_0_6, |
1262 | | &hf_s7comm_szl_0131_0007_funkt_0_7, |
1263 | | NULL |
1264 | | }; |
1265 | | |
1266 | | static int ett_s7comm_szl_0131_0007_obj_0; |
1267 | | static int * const s7comm_szl_0131_0007_obj_0_fields[] = { |
1268 | | &hf_s7comm_szl_0131_0007_obj_0_0, |
1269 | | &hf_s7comm_szl_0131_0007_obj_0_1, |
1270 | | &hf_s7comm_szl_0131_0007_obj_0_2, |
1271 | | &hf_s7comm_szl_0131_0007_obj_0_3, |
1272 | | &hf_s7comm_szl_0131_0007_obj_0_4, |
1273 | | &hf_s7comm_szl_0131_0007_obj_0_5, |
1274 | | &hf_s7comm_szl_0131_0007_obj_0_6, |
1275 | | &hf_s7comm_szl_0131_0007_obj_0_7, |
1276 | | NULL |
1277 | | }; |
1278 | | |
1279 | | static int ett_s7comm_szl_0131_0007_mode; |
1280 | | static int * const s7comm_szl_0131_0007_mode_fields[] = { |
1281 | | &hf_s7comm_szl_0131_0007_mode_0, |
1282 | | &hf_s7comm_szl_0131_0007_mode_1, |
1283 | | NULL |
1284 | | }; |
1285 | | |
1286 | | static int hf_s7comm_szl_0131_0008_index; |
1287 | | static int hf_s7comm_szl_0131_0008_last_1; |
1288 | | static int hf_s7comm_szl_0131_0008_last_1_tb; |
1289 | | static int hf_s7comm_szl_0131_0008_last_2; |
1290 | | static int hf_s7comm_szl_0131_0008_last_2_tb; |
1291 | | static int hf_s7comm_szl_0131_0008_last_3; |
1292 | | static int hf_s7comm_szl_0131_0008_last_3_tb; |
1293 | | static int hf_s7comm_szl_0131_0008_merker; |
1294 | | static int hf_s7comm_szl_0131_0008_merker_tb; |
1295 | | static int hf_s7comm_szl_0131_0008_ea; |
1296 | | static int hf_s7comm_szl_0131_0008_ea_tb; |
1297 | | static int hf_s7comm_szl_0131_0008_tz; |
1298 | | static int hf_s7comm_szl_0131_0008_tz_tb; |
1299 | | static int hf_s7comm_szl_0131_0008_db; |
1300 | | static int hf_s7comm_szl_0131_0008_db_tb; |
1301 | | static int hf_s7comm_szl_0131_0008_ld; |
1302 | | static int hf_s7comm_szl_0131_0008_ld_tb; |
1303 | | static int hf_s7comm_szl_0131_0008_reg; |
1304 | | static int hf_s7comm_szl_0131_0008_reg_tb; |
1305 | | static int hf_s7comm_szl_0131_0008_ba_stali1; |
1306 | | static int hf_s7comm_szl_0131_0008_ba_stali1_tb; |
1307 | | static int hf_s7comm_szl_0131_0008_ba_stali2; |
1308 | | static int hf_s7comm_szl_0131_0008_ba_stali2_tb; |
1309 | | static int hf_s7comm_szl_0131_0008_ba_stali3; |
1310 | | static int hf_s7comm_szl_0131_0008_ba_stali3_tb; |
1311 | | static int hf_s7comm_szl_0131_0008_akku; |
1312 | | static int hf_s7comm_szl_0131_0008_akku_tb; |
1313 | | static int hf_s7comm_szl_0131_0008_address; |
1314 | | static int hf_s7comm_szl_0131_0008_address_tb; |
1315 | | static int hf_s7comm_szl_0131_0008_dbreg; |
1316 | | static int hf_s7comm_szl_0131_0008_dbreg_tb; |
1317 | | static int hf_s7comm_szl_0131_0008_res; |
1318 | | static const value_string s7comm_szl_0131_0008_timebase_names[] = { |
1319 | | { 0, "100 ps" }, |
1320 | | { 1, "1 ns" }, |
1321 | | { 2, "10 ns" }, |
1322 | | { 3, "100 ns" }, |
1323 | | { 4, "1 us" }, |
1324 | | { 5, "10 us" }, |
1325 | | { 6, "100 us" }, |
1326 | | { 7, "1 ms" }, |
1327 | | { 8, "10 ms" }, |
1328 | | { 9, "100 ms" }, |
1329 | | { 10, "1 s" }, |
1330 | | { 11, "10 s" }, |
1331 | | { 12, "100 s" }, |
1332 | | { 13, "1000 s" }, |
1333 | | { 14, "10000 s" }, |
1334 | | { 15, "1000000 s" }, |
1335 | | { 0, NULL } |
1336 | | }; |
1337 | | |
1338 | | static int hf_s7comm_szl_0131_0009_index; |
1339 | | static int hf_s7comm_szl_0131_0009_sync_k; |
1340 | | static int hf_s7comm_szl_0131_0009_sync_k_0; |
1341 | | static int hf_s7comm_szl_0131_0009_sync_k_1; |
1342 | | static int hf_s7comm_szl_0131_0009_sync_k_2; |
1343 | | static int hf_s7comm_szl_0131_0009_sync_mpi; |
1344 | | static int hf_s7comm_szl_0131_0009_sync_mpi_0; |
1345 | | static int hf_s7comm_szl_0131_0009_sync_mpi_1; |
1346 | | static int hf_s7comm_szl_0131_0009_sync_mpi_2; |
1347 | | static int hf_s7comm_szl_0131_0009_sync_mfi; |
1348 | | static int hf_s7comm_szl_0131_0009_sync_mfi_0; |
1349 | | static int hf_s7comm_szl_0131_0009_sync_mfi_1; |
1350 | | static int hf_s7comm_szl_0131_0009_sync_mfi_2; |
1351 | | static int hf_s7comm_szl_0131_0009_res1; |
1352 | | static int hf_s7comm_szl_0131_0009_abw_puf; |
1353 | | static int hf_s7comm_szl_0131_0009_abw_5v; |
1354 | | static int hf_s7comm_szl_0131_0009_anz_bsz; |
1355 | | static int hf_s7comm_szl_0131_0009_res2; |
1356 | | |
1357 | | static int ett_s7comm_szl_0131_0009_sync_k; |
1358 | | static int * const s7comm_szl_0131_0009_sync_k_fields[] = { |
1359 | | &hf_s7comm_szl_0131_0009_sync_k_0, |
1360 | | &hf_s7comm_szl_0131_0009_sync_k_1, |
1361 | | &hf_s7comm_szl_0131_0009_sync_k_2, |
1362 | | NULL |
1363 | | }; |
1364 | | |
1365 | | static int ett_s7comm_szl_0131_0009_sync_mpi; |
1366 | | static int * const s7comm_szl_0131_0009_sync_mpi_fields[] = { |
1367 | | &hf_s7comm_szl_0131_0009_sync_mpi_0, |
1368 | | &hf_s7comm_szl_0131_0009_sync_mpi_1, |
1369 | | &hf_s7comm_szl_0131_0009_sync_mpi_2, |
1370 | | NULL |
1371 | | }; |
1372 | | |
1373 | | static int ett_s7comm_szl_0131_0009_sync_mfi; |
1374 | | static int * const s7comm_szl_0131_0009_sync_mfi_fields[] = { |
1375 | | &hf_s7comm_szl_0131_0009_sync_mfi_0, |
1376 | | &hf_s7comm_szl_0131_0009_sync_mfi_1, |
1377 | | &hf_s7comm_szl_0131_0009_sync_mfi_2, |
1378 | | NULL |
1379 | | }; |
1380 | | |
1381 | | static int hf_s7comm_szl_0131_0010_index; |
1382 | | static int hf_s7comm_szl_0131_0010_funk_1; |
1383 | | static int hf_s7comm_szl_0131_0010_funk_1_0; |
1384 | | static int hf_s7comm_szl_0131_0010_funk_1_1; |
1385 | | static int hf_s7comm_szl_0131_0010_funk_1_2; |
1386 | | static int hf_s7comm_szl_0131_0010_funk_1_3; |
1387 | | static int hf_s7comm_szl_0131_0010_funk_1_4; |
1388 | | static int hf_s7comm_szl_0131_0010_funk_1_5; |
1389 | | static int hf_s7comm_szl_0131_0010_funk_1_6; |
1390 | | static int hf_s7comm_szl_0131_0010_funk_1_7; |
1391 | | static int hf_s7comm_szl_0131_0010_funk_2; |
1392 | | static int hf_s7comm_szl_0131_0010_ber_meld_1; |
1393 | | static int hf_s7comm_szl_0131_0010_ber_meld_1_0; |
1394 | | static int hf_s7comm_szl_0131_0010_ber_meld_1_1; |
1395 | | static int hf_s7comm_szl_0131_0010_ber_meld_1_2; |
1396 | | static int hf_s7comm_szl_0131_0010_ber_meld_1_3; |
1397 | | static int hf_s7comm_szl_0131_0010_ber_meld_1_4; |
1398 | | static int hf_s7comm_szl_0131_0010_ber_meld_1_5; |
1399 | | static int hf_s7comm_szl_0131_0010_ber_meld_1_6; |
1400 | | static int hf_s7comm_szl_0131_0010_ber_meld_1_7; |
1401 | | static int hf_s7comm_szl_0131_0010_ber_meld_2; |
1402 | | static int hf_s7comm_szl_0131_0010_ber_zus_1; |
1403 | | static int hf_s7comm_szl_0131_0010_ber_zus_1_0; |
1404 | | static int hf_s7comm_szl_0131_0010_ber_zus_1_1; |
1405 | | static int hf_s7comm_szl_0131_0010_ber_zus_1_2; |
1406 | | static int hf_s7comm_szl_0131_0010_ber_zus_1_3; |
1407 | | static int hf_s7comm_szl_0131_0010_ber_zus_1_4; |
1408 | | static int hf_s7comm_szl_0131_0010_ber_zus_1_5; |
1409 | | static int hf_s7comm_szl_0131_0010_ber_zus_1_6; |
1410 | | static int hf_s7comm_szl_0131_0010_ber_zus_1_7; |
1411 | | static int hf_s7comm_szl_0131_0010_ber_zus_2; |
1412 | | static int hf_s7comm_szl_0131_0010_typ_zus_1; |
1413 | | static int hf_s7comm_szl_0131_0010_typ_zus_1_0; |
1414 | | static int hf_s7comm_szl_0131_0010_typ_zus_1_1; |
1415 | | static int hf_s7comm_szl_0131_0010_typ_zus_1_2; |
1416 | | static int hf_s7comm_szl_0131_0010_typ_zus_1_3; |
1417 | | static int hf_s7comm_szl_0131_0010_typ_zus_1_4; |
1418 | | static int hf_s7comm_szl_0131_0010_typ_zus_1_5; |
1419 | | static int hf_s7comm_szl_0131_0010_typ_zus_1_6; |
1420 | | static int hf_s7comm_szl_0131_0010_typ_zus_1_7; |
1421 | | static int hf_s7comm_szl_0131_0010_typ_zus_2; |
1422 | | static int hf_s7comm_szl_0131_0010_maxanz_arch; |
1423 | | static int hf_s7comm_szl_0131_0010_res; |
1424 | | |
1425 | | static int ett_s7comm_szl_0131_0010_funk_1; |
1426 | | static int * const s7comm_szl_0131_0010_funk_1_fields[] = { |
1427 | | &hf_s7comm_szl_0131_0010_funk_1_0, |
1428 | | &hf_s7comm_szl_0131_0010_funk_1_1, |
1429 | | &hf_s7comm_szl_0131_0010_funk_1_2, |
1430 | | &hf_s7comm_szl_0131_0010_funk_1_3, |
1431 | | &hf_s7comm_szl_0131_0010_funk_1_4, |
1432 | | &hf_s7comm_szl_0131_0010_funk_1_5, |
1433 | | &hf_s7comm_szl_0131_0010_funk_1_6, |
1434 | | &hf_s7comm_szl_0131_0010_funk_1_7, |
1435 | | NULL |
1436 | | }; |
1437 | | static int ett_s7comm_szl_0131_0010_ber_meld_1; |
1438 | | static int * const s7comm_szl_0131_0010_ber_meld_1_fields[] = { |
1439 | | &hf_s7comm_szl_0131_0010_ber_meld_1_0, |
1440 | | &hf_s7comm_szl_0131_0010_ber_meld_1_1, |
1441 | | &hf_s7comm_szl_0131_0010_ber_meld_1_2, |
1442 | | &hf_s7comm_szl_0131_0010_ber_meld_1_3, |
1443 | | &hf_s7comm_szl_0131_0010_ber_meld_1_4, |
1444 | | &hf_s7comm_szl_0131_0010_ber_meld_1_5, |
1445 | | &hf_s7comm_szl_0131_0010_ber_meld_1_6, |
1446 | | &hf_s7comm_szl_0131_0010_ber_meld_1_7, |
1447 | | NULL |
1448 | | }; |
1449 | | static int ett_s7comm_szl_0131_0010_ber_zus_1; |
1450 | | static int * const s7comm_szl_0131_0010_ber_zus_1_fields[] = { |
1451 | | &hf_s7comm_szl_0131_0010_ber_zus_1_0, |
1452 | | &hf_s7comm_szl_0131_0010_ber_zus_1_1, |
1453 | | &hf_s7comm_szl_0131_0010_ber_zus_1_2, |
1454 | | &hf_s7comm_szl_0131_0010_ber_zus_1_3, |
1455 | | &hf_s7comm_szl_0131_0010_ber_zus_1_4, |
1456 | | &hf_s7comm_szl_0131_0010_ber_zus_1_5, |
1457 | | &hf_s7comm_szl_0131_0010_ber_zus_1_6, |
1458 | | &hf_s7comm_szl_0131_0010_ber_zus_1_7, |
1459 | | NULL |
1460 | | }; |
1461 | | static int ett_s7comm_szl_0131_0010_typ_zus_1; |
1462 | | static int * const s7comm_szl_0131_0010_typ_zus_1_fields[] = { |
1463 | | &hf_s7comm_szl_0131_0010_typ_zus_1_0, |
1464 | | &hf_s7comm_szl_0131_0010_typ_zus_1_1, |
1465 | | &hf_s7comm_szl_0131_0010_typ_zus_1_2, |
1466 | | &hf_s7comm_szl_0131_0010_typ_zus_1_3, |
1467 | | &hf_s7comm_szl_0131_0010_typ_zus_1_4, |
1468 | | &hf_s7comm_szl_0131_0010_typ_zus_1_5, |
1469 | | &hf_s7comm_szl_0131_0010_typ_zus_1_6, |
1470 | | &hf_s7comm_szl_0131_0010_typ_zus_1_7, |
1471 | | NULL |
1472 | | }; |
1473 | | |
1474 | | static int hf_s7comm_szl_0132_0001_index; |
1475 | | static int hf_s7comm_szl_0132_0001_res_pg; |
1476 | | static int hf_s7comm_szl_0132_0001_res_os; |
1477 | | static int hf_s7comm_szl_0132_0001_u_pg; |
1478 | | static int hf_s7comm_szl_0132_0001_u_os; |
1479 | | static int hf_s7comm_szl_0132_0001_proj; |
1480 | | static int hf_s7comm_szl_0132_0001_auf; |
1481 | | static int hf_s7comm_szl_0132_0001_free; |
1482 | | static int hf_s7comm_szl_0132_0001_used; |
1483 | | static int hf_s7comm_szl_0132_0001_last; |
1484 | | static int hf_s7comm_szl_0132_0001_res; |
1485 | | |
1486 | | static int hf_s7comm_szl_0132_0002_index; |
1487 | | static int hf_s7comm_szl_0132_0002_anz; |
1488 | | static int hf_s7comm_szl_0132_0002_res; |
1489 | | |
1490 | | static int hf_s7comm_szl_0132_0004_index; |
1491 | | static int hf_s7comm_szl_0132_0004_key; |
1492 | | static int hf_s7comm_szl_0132_0004_param; |
1493 | | static int hf_s7comm_szl_0132_0004_real; |
1494 | | static int hf_s7comm_szl_0132_0004_bart_sch; |
1495 | | |
1496 | | static const value_string szl_bart_sch_names[] = { |
1497 | | { 0, "undefined or cannot be ascertained" }, |
1498 | | { 1, "RUN" }, |
1499 | | { 2, "RUN_P" }, |
1500 | | { 3, "STOP" }, |
1501 | | { 4, "MRES" }, |
1502 | | { 0, NULL } |
1503 | | }; |
1504 | | static int hf_s7comm_szl_0132_0004_crst_wrst; |
1505 | | static const value_string szl_crst_wrst_names[] = { |
1506 | | { 0, "undefined, does not exist or cannot be ascertained" }, |
1507 | | { 1, "CRST" }, |
1508 | | { 2, "WRST" }, |
1509 | | { 0, NULL } |
1510 | | }; |
1511 | | static int hf_s7comm_szl_0132_0004_ken_f; |
1512 | | static int hf_s7comm_szl_0132_0004_ken_rel; |
1513 | | static int hf_s7comm_szl_0132_0004_ken_ver1_hw; |
1514 | | static int hf_s7comm_szl_0132_0004_ken_ver2_hw; |
1515 | | static int hf_s7comm_szl_0132_0004_ken_ver1_awp; |
1516 | | static int hf_s7comm_szl_0132_0004_ken_ver2_awp; |
1517 | | static int hf_s7comm_szl_0132_0004_res; |
1518 | | |
1519 | | static int hf_s7comm_szl_0132_0005_index; |
1520 | | static int hf_s7comm_szl_0132_0005_erw; |
1521 | | static int hf_s7comm_szl_0132_0005_send; |
1522 | | static int hf_s7comm_szl_0132_0005_moeg; |
1523 | | static int hf_s7comm_szl_0132_0005_ltmerz; |
1524 | | static int hf_s7comm_szl_0132_0005_res; |
1525 | | |
1526 | | static const value_string szl_0132_0005_func_exist_names[] = { |
1527 | | { 0x0, "No" }, |
1528 | | { 0x1, "Yes" }, |
1529 | | { 0, NULL } |
1530 | | }; |
1531 | | |
1532 | | static int hf_s7comm_szl_0132_0006_index; |
1533 | | static int hf_s7comm_szl_0132_0006_used_0; |
1534 | | static int hf_s7comm_szl_0132_0006_used_1; |
1535 | | static int hf_s7comm_szl_0132_0006_used_2; |
1536 | | static int hf_s7comm_szl_0132_0006_used_3; |
1537 | | static int hf_s7comm_szl_0132_0006_used_4; |
1538 | | static int hf_s7comm_szl_0132_0006_used_5; |
1539 | | static int hf_s7comm_szl_0132_0006_used_6; |
1540 | | static int hf_s7comm_szl_0132_0006_used_7; |
1541 | | static int hf_s7comm_szl_0132_0006_anz_schnell; |
1542 | | static int hf_s7comm_szl_0132_0006_anz_inst; |
1543 | | static int hf_s7comm_szl_0132_0006_anz_multicast; |
1544 | | static int hf_s7comm_szl_0132_0006_res; |
1545 | | |
1546 | | static int hf_s7comm_szl_0132_0008_index; |
1547 | | static int hf_s7comm_szl_0132_0008_zykl; |
1548 | | static int hf_s7comm_szl_0132_0008_korr; |
1549 | | static int hf_s7comm_szl_0132_0008_clock0; |
1550 | | static int hf_s7comm_szl_0132_0008_clock1; |
1551 | | static int hf_s7comm_szl_0132_0008_clock2; |
1552 | | static int hf_s7comm_szl_0132_0008_clock3; |
1553 | | static int hf_s7comm_szl_0132_0008_clock4; |
1554 | | static int hf_s7comm_szl_0132_0008_clock5; |
1555 | | static int hf_s7comm_szl_0132_0008_clock6; |
1556 | | static int hf_s7comm_szl_0132_0008_clock7; |
1557 | | static int hf_s7comm_szl_0132_0008_time; |
1558 | | static int hf_s7comm_szl_0132_0008_res; |
1559 | | |
1560 | | static int hf_s7comm_szl_0132_000b_index; |
1561 | | static int hf_s7comm_szl_0132_000b_bszl_0; |
1562 | | static int hf_s7comm_szl_0132_000b_bszl_1; |
1563 | | static int hf_s7comm_szl_0132_000b_bszu_0; |
1564 | | static int hf_s7comm_szl_0132_000b_bszu_1; |
1565 | | static int hf_s7comm_szl_0132_000b_clock0; |
1566 | | static int hf_s7comm_szl_0132_000b_clock1; |
1567 | | static int hf_s7comm_szl_0132_000b_clock2; |
1568 | | static int hf_s7comm_szl_0132_000b_clock3; |
1569 | | static int hf_s7comm_szl_0132_000b_clock4; |
1570 | | static int hf_s7comm_szl_0132_000b_clock5; |
1571 | | static int hf_s7comm_szl_0132_000b_clock6; |
1572 | | static int hf_s7comm_szl_0132_000b_clock7; |
1573 | | static int hf_s7comm_szl_0132_000b_res; |
1574 | | |
1575 | | static int hf_s7comm_szl_0132_000c_index; |
1576 | | static int hf_s7comm_szl_0132_000c_bszl_0; |
1577 | | static int hf_s7comm_szl_0132_000c_bszl_1; |
1578 | | static int hf_s7comm_szl_0132_000c_bszu_0; |
1579 | | static int hf_s7comm_szl_0132_000c_bszu_1; |
1580 | | static int hf_s7comm_szl_0132_000c_clock8; |
1581 | | static int hf_s7comm_szl_0132_000c_clock9; |
1582 | | static int hf_s7comm_szl_0132_000c_clock10; |
1583 | | static int hf_s7comm_szl_0132_000c_clock11; |
1584 | | static int hf_s7comm_szl_0132_000c_clock12; |
1585 | | static int hf_s7comm_szl_0132_000c_clock13; |
1586 | | static int hf_s7comm_szl_0132_000c_clock14; |
1587 | | static int hf_s7comm_szl_0132_000c_clock15; |
1588 | | static int hf_s7comm_szl_0132_000c_res; |
1589 | | |
1590 | | static int hf_s7comm_szl_001c_000x_index; |
1591 | | static int hf_s7comm_szl_001c_0001_name; |
1592 | | static int hf_s7comm_szl_001c_0002_name; |
1593 | | static int hf_s7comm_szl_001c_0003_tag; |
1594 | | static int hf_s7comm_szl_001c_0004_copyright; |
1595 | | static int hf_s7comm_szl_001c_0005_serialn; |
1596 | | static int hf_s7comm_szl_001c_0007_cputypname; |
1597 | | static int hf_s7comm_szl_001c_0008_snmcmmc; |
1598 | | static int hf_s7comm_szl_001c_0009_manufacturer_id; |
1599 | | static int hf_s7comm_szl_001c_0009_profile_id; |
1600 | | static int hf_s7comm_szl_001c_0009_profile_spec_typ; |
1601 | | static int hf_s7comm_szl_001c_000a_oem_copyright_string; |
1602 | | static int hf_s7comm_szl_001c_000a_oem_id; |
1603 | | static int hf_s7comm_szl_001c_000a_oem_add_id; |
1604 | | static int hf_s7comm_szl_001c_000b_loc_id; |
1605 | | static int hf_s7comm_szl_001c_000x_res; |
1606 | | |
1607 | | static int hf_s7comm_szl_0091_0000_adr1; |
1608 | | static int hf_s7comm_szl_0091_0000_adr2; |
1609 | | static int hf_s7comm_szl_0091_0000_logadr; |
1610 | | static int hf_s7comm_szl_0091_0000_solltyp; |
1611 | | static int hf_s7comm_szl_0091_0000_isttyp; |
1612 | | static int hf_s7comm_szl_0091_0000_res1; |
1613 | | static int hf_s7comm_szl_0091_0000_res1_0c_4c_4d; |
1614 | | static int hf_s7comm_szl_0091_0000_res1_0d; |
1615 | | static int hf_s7comm_szl_0091_0000_eastat; |
1616 | | static int hf_s7comm_szl_0091_0000_eastat_0; |
1617 | | static int hf_s7comm_szl_0091_0000_eastat_1; |
1618 | | static int hf_s7comm_szl_0091_0000_eastat_2; |
1619 | | static int hf_s7comm_szl_0091_0000_eastat_3; |
1620 | | static int hf_s7comm_szl_0091_0000_eastat_4; |
1621 | | static int hf_s7comm_szl_0091_0000_eastat_5; |
1622 | | static int hf_s7comm_szl_0091_0000_eastat_6; |
1623 | | static int hf_s7comm_szl_0091_0000_eastat_7; |
1624 | | static int hf_s7comm_szl_0091_0000_eastat_dataid; |
1625 | | static int hf_s7comm_szl_0091_0000_berbgbr; |
1626 | | static int hf_s7comm_szl_0091_0000_berbgbr_0_2; |
1627 | | static int hf_s7comm_szl_0091_0000_berbgbr_3; |
1628 | | static int hf_s7comm_szl_0091_0000_berbgbr_areaid; |
1629 | | static int hf_s7comm_szl_0091_0000_berbgbr_7; |
1630 | | |
1631 | | static const value_string szl_0091_0000_eastat_dataid_names[] = { |
1632 | | { 0xb4, "Input" }, |
1633 | | { 0xb5, "Output" }, |
1634 | | { 0xff, "External DP interface" }, |
1635 | | { 0, NULL } |
1636 | | }; |
1637 | | static const value_string szl_0091_0000_berbgbr_areaid_names[] = { |
1638 | | { 0, "S7-400" }, |
1639 | | { 1, "S7-300" }, |
1640 | | { 2, "ET area" }, |
1641 | | { 3, "P area" }, |
1642 | | { 4, "Q area" }, |
1643 | | { 5, "IM3 area" }, |
1644 | | { 6, "IM4 area" }, |
1645 | | { 0, NULL } |
1646 | | }; |
1647 | | static int ett_s7comm_szl_0091_0000_eastat; |
1648 | | static int * const s7comm_szl_0091_0000_eastat_fields[] = { |
1649 | | &hf_s7comm_szl_0091_0000_eastat_0, |
1650 | | &hf_s7comm_szl_0091_0000_eastat_1, |
1651 | | &hf_s7comm_szl_0091_0000_eastat_2, |
1652 | | &hf_s7comm_szl_0091_0000_eastat_3, |
1653 | | &hf_s7comm_szl_0091_0000_eastat_4, |
1654 | | &hf_s7comm_szl_0091_0000_eastat_5, |
1655 | | &hf_s7comm_szl_0091_0000_eastat_6, |
1656 | | &hf_s7comm_szl_0091_0000_eastat_7, |
1657 | | &hf_s7comm_szl_0091_0000_eastat_dataid, |
1658 | | NULL |
1659 | | }; |
1660 | | static int ett_s7comm_szl_0091_0000_berbgbr; |
1661 | | static int * const s7comm_szl_0091_0000_berbgbr_fields[] = { |
1662 | | &hf_s7comm_szl_0091_0000_berbgbr_0_2, |
1663 | | &hf_s7comm_szl_0091_0000_berbgbr_3, |
1664 | | &hf_s7comm_szl_0091_0000_berbgbr_areaid, |
1665 | | &hf_s7comm_szl_0091_0000_berbgbr_7, |
1666 | | NULL |
1667 | | }; |
1668 | | |
1669 | | static int ett_s7comm_szl_xx9x_station_info; |
1670 | | static int hf_s7comm_szl_xx9x_station_info; |
1671 | | |
1672 | | static int hf_s7comm_szl_0092_0xxx_status_0; |
1673 | | static int hf_s7comm_szl_0092_0xxx_status_1; |
1674 | | static int hf_s7comm_szl_0092_0xxx_status_2; |
1675 | | static int hf_s7comm_szl_0092_0xxx_status_3; |
1676 | | static int hf_s7comm_szl_0092_0xxx_status_4; |
1677 | | static int hf_s7comm_szl_0092_0xxx_status_5; |
1678 | | static int hf_s7comm_szl_0092_0xxx_status_6; |
1679 | | static int hf_s7comm_szl_0092_0xxx_status_7; |
1680 | | static int hf_s7comm_szl_0092_0xxx_status_8; |
1681 | | static int hf_s7comm_szl_0092_0xxx_status_9; |
1682 | | static int hf_s7comm_szl_0092_0xxx_status_10; |
1683 | | static int hf_s7comm_szl_0092_0xxx_status_11; |
1684 | | static int hf_s7comm_szl_0092_0xxx_status_12; |
1685 | | static int hf_s7comm_szl_0092_0xxx_status_13; |
1686 | | static int hf_s7comm_szl_0092_0xxx_status_14; |
1687 | | static int hf_s7comm_szl_0092_0xxx_status_15; |
1688 | | |
1689 | | static int hf_s7comm_szl_0094_xxxx_index; |
1690 | | static int hf_s7comm_szl_0094_xxxx_status_0; |
1691 | | static int hf_s7comm_szl_0094_xxxx_status_1_2047; |
1692 | | |
1693 | | static int hf_s7comm_szl_0096_xxxx_logadr_adr; |
1694 | | static int hf_s7comm_szl_0096_xxxx_logadr_area; |
1695 | | static const true_false_string tfs_szl_0096_xxx_logadr_area = { |
1696 | | "Input", |
1697 | | "Output" |
1698 | | }; |
1699 | | |
1700 | | static int hf_s7comm_szl_0096_xxxx_system; |
1701 | | static int hf_s7comm_szl_0096_xxxx_api; |
1702 | | static int hf_s7comm_szl_0096_xxxx_station; |
1703 | | static int hf_s7comm_szl_0096_xxxx_slot; |
1704 | | static int hf_s7comm_szl_0096_xxxx_subslot; |
1705 | | static int hf_s7comm_szl_0096_xxxx_offset; |
1706 | | static int hf_s7comm_szl_0096_xxxx_solltyp1; |
1707 | | static int hf_s7comm_szl_0096_xxxx_solltyp2; |
1708 | | static int hf_s7comm_szl_0096_xxxx_solltyp3; |
1709 | | static int hf_s7comm_szl_0096_xxxx_solltyp4_5; |
1710 | | static int hf_s7comm_szl_0096_xxxx_solltyp6_7; |
1711 | | static int hf_s7comm_szl_0096_xxxx_expactid; |
1712 | | static int hf_s7comm_szl_0096_xxxx_reserve1; |
1713 | | static int hf_s7comm_szl_0096_xxxx_eastat; |
1714 | | static int hf_s7comm_szl_0096_xxxx_eastat_0; |
1715 | | static int hf_s7comm_szl_0096_xxxx_eastat_1; |
1716 | | static int hf_s7comm_szl_0096_xxxx_eastat_2; |
1717 | | static int hf_s7comm_szl_0096_xxxx_eastat_3; |
1718 | | static int hf_s7comm_szl_0096_xxxx_eastat_4; |
1719 | | static int hf_s7comm_szl_0096_xxxx_eastat_5; |
1720 | | static int hf_s7comm_szl_0096_xxxx_eastat_6; |
1721 | | static int hf_s7comm_szl_0096_xxxx_eastat_7; |
1722 | | static int hf_s7comm_szl_0096_xxxx_eastat_8; |
1723 | | static int hf_s7comm_szl_0096_xxxx_eastat_9; |
1724 | | static int ett_s7comm_szl_0096_xxxx_eastat; |
1725 | | static int * const s7comm_szl_0096_xxxx_eastat_fields[] = { |
1726 | | &hf_s7comm_szl_0096_xxxx_eastat_0, |
1727 | | &hf_s7comm_szl_0096_xxxx_eastat_1, |
1728 | | &hf_s7comm_szl_0096_xxxx_eastat_2, |
1729 | | &hf_s7comm_szl_0096_xxxx_eastat_3, |
1730 | | &hf_s7comm_szl_0096_xxxx_eastat_4, |
1731 | | &hf_s7comm_szl_0096_xxxx_eastat_5, |
1732 | | &hf_s7comm_szl_0096_xxxx_eastat_6, |
1733 | | &hf_s7comm_szl_0096_xxxx_eastat_7, |
1734 | | &hf_s7comm_szl_0096_xxxx_eastat_8, |
1735 | | &hf_s7comm_szl_0096_xxxx_eastat_9, |
1736 | | NULL |
1737 | | }; |
1738 | | static int hf_s7comm_szl_0096_xxxx_berbgbr; |
1739 | | static int hf_s7comm_szl_0096_xxxx_berbgbr_0_2; |
1740 | | static int hf_s7comm_szl_0096_xxxx_berbgbr_3; |
1741 | | static int hf_s7comm_szl_0096_xxxx_berbgbr_areaid; |
1742 | | static int hf_s7comm_szl_0096_xxxx_berbgbr_7; |
1743 | | static int ett_s7comm_szl_0096_xxxx_berbgbr; |
1744 | | static int * const s7comm_szl_0096_xxxx_berbgbr_fields[] = { |
1745 | | &hf_s7comm_szl_0096_xxxx_berbgbr_0_2, |
1746 | | &hf_s7comm_szl_0096_xxxx_berbgbr_3, |
1747 | | &hf_s7comm_szl_0096_xxxx_berbgbr_areaid, |
1748 | | &hf_s7comm_szl_0096_xxxx_berbgbr_7, |
1749 | | NULL |
1750 | | }; |
1751 | | static int hf_s7comm_szl_0096_xxxx_reserve2; |
1752 | | |
1753 | | static int hf_s7comm_szl_0424_0000_ereig; |
1754 | | static int hf_s7comm_szl_0424_0000_ae; |
1755 | | static int hf_s7comm_szl_0424_0000_bzu_id; |
1756 | | static int hf_s7comm_szl_0424_0000_bzu_id_req; |
1757 | | static int hf_s7comm_szl_0424_0000_bzu_id_pre; |
1758 | | static const value_string szl_0424_0000_bzu_id_names[] = { |
1759 | | { 0x1, "STOP (update)" }, |
1760 | | { 0x2, "STOP (memory reset)" }, |
1761 | | { 0x3, "STOP (self initialization)" }, |
1762 | | { 0x4, "STOP (internal)" }, |
1763 | | { 0x5, "Startup (complete restart)" }, |
1764 | | { 0x7, "Restart" }, |
1765 | | { 0x8, "RUN" }, |
1766 | | { 0xa, "HOLD" }, |
1767 | | { 0xd, "DEFECT" }, |
1768 | | { 0, NULL } |
1769 | | }; |
1770 | | static int ett_s7comm_szl_0424_0000_bzu_id; |
1771 | | static int * const s7comm_szl_0424_0000_bzu_id_fields[] = { |
1772 | | &hf_s7comm_szl_0424_0000_bzu_id_req, |
1773 | | &hf_s7comm_szl_0424_0000_bzu_id_pre, |
1774 | | NULL |
1775 | | }; |
1776 | | static int hf_s7comm_szl_0424_0000_res; |
1777 | | static int hf_s7comm_szl_0424_0000_anlinfo1; |
1778 | | static int hf_s7comm_szl_0424_0000_anlinfo2; |
1779 | | static const value_string szl_0424_0000_anlinfo2_names[] = { |
1780 | | { 0x01, "Complete restart in multicomputing" }, |
1781 | | { 0x03, "Complete restart set at mode selector" }, |
1782 | | { 0x04, "Complete restart command via MPI" }, |
1783 | | { 0x0a, "Restart in multicomputing" }, |
1784 | | { 0x0b, "Restart set at mode selector" }, |
1785 | | { 0x0c, "Restart command via MPI" }, |
1786 | | { 0x10, "Automatic complete restart after battery-backed power on" }, |
1787 | | { 0x13, "Complete restart set at mode selector; last power on battery backed" }, |
1788 | | { 0x14, "Complete restart command via MPI; last power on battery backed" }, |
1789 | | { 0x20, "Automatic complete restart after non battery backed power on (with memory reset by system)" }, |
1790 | | { 0x23, "Complete restart set at mode selector; last power on unbattery backed" }, |
1791 | | { 0x24, "Complete restart command via MPI; last power on unbattery backed" }, |
1792 | | { 0xa0, "Automatic restart after battery backed power on according to parameter assignment" }, |
1793 | | { 0, NULL } |
1794 | | }; |
1795 | | static int hf_s7comm_szl_0424_0000_anlinfo3; |
1796 | | static int hf_s7comm_szl_0424_0000_anlinfo4; |
1797 | | static const value_string szl_0424_0000_anlinfo4_names[] = { |
1798 | | { 0x00, "No startup type" }, |
1799 | | { 0x01, "Complete restart in multicomputing" }, |
1800 | | { 0x03, "Complete restart due to switch setting" }, |
1801 | | { 0x04, "Complete restart command via MPI" }, |
1802 | | { 0x0a, "Restart in multicomputing" }, |
1803 | | { 0x0b, "Restart set at mode selector" }, |
1804 | | { 0x0c, "Restart command via MPI" }, |
1805 | | { 0x10, "Automatic complete restart after battery-backed power on" }, |
1806 | | { 0x13, "Complete restart set at mode selector; last power on battery backed" }, |
1807 | | { 0x14, "Complete restart command via MPI; last power on battery backed" }, |
1808 | | { 0x20, "Automatic complete restart after non battery backed power on (with memory reset by system)" }, |
1809 | | { 0x23, "Complete restart set at mode selector; last power on unbattery backed" }, |
1810 | | { 0x24, "Complete restart command via MPI; last power on unbattery backed" }, |
1811 | | { 0xa0, "Automatic restart after battery backed power on according to parameter assignment" }, |
1812 | | { 0, NULL } |
1813 | | }; |
1814 | | static int hf_s7comm_szl_0424_0000_time; |
1815 | | |
1816 | | static int hf_s7comm_szl_xy74_0000_cpu_led_id; |
1817 | | static int hf_s7comm_szl_xy74_0000_cpu_led_id_rackno; |
1818 | | static int hf_s7comm_szl_xy74_0000_cpu_led_id_cputype; |
1819 | | static int hf_s7comm_szl_xy74_0000_cpu_led_id_id; |
1820 | | static int hf_s7comm_szl_xy74_0000_led_on; |
1821 | | static const value_string szl_xy74_0000_led_on_names[] = { |
1822 | | { 0x0, "Off" }, |
1823 | | { 0x1, "On" }, |
1824 | | { 0, NULL } |
1825 | | }; |
1826 | | |
1827 | | static int hf_s7comm_szl_xy74_0000_led_blink; |
1828 | | static const value_string szl_xy74_0000_led_blink_names[] = { |
1829 | | { 0x0, "Not flashing" }, |
1830 | | { 0x1, "Flashing normally (2 Hz)" }, |
1831 | | { 0x2, "Flashing slowly (0.5 Hz)" }, |
1832 | | { 0, NULL } |
1833 | | }; |
1834 | | |
1835 | | static int hf_s7comm_szl_xy76_0000_version; |
1836 | | static int hf_s7comm_szl_xy76_0000_top_dnn_id; |
1837 | | |
1838 | | static int hf_s7comm_szl_xy77_xxxx_version; |
1839 | | static int hf_s7comm_szl_xy77_xxxx_num_parent; |
1840 | | static int hf_s7comm_szl_xy77_xxxx_obj_parent; |
1841 | | static int hf_s7comm_szl_xy77_xxxx_num_child; |
1842 | | static int hf_s7comm_szl_xy77_xxxx_obj_child; |
1843 | | static int hf_s7comm_szl_xy77_xxxx_num_redundancy_links; |
1844 | | static int hf_s7comm_szl_xy77_xxxx_obj_redundancy; |
1845 | | static int hf_s7comm_szl_xy77_xxxx_num_iodevice_agent_links; |
1846 | | static int hf_s7comm_szl_xy77_xxxx_obj_iodevice_agent; |
1847 | | |
1848 | | static int hf_s7comm_szl_xy78_xxxx_version; |
1849 | | static int hf_s7comm_szl_xy78_xxxx_unknown_version_data; |
1850 | | static int hf_s7comm_szl_xy78_xxxx_geo_addr; |
1851 | | static int hf_s7comm_szl_xy78_xxxx_geo_addr_subsys; |
1852 | | static int hf_s7comm_szl_xy78_xxxx_geo_addr_station; |
1853 | | static int hf_s7comm_szl_xy78_xxxx_geo_addr_rack; |
1854 | | static int hf_s7comm_szl_xy78_xxxx_geo_addr_slot; |
1855 | | static int hf_s7comm_szl_xy78_xxxx_geo_addr_subslot; |
1856 | | static int hf_s7comm_szl_xy78_xxxx_name; |
1857 | | static int hf_s7comm_szl_xy78_xxxx_short_name; |
1858 | | static int hf_s7comm_szl_xy78_xxxx_dnn_mode; |
1859 | | static int hf_s7comm_szl_xy78_xxxx_dis; |
1860 | | static int hf_s7comm_szl_xy78_xxxx_dis_num_cdiag; |
1861 | | static int hf_s7comm_szl_xy78_xxxx_dis_cdiags; |
1862 | | static int hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry; |
1863 | | static int hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_ch_nr; |
1864 | | static int hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_ch_prop; |
1865 | | static int hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_alcat; |
1866 | | static const value_string s7comm_szl_xy78_xxxx_dis_cdiag_entry_alcat_names[] = { |
1867 | | {0x0001, "ALCAT_CH_MSG"}, |
1868 | | {0x0002, "ALCAT_SUBMODUL_MSG"}, |
1869 | | {0x0003, "ALCAT_MODUL_MSG"}, |
1870 | | {0x0004, "ALCAT_RACK_MSG"}, |
1871 | | {0x0005, "ALCAT_DEVICE_MSG"}, |
1872 | | {0x0006, "ALCAT_IOSYSTEM_MSG"}, |
1873 | | {0x0007, "ALCAT_DREPEAT_A_MSG"}, |
1874 | | {0x0008, "ALCAT_DREPEAT_B_MSG"}, |
1875 | | {0x0009, "ALCAT_DREPEAT_C_MSG"}, |
1876 | | {0x000A, "ALCAT_DREPEAT_D_MSG"}, |
1877 | | {0x000B, "ALCAT_DREPEAT_E_MSG"}, |
1878 | | {0x000C, "ALCAT_CPU_MSG"}, |
1879 | | {0x000D, "ALCAT_CPU_OST_MSG"}, |
1880 | | {0x000F, "ALCAT_CPU_INFO_MSG"}, |
1881 | | {0x0010, "ALCAT_CPU_ERR_MSG"}, |
1882 | | {0x0011, "ALCAT_CPU_MD_MSG"}, |
1883 | | {0x0012, "ALCAT_CPU_MR_MSG"}, |
1884 | | {0x0013, "ALCAT_CPU_TMPERR_MSG"}, |
1885 | | {0x0014, "ALCAT_CPU_INTERN_MSG"}, |
1886 | | {0x0015, "ALCAT_CH_ERR_MSG"}, |
1887 | | {0x0016, "ALCAT_ECH_ERR_MSG"}, |
1888 | | {0x0017, "ALCAT_QCH_ERR_MSG"}, |
1889 | | {0x0018, "ALCAT_CH_MD_MSG"}, |
1890 | | {0x0019, "ALCAT_ECH_MD_MSG"}, |
1891 | | {0x001A, "ALCAT_QCH_MDMSG"}, |
1892 | | {0x001B, "ALCAT_CH_MR_MSG"}, |
1893 | | {0x001C, "ALCAT_ECH_MR_MSG"}, |
1894 | | {0x001D, "ALCAT_QCH_MR_MSG"}, |
1895 | | {0x001E, "ALCAT_SUB_ERR_MSG"}, |
1896 | | {0x001F, "ALCAT_ESUB_ERR_MSG"}, |
1897 | | {0x0020, "ALCAT_QSUB_ERR_MSG"}, |
1898 | | {0x0021, "ALCAT_SUB_MD_MSG"}, |
1899 | | {0x0022, "ALCAT_ESUB_MD_MSG"}, |
1900 | | {0x0023, "ALCAT_QSUB_MDMSG"}, |
1901 | | {0x0024, "ALCAT_SUB_MR_MSG"}, |
1902 | | {0x0025, "ALCAT_ESUB_MR_MSG"}, |
1903 | | {0x0026, "ALCAT_QSUB_MR_MSG"}, |
1904 | | {0x0028, "ALCAT_CONFIG_INFO"}, |
1905 | | {0, NULL} |
1906 | | }; |
1907 | | |
1908 | | static value_string_ext s7comm_szl_xy78_xxxx_dis_cdiag_entry_alcat_names_ext = |
1909 | | VALUE_STRING_EXT_INIT(s7comm_szl_xy78_xxxx_dis_cdiag_entry_alcat_names); |
1910 | | |
1911 | | static int hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_res; |
1912 | | static int hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_qualifier; |
1913 | | static int hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_text_list_chet; |
1914 | | static const value_string s7comm_szl_xy78_xxxx_dis_cdiag_entry_text_list_names[] = { |
1915 | | {0x0001, "ErrTextLib"}, |
1916 | | {0x0002, "CPUTextlib"}, |
1917 | | {0x0003, "ErrTextLibEx"}, |
1918 | | {0x0004, "DS1TextLib"}, |
1919 | | {0x0005, "OSTTextLib (S7classic)"}, |
1920 | | {0x0006, "IOTextLib"}, |
1921 | | {0x0007, "DR"}, |
1922 | | {0x0008, "IOTextLibFlat"}, |
1923 | | {0x000D, "FS_TextLib"}, |
1924 | | {0x000F, "CPTextlib"}, |
1925 | | {0x0020, "AddHCPUTextLib"}, |
1926 | | {0x0040, "PCStationTextlib"}, |
1927 | | {0x0042, "PCCPTextlib"}, |
1928 | | {0x0043, "PCDiagBase"}, |
1929 | | {0x0064, "Domain0TextLib"}, |
1930 | | {0x00F0, "MotionControlTextLib"}, |
1931 | | {0x00F1, "SINAUT"}, |
1932 | | {0x00F2, "SINUMERIK"}, |
1933 | | {0x00FC, "AlarmCatEvid"}, |
1934 | | {0x00FD, "AlarmCatShort"}, |
1935 | | {0x00FE, "AlarmCatLong"}, |
1936 | | {0x00FF, "AlarmCat"}, |
1937 | | {0x0100, "CmpPlcName"}, |
1938 | | {0x0101, "CmpRackName"}, |
1939 | | {0x0102, "CmpModuleName"}, |
1940 | | {0x0103, "CmpSubModuleName"}, |
1941 | | {0x0104, "CmpTypeName"}, |
1942 | | {0x0105, "CmpComment"}, |
1943 | | {0x0106, "CmpTagFunction"}, |
1944 | | {0x0107, "CmpTagLocation"}, |
1945 | | {0x0108, "CmpLogAddress"}, |
1946 | | {0x0109, "CmpOrderNo"}, |
1947 | | {0x010A, "CmpSubsystemNo"}, |
1948 | | {0x010B, "CmpRackNo"}, |
1949 | | {0x010C, "CmpSlotNo"}, |
1950 | | {0x010D, "CmpSubslotNo"}, |
1951 | | {0x010E, "CmpHtmlPath"}, |
1952 | | {0x010F, "CmpVendorName"}, |
1953 | | {0x0110, "CmpFirmwareVersion"}, |
1954 | | {0x0111, "CmpAdditionalInfo"}, |
1955 | | {0x0112, "CmpInstallDate"}, |
1956 | | {0x0113, "CmpName"}, |
1957 | | {0x0114, "CmpIOSystemName"}, |
1958 | | {0x0118, "CmpSymbolRedirection"}, |
1959 | | {0x0119, "CmpSymbolInput"}, |
1960 | | {0x011A, "CmpSymbolOutput"}, |
1961 | | {0x011B, "CmpSymbolChannel_IN00"}, |
1962 | | {0x015A, "CmpSymbolChannel_IN63"}, |
1963 | | {0x015B, "CmpSymbolChannel_OUT00"}, |
1964 | | {0x019A, "CmpSymbolChannel_OUT63"}, |
1965 | | {0x01F0, "CmpMotionControl"}, |
1966 | | {0x01FE, "PnoVendorName"}, |
1967 | | {0x8001, "ErrTextLibHelp"}, |
1968 | | {0x8002, "CPUTextlibHelp"}, |
1969 | | {0x8003, "ErrTextLibExHelp"}, |
1970 | | {0x8004, "DS1TextListHelp"}, |
1971 | | {0x8005, "OSTTextLibHelp (S7classic)"}, |
1972 | | {0x8006, "IOTextlibHelp"}, |
1973 | | {0x8007, "DRHelp"}, |
1974 | | {0x8008, "IOTextLibFlatHelp"}, |
1975 | | {0x800D, "FS_TextLibHelp"}, |
1976 | | {0x800F, "CPTextlibHelp"}, |
1977 | | {0x8040, "PCStationHelp"}, |
1978 | | {0x8042, "PCCPHelp"}, |
1979 | | {0x8043, "PCDiagBaseHelp"}, |
1980 | | {0x80F0, "MotionControlHelp"}, |
1981 | | {0x80F2, "SinumerikHelp"}, |
1982 | | {0, NULL} |
1983 | | }; |
1984 | | |
1985 | | static value_string_ext s7comm_szl_xy78_xxxx_dis_cdiag_entry_text_list_names_ext = |
1986 | | VALUE_STRING_EXT_INIT(s7comm_szl_xy78_xxxx_dis_cdiag_entry_text_list_names); |
1987 | | |
1988 | | static int hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_chet; |
1989 | | static int hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_chet_text_list_8; |
1990 | | static const value_string s7comm_szl_xy78_xxxx_dis_cdiag_entry_chet_text_list_8_names[] = { |
1991 | | {1, "Short-circuit"}, |
1992 | | {2, "Undervoltage"}, |
1993 | | {3, "Overvoltage"}, |
1994 | | {4, "Overload"}, |
1995 | | {5, "Overtemperature"}, |
1996 | | {6, "Wire break"}, |
1997 | | {7, "High limit exceeded"}, |
1998 | | {8, "Low limit violated"}, |
1999 | | {9, "Error"}, |
2000 | | {10, "Simulation active"}, |
2001 | | {11, "Error (000B)"}, |
2002 | | {12, "Error (000C)"}, |
2003 | | {13, "Error (000D)"}, |
2004 | | {14, "Error (000E)"}, |
2005 | | {15, "Parameter not adequate"}, |
2006 | | {16, "Parameter error"}, |
2007 | | {17, "Supply voltage missing"}, |
2008 | | {18, "Fuse fault"}, |
2009 | | {19, "Communication fault"}, |
2010 | | {20, "Ground fault"}, |
2011 | | {21, "Reference channel fault"}, |
2012 | | {22, "Hardware interrupt lost"}, |
2013 | | {23, "Limit value warning"}, |
2014 | | {24, "Actuator shutoff"}, |
2015 | | {25, "Safety-related shutoff"}, |
2016 | | {26, "External error"}, |
2017 | | {27, "General error"}, |
2018 | | {28, "PROFIsafe communications error"}, |
2019 | | {29, "Error1 in actuator/sensor"}, |
2020 | | {30, "Error2 in actuator/sensor"}, |
2021 | | {31, "Channel/component temporarily not available "}, |
2022 | | {33, "Further diagnostics information available not stored individually"}, |
2023 | | {34, "Diagnostics available and is being processed"}, |
2024 | | {35, "Module monitoring time exceeded"}, |
2025 | | {64, "Mismatch of safety destination address (F_Dest_Add)"}, |
2026 | | {65, "Safety destination address not valid (F_Dest_Add)"}, |
2027 | | {66, "Safety source address not valid (F_Source_Add)"}, |
2028 | | {67, "Safety watchdog time value is 0 ms (F_WD_Time) "}, |
2029 | | {68, "Parameter F_SIL exceeds SIL from specific device application "}, |
2030 | | {69, "Parameter F_CRC_Length does not match the generated values "}, |
2031 | | {70, "Version of F parameter set incorrect "}, |
2032 | | {71, "CRC1 fault "}, |
2033 | | {72, "Device-specific diagnostics information, see manual "}, |
2034 | | {73, "Save iParameter watchdog time exceeded "}, |
2035 | | {74, "Restore iParameter watchdog time exceeded "}, |
2036 | | {75, "Inconsistent iParameters (iParCRC error) "}, |
2037 | | {76, "F_Block_ID not supported "}, |
2038 | | {77, "Transmission error: Inconsistent data (CRC error) "}, |
2039 | | {78, "Transmission error: Timeout (watchdog time 1 or 2 expired) "}, |
2040 | | {79, "Acknowledge required to enable channel(s) - as channel error(s) are remedied."}, |
2041 | | {256, "Module is defective"}, |
2042 | | {257, "Front connector not plugged"}, |
2043 | | {258, "Error (0102)"}, |
2044 | | {259, "Watchdog tripped"}, |
2045 | | {260, "Internal supply voltage fault"}, |
2046 | | {261, "Short-circuit to L+"}, |
2047 | | {262, "Short-circuit to ground"}, |
2048 | | {263, "Overcurrent"}, |
2049 | | {264, "Illegal input voltage"}, |
2050 | | {265, "Line break"}, |
2051 | | {266, "Supply voltage missing"}, |
2052 | | {267, "Overvoltage backplane bus"}, |
2053 | | {268, "Switch off"}, |
2054 | | {269, "Error (010D)"}, |
2055 | | {270, "Short circuit / overload of the sensor supply voltage"}, |
2056 | | {271, "Error at digital outputs"}, |
2057 | | {272, "Supply voltage fault"}, |
2058 | | {273, "Error (0111)"}, |
2059 | | {274, "Error (0112)"}, |
2060 | | {275, "Error (0113)"}, |
2061 | | {276, "Error (0114)"}, |
2062 | | {277, "Error (0115)"}, |
2063 | | {278, "Error (0116)"}, |
2064 | | {279, "Error (0117)"}, |
2065 | | {280, "Common mode error"}, |
2066 | | {281, "Undervoltage/Overload in power segment "}, |
2067 | | {282, "Error in the power segment"}, |
2068 | | {283, "Invalid/inconsistent firmware present"}, |
2069 | | {284, "At least one battery empty"}, |
2070 | | {285, "Safety shutdown"}, |
2071 | | {286, "Read Back Error"}, |
2072 | | {287, "Error (011F)"}, |
2073 | | {288, "Redundancy partner has different hardware/firmware version"}, |
2074 | | {289, "IO redundancy warning"}, |
2075 | | {290, "Shut-off via push-button handling"}, |
2076 | | {291, "Inconsistent parameter assignment"}, |
2077 | | {292, "Short circuit/wire break of sensor cable"}, |
2078 | | {293, "Changeover switch error"}, |
2079 | | {294, "Error partner channel"}, |
2080 | | {295, "Output deviation"}, |
2081 | | {296, "Wire break sensor supply"}, |
2082 | | {297, "Internal AI power supply issue"}, |
2083 | | {298, "Application Software Execution Fault TM-RTC"}, |
2084 | | {299, "Module firmware download:"}, |
2085 | | {300, "Firmware successfully downloaded and activated for use after reset (New firmware version @5Y%s@@6Y%u@.@7Y%u@.@8Y%u@)"}, |
2086 | | {318, "Diagnostic queue overflow"}, |
2087 | | {319, "Slot @3W%u@"}, |
2088 | | {320, "HART parameter error"}, |
2089 | | {321, "HART communication error"}, |
2090 | | {322, "HART primary variable out of range"}, |
2091 | | {323, "HART analog output current saturated"}, |
2092 | | {324, "HART output current of the field device fixed"}, |
2093 | | {325, "HART - more status available"}, |
2094 | | {326, "HART configuration changed"}, |
2095 | | {327, "HART field device malfunction"}, |
2096 | | {328, "HART safety related HART shutoff defective "}, |
2097 | | {329, "HART - non primary variable out of limits"}, |
2098 | | {330, "HART error (014A)"}, |
2099 | | {331, "HART error (014B)"}, |
2100 | | {332, "HART error (014C)"}, |
2101 | | {333, "HART error (014D)"}, |
2102 | | {334, "HART error (014E)"}, |
2103 | | {335, "HART error (014F)"}, |
2104 | | {337, "Invalid BaseUnit"}, |
2105 | | {338, "Invalid terminal block"}, |
2106 | | {339, "Remanent memory in base unit is defective "}, |
2107 | | {340, "Carrier module or memory in carrier module is defective"}, |
2108 | | {341, "Terminal block (TB) or memory in terminal block is defective "}, |
2109 | | {342, "Bus adapter is defective"}, |
2110 | | {343, "Output channels inactive"}, |
2111 | | {344, "Failure"}, |
2112 | | {345, "Function check"}, |
2113 | | {346, "Out of specification"}, |
2114 | | {347, "Maintenance required"}, |
2115 | | {384, "Short-circuit to ground on AS-interface line"}, |
2116 | | {740, "Positioning error"}, |
2117 | | {741, "Driver error"}, |
2118 | | {742, "Internal error"}, |
2119 | | {743, "DIS input active"}, |
2120 | | {752, "Pilot valve: switching cycle counter limit reached"}, |
2121 | | {753, "Actuator: switching cycle counter limit reached"}, |
2122 | | {754, "No valve voltage"}, |
2123 | | {755, "Pilot valve: wire break"}, |
2124 | | {756, "Pilot valve: short circuit"}, |
2125 | | {757, "Internal module fault"}, |
2126 | | {758, "Pressure limit value exceeded"}, |
2127 | | {759, "Pressure limit value not reached"}, |
2128 | | {760, "Error (02F8)"}, |
2129 | | {761, "Error (02F9)"}, |
2130 | | {762, "Error (02FA)"}, |
2131 | | {763, "Error (02FB)"}, |
2132 | | {764, "Error (02FC)"}, |
2133 | | {765, "Error (02FD)"}, |
2134 | | {766, "Error (02FE)"}, |
2135 | | {767, "Error (02FF)"}, |
2136 | | {768, "Discrepancy failure, channel state 0/0"}, |
2137 | | {769, "Discrepancy failure, channel state 0/1"}, |
2138 | | {770, "Discrepancy failure, channel state 1/0"}, |
2139 | | {771, "Discrepancy failure, channel state 1/1"}, |
2140 | | {772, "Analog input signal not recorded unique"}, |
2141 | | {773, "Input signal not recorded unique"}, |
2142 | | {774, "Internal sensor supply short-circuit to P"}, |
2143 | | {775, "Overload or internal sensor supply short-circuit to ground"}, |
2144 | | {776, "Short-circuit of sensor supply defective"}, |
2145 | | {777, "Short-circuit of the sensor with the sensor supply"}, |
2146 | | {778, "No pulses detected"}, |
2147 | | {779, "Channel failure acknowledgement"}, |
2148 | | {780, "Device deactivation"}, |
2149 | | {781, "F-address memory not accessible"}, |
2150 | | {782, "No valid F-address available"}, |
2151 | | {783, "Error during failsafe address assignment"}, |
2152 | | {784, "Sensor signal flutters"}, |
2153 | | {785, "Frequency too high"}, |
2154 | | {786, "Undertemperature"}, |
2155 | | {787, "Failure in the input circuit"}, |
2156 | | {788, "Discrepancy failure"}, |
2157 | | {789, "Internal discrepancy failure"}, |
2158 | | {790, "Relay can not be turned on"}, |
2159 | | {791, "Relay can not be turned off (contacts welded) "}, |
2160 | | {792, "PROFIsafe communication failure (timeout)"}, |
2161 | | {793, "PROFIsafe communication error (CRC)"}, |
2162 | | {794, "PROFIsafe address assignment failure"}, |
2163 | | {795, "Input short-circuit to ground"}, |
2164 | | {796, "Input shorted to P"}, |
2165 | | {797, "Output defective"}, |
2166 | | {798, "Read back failure"}, |
2167 | | {799, "Overcurrent"}, |
2168 | | {800, "Overload"}, |
2169 | | {801, "Supply voltage too high"}, |
2170 | | {802, "Supply voltage too low"}, |
2171 | | {803, "Supply voltage too high"}, |
2172 | | {804, "Supply voltage too low"}, |
2173 | | {805, "Bus enumeration fault"}, |
2174 | | {806, "Bus enumeration fault / old FW version"}, |
2175 | | {807, "Module slot wrong or configuration faulty"}, |
2176 | | {808, "Module slot wrong or configuration faulty(not safety relevant)"}, |
2177 | | {809, "Inconsistent configuration data"}, |
2178 | | {810, "Safety related HART shutoff defective "}, |
2179 | | {811, "Channel passivated"}, |
2180 | | {812, "Safety related shut-off (relay continuous on time limit exceeded)"}, |
2181 | | {813, "Panic operation of enabling button incomplete"}, |
2182 | | {814, "F module error (0x032E)"}, |
2183 | | {815, "F module error (0x032F)"}, |
2184 | | {816, "Safety related shut-off"}, |
2185 | | {817, "ADC failure"}, |
2186 | | {818, "Failure in the test circuit"}, |
2187 | | {1024, "AS-i slave failed"}, |
2188 | | {1025, "AS-i slave on B-address failed"}, |
2189 | | {1026, "Peripheral fault in AS-i slave "}, |
2190 | | {1027, "Peripheral fault in AS-i slave on B-address"}, |
2191 | | {1028, "AS-i address used multiple times"}, |
2192 | | {1029, "AS-i B-address used multiple times"}, |
2193 | | {1030, "No voltage or too low voltage on AS-interface cable"}, |
2194 | | {1031, "AS-i configuration fault"}, |
2195 | | {1032, "Short-circuit to ground on AS-interface line"}, |
2196 | | {1033, "AS-i fault (0x0409)"}, |
2197 | | {1034, "Supernumerary AS-i slave "}, |
2198 | | {1035, "Supernumerary AS-i slave on B-address "}, |
2199 | | {1036, "Incorrect AS-i slave"}, |
2200 | | {1037, "Incorrect AS-i slave on B-address "}, |
2201 | | {1038, "AS-i voltage too high"}, |
2202 | | {1039, "AS-i voltage too low"}, |
2203 | | {1040, "Discrepancy failure, channel state 0/0"}, |
2204 | | {1041, "Discrepancy failure, channel state 0/1"}, |
2205 | | {1042, "Discrepancy failure, channel state 1/0"}, |
2206 | | {1043, "Discrepancy failure, channel state 1/1"}, |
2207 | | {1044, "Sequence error, channel state 0/0"}, |
2208 | | {1045, "Sequence error, channel state 0/1"}, |
2209 | | {1046, "Sequence error, channel state 1/0"}, |
2210 | | {1047, "Sequence error, channel state 1/1"}, |
2211 | | {1048, "Overtemperature"}, |
2212 | | {1049, "New AS-i safety slave code sequence detected"}, |
2213 | | {1050, "Safe AS-i input slave missing"}, |
2214 | | {1051, "Safe AS-i output slave failed"}, |
2215 | | {1052, "Peripheral fault in one or more AS-i slaves "}, |
2216 | | {1053, "One or more AS-i addresses used multiple times"}, |
2217 | | {1054, "AS-i safety signal error"}, |
2218 | | {1055, "AS-i safety slave code sequence ready to save"}, |
2219 | | {1056, "AS-i safety slave code sequence missing"}, |
2220 | | {1057, "AS-i safety slave code sequence multiple used"}, |
2221 | | {1058, "AS-i safety communication error"}, |
2222 | | {1059, "Device error"}, |
2223 | | {1060, "AS-i error (0x0424)"}, |
2224 | | {1061, "AS-i error (0x0425)"}, |
2225 | | {1062, "AS-i error (0x0426)"}, |
2226 | | {1232, "CAN in bus off mode"}, |
2227 | | {1233, "CAN in error passive mode"}, |
2228 | | {1234, "CAN receive buffer overflow"}, |
2229 | | {1235, "CAN transmit buffer overflow"}, |
2230 | | {1236, "Received PDO too short"}, |
2231 | | {1237, "Heartbeat error"}, |
2232 | | {1238, "Node guarding error"}, |
2233 | | {1239, "Heartbeat / node guarding error"}, |
2234 | | {1240, "Wrong NMT state"}, |
2235 | | {1241, "Bootup failed"}, |
2236 | | {1242, "Bootup - node not responding"}, |
2237 | | {1243, "Bootup"}, |
2238 | | {1244, "EMCY received"}, |
2239 | | {1245, "Received message wrong length"}, |
2240 | | {1246, "Extended parameterization error"}, |
2241 | | {1248, "Interface error"}, |
2242 | | {1249, "IP address (@5Y%u@.@6Y%u@.@7Y%u@.@8Y%u@) of an IE interface already exists "}, |
2243 | | {1250, "Name of an IE interface already exists "}, |
2244 | | {1251, "PROFIBUS interface error "}, |
2245 | | {1252, "DHCP Server offer not acceptable or not present"}, |
2246 | | {1253, "Retrieved DHCP parameter changed to invalid"}, |
2247 | | {1256, "Module firmware update aborted: "}, |
2248 | | {1257, "Firmware for hardware component unchanged"}, |
2249 | | {1280, "Illegal A/B signal ratio"}, |
2250 | | {1281, "Frequency outside specification"}, |
2251 | | {1282, "RS422/TTL error"}, |
2252 | | {1283, "Error on SSI sensor"}, |
2253 | | {1284, "Error on BiSS sensor"}, |
2254 | | {1285, "Wire break digital input (A, B or N) "}, |
2255 | | {1286, "Overtemperature"}, |
2256 | | {1536, "Error (0x0600)"}, |
2257 | | {1537, "Status error"}, |
2258 | | {1538, "Configuration error"}, |
2259 | | {1539, "Net configuration error"}, |
2260 | | {1552, "Load voltage error"}, |
2261 | | {1568, "ET-Connection error"}, |
2262 | | {1584, "Redundancy error"}, |
2263 | | {1600, "Hardware error"}, |
2264 | | {1664, "IO bus fault starting at slot @4W%u@"}, |
2265 | | {1665, "Transmitted IO data invalid (partially bad-flagged) "}, |
2266 | | {1666, "Communication with slot @4W%u@ failed"}, |
2267 | | {1667, "Drag chain fault"}, |
2268 | | {1668, "Firmware activation pending"}, |
2269 | | {1678, "Incompatible MultiFieldbus project found on device remanence (ModuleID=@8W%X@)"}, |
2270 | | {1679, "No active backplane bus detected at an IM port"}, |
2271 | | {1680, "Wrong module on slot"}, |
2272 | | {1681, "Station stop - Module parameter 'potential group' incorrect or wrong BaseUnit/TerminalBlock on real configuration slot @4W%u@"}, |
2273 | | {1682, "Permitted number of I/O modules exceeded at slot @4W%u@"}, |
2274 | | {1683, "Station stop - missing or wrong server module"}, |
2275 | | {1684, "Station stop - too many missing modules (@4W%u@)"}, |
2276 | | {1685, "IO data packing fault for slot @4W%u@"}, |
2277 | | {1686, "No U connector detected at IM port"}, |
2278 | | {1687, "More than one bus master module (IM/CPU) detected"}, |
2279 | | {1688, "Permitted size of backplane exceeded"}, |
2280 | | {1689, "Invalid backplane configuration for slot @4W%u@"}, |
2281 | | {1690, "Interface module at wrong slot"}, |
2282 | | {1691, "Permitted number of power supply modules exceeded at slot @4W%u@"}, |
2283 | | {1692, "Invalid bus adapter at interface module"}, |
2284 | | {1693, "Missing record for configuration control"}, |
2285 | | {1694, "Missing or wrong server module"}, |
2286 | | {1695, "Module parameter 'potential group' incorrect or wrong BaseUnit / TerminalBlock on real configuration slot (slot number)"}, |
2287 | | {1696, "Error on other net"}, |
2288 | | {1697, "Difference between nets at slot @4W%u@"}, |
2289 | | {1698, "No input data for activated data validity display configured"}, |
2290 | | {1699, "Coupling of sync domains not possible/nsync master on X1, sync slave on X2 missing"}, |
2291 | | {1700, "Coupling of sync domains not possible/nsync master on X2, sync slave on X1 missing"}, |
2292 | | {1701, "Shared device conflict, invalid sub module combination in slot @4W%u@"}, |
2293 | | {1702, "Shared device conflict, valid IO range exceeded by @4W%u@ bytes."}, |
2294 | | {1703, "IO memory for interface X@4W%u@ is too fragmented. The device needs to be restarted."}, |
2295 | | {1712, "Missing voltage in load group at slot according channel number"}, |
2296 | | {1713, "Overloaded power segment at slot @4W%u@"}, |
2297 | | {1714, "IM power supply error"}, |
2298 | | {1715, "Power supply failure (PS number @4W%u@)"}, |
2299 | | {1716, "Power supply undervoltage"}, |
2300 | | {1728, "Invalid number of modules in the extension rack @4W%u@"}, |
2301 | | {1729, "Invalid number of extension racks (number @4W%u@)"}, |
2302 | | {1730, "BA-Send module on incorrect slot @4W%u@"}, |
2303 | | {1731, "Invalid component in the extension rack @4W%u@"}, |
2304 | | {1732, "Link error in the extension rack @4W%u@"}, |
2305 | | {1744, "Request for maintenance @4W%X@"}, |
2306 | | {1745, "Power supply malfunctioning"}, |
2307 | | {1746, "Failure in bus adapter of partner module"}, |
2308 | | {1747, "Redundancy partner with different hardware or software version"}, |
2309 | | {1760, "Failure on access of flash memory in base unit"}, |
2310 | | {1761, "Failure on access of flash memory in bus adapter"}, |
2311 | | {1762, "Module is operated in the limit range"}, |
2312 | | {1763, "Name of station existing in flash memory (e.g. bus adapter) but not used"}, |
2313 | | {1764, "Increased disturbances detected"}, |
2314 | | {4096, "Zero current after ON command"}, |
2315 | | {4097, "Current flow after OFF command"}, |
2316 | | {4098, "Current flow after ON command"}, |
2317 | | {4099, "Zero current after OFF command"}, |
2318 | | {4100, "Positioner blockage"}, |
2319 | | {4101, "Torque switch concurrence"}, |
2320 | | {4102, "End position switch concurrence"}, |
2321 | | {4103, "End position switch state change "}, |
2322 | | {4104, "End position / torque switch antivalence error"}, |
2323 | | {4105, "Test mode running"}, |
2324 | | {4106, "Test mode current flow"}, |
2325 | | {4107, "Main circuit power failure"}, |
2326 | | {4108, "Protection off mode"}, |
2327 | | {4109, "Wiring fault"}, |
2328 | | {4110, "Module dropped out"}, |
2329 | | {4111, "External memory module not accessible "}, |
2330 | | {4112, "Operating hours counter"}, |
2331 | | {4113, "Generator operation"}, |
2332 | | {4114, "Phase control failure"}, |
2333 | | {4115, "2-phase control active"}, |
2334 | | {4116, "Error after self-diagnosis"}, |
2335 | | {4128, "Prewarning overload (I>115%Ie)"}, |
2336 | | {4129, "Phase unbalance"}, |
2337 | | {4130, "Thermal motor model overload"}, |
2338 | | {4131, "Phase failure + thermal motor model overload"}, |
2339 | | {4132, "Temperature sensor overload"}, |
2340 | | {4133, "Temperature sensor short-circuit"}, |
2341 | | {4134, "Temperature sensor wire break"}, |
2342 | | {4135, "Ground fault"}, |
2343 | | {4136, "Ground fault module ground fault"}, |
2344 | | {4137, "Ground fault module wire break"}, |
2345 | | {4138, "Ground fault module short-circuit"}, |
2346 | | {4139, "Temperature module 1 above threshold T"}, |
2347 | | {4140, "Temperature module 1 sensor error"}, |
2348 | | {4141, "Temperature module 1 outside measuring range"}, |
2349 | | {4142, "Temperature module 2 above threshold T"}, |
2350 | | {4143, "Temperature module 2 sensor error"}, |
2351 | | {4144, "Temperature module 2 outside measuring range"}, |
2352 | | {4145, "Emergency thermal motor model deleted"}, |
2353 | | {4146, "Cooling down period active"}, |
2354 | | {4147, "Missing startup parameters"}, |
2355 | | {4148, "Ramp up time exceeded"}, |
2356 | | {4149, "Ramp up time underrun"}, |
2357 | | {4150, "Ex motor protection parameters received"}, |
2358 | | {4160, "Above threshold I"}, |
2359 | | {4161, "Below threshold I"}, |
2360 | | {4162, "Above threshold P"}, |
2361 | | {4163, "Below threshold P"}, |
2362 | | {4164, "Error (0x1044)"}, |
2363 | | {4165, "Below threshold Cos-Phi"}, |
2364 | | {4166, "Actuator shutoff"}, |
2365 | | {4167, "Below threshold U"}, |
2366 | | {4168, "Analog module 1 above threshold 0/4-20mA"}, |
2367 | | {4169, "Analog module 1 below threshold 0/4-20mA"}, |
2368 | | {4170, "Analog module 2 above threshold 0/4-20mA"}, |
2369 | | {4171, "Analog module 2 below threshold 0/4-20mA"}, |
2370 | | {4172, "Motor blockage"}, |
2371 | | {4173, "Dry-run pump"}, |
2372 | | {4174, "Dry-run-protection error"}, |
2373 | | {4181, "Test trip"}, |
2374 | | {4182, "Number of starting operations reached."}, |
2375 | | {4183, "Number of starting operations exceeded"}, |
2376 | | {4184, "One more starting operation allowed."}, |
2377 | | {4185, "Motor operating hours exceeded"}, |
2378 | | {4186, "Standstill time exceeded"}, |
2379 | | {4187, "Analog module 1 wire break"}, |
2380 | | {4188, "Analog module 2 wire break"}, |
2381 | | {4189, "Analog output wire break"}, |
2382 | | {4190, "F-component test requirement"}, |
2383 | | {4191, "F-component feedback circuit"}, |
2384 | | {4192, "F-component discrepancy error"}, |
2385 | | {4193, "F-component wiring error"}, |
2386 | | {4194, "F-component cross-circuit"}, |
2387 | | {4195, "Error (0x1063)"}, |
2388 | | {4196, "Error (0x1064)"}, |
2389 | | {4208, "External error 1"}, |
2390 | | {4209, "External error 2"}, |
2391 | | {4210, "External error 3"}, |
2392 | | {4211, "External error 4"}, |
2393 | | {4212, "External error 5"}, |
2394 | | {4213, "External error 6"}, |
2395 | | {4214, "Error (0x1076)"}, |
2396 | | {4215, "Error (0x1077)"}, |
2397 | | {4224, "Device error"}, |
2398 | | {4225, "Bypass defective"}, |
2399 | | {4226, "Power semiconductor device defective"}, |
2400 | | {4227, "Switching element overload"}, |
2401 | | {4228, "Supply voltage too low"}, |
2402 | | {4229, "Bypass overload"}, |
2403 | | {4230, "Supply voltage contact blocks too low"}, |
2404 | | {4231, "External bypass defect"}, |
2405 | | {4232, "Power supply to switching element missing"}, |
2406 | | {4233, "Time reserve before tripping underrun"}, |
2407 | | {4234, "Error (0x108A)"}, |
2408 | | {4241, "Zero current"}, |
2409 | | {4242, "Motor connection variant unknown or incorrect "}, |
2410 | | {4243, "Sensor supply overload"}, |
2411 | | {4244, "Module slot wrong or configuration faulty"}, |
2412 | | {4245, "Parameter fault"}, |
2413 | | {4246, "Process image error"}, |
2414 | | {4247, "Phase failure"}, |
2415 | | {4248, "Connection break in manual mode"}, |
2416 | | {4249, "Error (0x1099)"}, |
2417 | | {4253, "Input action"}, |
2418 | | {4254, "Emergency end position clockwise"}, |
2419 | | {4255, "Emergency end position counter-clockwise"}, |
2420 | | {4261, "Zero current"}, |
2421 | | {4856, "Limit: @3W%d@ °C (@4W%d@ °F)"}, |
2422 | | {4857, "Limit: @2X%d@ %"}, |
2423 | | {4858, "Cooling period in progress ≤ @2X%u@ sec"}, |
2424 | | {4859, "Prohibited Ie / CLASS setting"}, |
2425 | | {4860, "Limit: @2X%d@ % relative to Ie"}, |
2426 | | {4861, "Slot number: @2X%u@"}, |
2427 | | {4862, "Parameter ID @2X%u@"}, |
2428 | | {4939, "Trip reset not possible"}, |
2429 | | {5393, "Tag does not answer"}, |
2430 | | {5394, "Tag access refused due to wrong password. "}, |
2431 | | {5395, "Tag data verification failed."}, |
2432 | | {5396, "Tag reports an unspecific error"}, |
2433 | | {5397, "Tag has insufficient power "}, |
2434 | | {5405, "Error (0x151D)"}, |
2435 | | {5406, "Error (0x151E)"}, |
2436 | | {5407, "Error (0x151F)"}, |
2437 | | {5409, "RF field without tag"}, |
2438 | | {5410, "RF field returns no data"}, |
2439 | | {5411, "RF field returns CRC error"}, |
2440 | | {5413, "RF field without active frequency"}, |
2441 | | {5414, "RF field without active base"}, |
2442 | | {5415, "RF field with more than one tag"}, |
2443 | | {5416, "RF field with unspecific error on air protocol"}, |
2444 | | {5478, "Command Inventory failed"}, |
2445 | | {5479, "Command Read Tag failed"}, |
2446 | | {5480, "Command Write Tag failed"}, |
2447 | | {5481, "Command Write Tag Id failed"}, |
2448 | | {5482, "Command Lock Tag failed"}, |
2449 | | {5483, "Command Kill Tag failed"}, |
2450 | | {5521, "Antenna 1 not connected"}, |
2451 | | {5522, "Antenna 2 not connected"}, |
2452 | | {5523, "Antenna 3 not connected"}, |
2453 | | {5524, "Antenna 4 not connected"}, |
2454 | | {5525, "Antenna 5 not connected"}, |
2455 | | {5526, "Antenna 6 not connected"}, |
2456 | | {5527, "Antenna 7 not connected"}, |
2457 | | {5528, "Antenna 8 not connected"}, |
2458 | | {5537, "Alarm overflow"}, |
2459 | | {20480, "Invalid sensor"}, |
2460 | | {20481, "Reader not found"}, |
2461 | | {20482, "Error (0x5002)"}, |
2462 | | {20483, "Error during DISA signal change"}, |
2463 | | {20484, "Sequence error"}, |
2464 | | {20485, "Internal file error - Program cannot be started"}, |
2465 | | {20486, "Transmit error"}, |
2466 | | {20487, "Transfer error"}, |
2467 | | {20488, "Error (0x5008)"}, |
2468 | | {20489, "Error (0x5009)"}, |
2469 | | {20490, "Program saving error"}, |
2470 | | {20491, "Match error"}, |
2471 | | {20492, "Error (0x500C)"}, |
2472 | | {20493, "TCP communication / archiving / MMI communication error"}, |
2473 | | {20494, "TCP communication / archiving / MMI communication error"}, |
2474 | | {20495, "Lamp overload error"}, |
2475 | | {20496, "Invalid program number error"}, |
2476 | | {20497, "Error (0x5011)"}, |
2477 | | {20498, "PROFINET IO connection error"}, |
2478 | | {20501, "PROFINET IO controller status STOP"}, |
2479 | | {20502, "PROFINET IO configuration error"}, |
2480 | | {20503, "PROFINET IO compatibility error"}, |
2481 | | {20737, "Communication error HCS bus"}, |
2482 | | {20738, "Line voltage error "}, |
2483 | | {20739, "Frequency error"}, |
2484 | | {20740, "Triac short-circuited"}, |
2485 | | {20741, "Incoming fuse tripped or triac is highly resistive"}, |
2486 | | {20742, "Outgoing fuse tripped"}, |
2487 | | {20743, "External error"}, |
2488 | | {20744, "Internal temperature warning "}, |
2489 | | {20745, "Internal temperature error"}, |
2490 | | {20746, "fan error"}, |
2491 | | {20747, "At least one phase is not connected"}, |
2492 | | {20748, "Internal error"}, |
2493 | | {20749, "CIM communication error"}, |
2494 | | {20750, "Error rotating field"}, |
2495 | | {20751, "Phase LX1 is not connected"}, |
2496 | | {20752, "Phase LX3 is not connected"}, |
2497 | | {20753, "Phase LX3 is not connected"}, |
2498 | | {20754, "Polarity error on measuring input "}, |
2499 | | {20755, "partial load missing"}, |
2500 | | {20756, "permitted channel current exceeded"}, |
2501 | | {20757, "permitted current phase LX1 exceeded"}, |
2502 | | {20758, "permitted current phase LX3 exceeded"}, |
2503 | | {20759, "power-setpoint cannot be reached"}, |
2504 | | {20760, "fault current exceeded"}, |
2505 | | {20761, "adaptive softstart cannot be finished"}, |
2506 | | {20762, "permitted current phase LX2 exceeded"}, |
2507 | | {21761, "No supply voltage"}, |
2508 | | {21762, "No server module"}, |
2509 | | {21763, "Too many modules removed "}, |
2510 | | {21764, "Incorrect Base Unit"}, |
2511 | | {21765, "Incorrect bus structure"}, |
2512 | | {24577, "Redundancy link 1 error"}, |
2513 | | {24578, "Redundancy link 2 error"}, |
2514 | | {24832, "Contactor cannot be turned on"}, |
2515 | | {24833, "Contactor cannot be turned off (contacts welded)"}, |
2516 | | {32464, "Error (Quality Code derived)"}, |
2517 | | {32465, "Maintenance demanded (Quality Code derived)"}, |
2518 | | {32466, "Maintenance required (Quality Code derived)"}, |
2519 | | {32467, "Out of service (Quality Code derived)"}, |
2520 | | {32468, "Passivated (Quality Code derived)"}, |
2521 | | {32469, "Simulated (Quality Code derived)"}, |
2522 | | {32470, "Local control override (Quality Code derived)"}, |
2523 | | {32768, "valid for group of @3W%5d@ channels starting with @8W%t#7W@ channel @4W%5d@ "}, |
2524 | | {36864, "Hardware/software error"}, |
2525 | | {36865, "Net error"}, |
2526 | | {36866, "Supply voltage fault"}, |
2527 | | {36867, "DC link fault"}, |
2528 | | {36868, "Power electronics fault"}, |
2529 | | {36869, "Overtemperature of electronic components"}, |
2530 | | {36870, "Ground fault/phase short-circuit detected"}, |
2531 | | {36871, "Motor overload"}, |
2532 | | {36872, "Communication error to the higher-level control system"}, |
2533 | | {36873, "Safety monitoring channel has identified an error"}, |
2534 | | {36874, "Position/velocity process value incorrect or not available"}, |
2535 | | {36875, "Internal connection error (e.g. DRIVE-CLiQ)"}, |
2536 | | {36876, "Infeed defective"}, |
2537 | | {36877, "Braking module faulty"}, |
2538 | | {36878, "Line filter faulty"}, |
2539 | | {36879, "External measured value/signal state outside permitted range"}, |
2540 | | {36880, "Application/technological function faulty"}, |
2541 | | {36881, "Error in parameter assignment/configuration/commissioning"}, |
2542 | | {36882, "General drive fault"}, |
2543 | | {36883, "Auxiliary unit faulty"}, |
2544 | | {36884, "Drive fault (class 20)"}, |
2545 | | {36885, "Drive fault (class 21)"}, |
2546 | | {36886, "Drive fault (class 22)"}, |
2547 | | {36887, "Drive fault (class 23)"}, |
2548 | | {39826, "Error packet size adoption (PIB)"}, |
2549 | | {39827, "Command repetition not supported (PIB)"}, |
2550 | | {39828, "Timeout during INIT (PIB)"}, |
2551 | | {39829, "Ident Unit does not respond to INIT (PIB)"}, |
2552 | | {39830, "Wrong index (PIB)"}, |
2553 | | {39831, "Only INIT as next command allowed (PIB)"}, |
2554 | | {39832, "RXBUF overflow (PIB)"}, |
2555 | | {39833, "Parameter 'Length' too long (PIB)"}, |
2556 | | {39834, "Command code not allowed (PIB)"}, |
2557 | | {39835, "Only INIT command allowed (PIB)"}, |
2558 | | {39931, "Command in which only Write-Config is permissible in this state"}, |
2559 | | {39932, "Command with wrong synchronization between application and tag"}, |
2560 | | {39933, "Command parameter invalid"}, |
2561 | | {39934, "Command index invalid."}, |
2562 | | {39935, "Command invalid"}, |
2563 | | {40024, "Communication error: synchronization error (PIB)"}, |
2564 | | {40025, "Communication error: wrong sequence of acknowledge telegrams (PIB)"}, |
2565 | | {40026, "Communication error: command code and acknowledgement do not correspond (PIB)"}, |
2566 | | {40027, "Communication error: Ident Unit executes a hardware reset (PIB)"}, |
2567 | | {40028, "Communication error: command from another user being processed"}, |
2568 | | {40029, "Communication error: invalid data block length (PIB)"}, |
2569 | | {40030, "Communication error: invalid data block length"}, |
2570 | | {40031, "Communication error: invalid data block number (PIB)"}, |
2571 | | {40032, "Communication error: invalid data block number"}, |
2572 | | {40034, "Communication error: wrong sequence number (PIB)"}, |
2573 | | {40035, "Communication error: wrong sequence number"}, |
2574 | | {40129, "Device error due to cyclic Status Word"}, |
2575 | | {40130, "Device command in this mode not supported"}, |
2576 | | {40131, "Device data buffer overflow"}, |
2577 | | {40132, "Device command buffer overflow"}, |
2578 | | {40133, "Device antenna error or not activated"}, |
2579 | | {40134, "Device hardware failure"}, |
2580 | | {40135, "Device power supply failure"}, |
2581 | | {40228, "File not accessible"}, |
2582 | | {40229, "File length overflow"}, |
2583 | | {40230, "File access right violation"}, |
2584 | | {40231, "File already exists"}, |
2585 | | {40232, "File entries exhausted."}, |
2586 | | {40233, "File system not available on tag type."}, |
2587 | | {40234, "File does not exist"}, |
2588 | | {40235, "File name incorrect."}, |
2589 | | {40334, "RF field with more tags than allowed"}, |
2590 | | {40335, "RF field communication disturbed"}, |
2591 | | {40426, "Tag access violation "}, |
2592 | | {40427, "Tag command not supported "}, |
2593 | | {40428, "Tag does not have the expected ID"}, |
2594 | | {40429, "Tag data structure inconsistent. "}, |
2595 | | {40430, "Tag unformatted"}, |
2596 | | {40431, "Tag memory overflow"}, |
2597 | | {40432, "Tag is defective"}, |
2598 | | {40433, "Tag address or command does not fit the tag characteristics"}, |
2599 | | {40434, "Tag presence error"}, |
2600 | | {40435, "Tag memory error "}, |
2601 | | {65521, "Input channel"}, |
2602 | | {65522, "Output channel"}, |
2603 | | {65523, "Input/Output channel"}, |
2604 | | {0, NULL} |
2605 | | }; |
2606 | | |
2607 | | static value_string_ext s7comm_szl_xy78_xxxx_dis_cdiag_entry_chet_text_list_8_names_ext = |
2608 | | VALUE_STRING_EXT_INIT(s7comm_szl_xy78_xxxx_dis_cdiag_entry_chet_text_list_8_names); |
2609 | | |
2610 | | static int hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_text_list_echet; |
2611 | | static int hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_echet; |
2612 | | static int hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_add_val; |
2613 | | static int hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_add_val_0; |
2614 | | static int hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_add_val_1; |
2615 | | static int hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_add_val_2; |
2616 | | static int hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_add_val_3; |
2617 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail; |
2618 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_0_2; /* mask: 0x00000007 */ |
2619 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_3; |
2620 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_4; |
2621 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_5; |
2622 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_6; |
2623 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_7_10; /* mask: 0x00000780 */ |
2624 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_11_14; /* mask: 0x00007800 */ |
2625 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_15; /* mask: 0x00008000 */ |
2626 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_16; /* mask: 0x00010000 */ |
2627 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_17; /* mask: 0x00020000 */ |
2628 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_18; /* mask: 0x00040000 */ |
2629 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_19; /* mask: 0x00080000 */ |
2630 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_20; /* mask: 0x00100000 */ |
2631 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_21; /* mask: 0x00200000 */ |
2632 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_22; /* mask: 0x00400000 */ |
2633 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_23; /* mask: 0x00800000 */ |
2634 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_24; /* mask: 0x01000000 */ |
2635 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_25; /* mask: 0x02000000 */ |
2636 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_26; /* mask: 0x04000000 */ |
2637 | | static int hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_27_31; /* mask: 0xF8000000 */ |
2638 | | |
2639 | | |
2640 | | static int hf_s7comm_szl_xy78_xxxx_dis_io_state; |
2641 | | static int hf_s7comm_szl_xy78_xxxx_dis_io_state_0; |
2642 | | static int hf_s7comm_szl_xy78_xxxx_dis_io_state_1; |
2643 | | static int hf_s7comm_szl_xy78_xxxx_dis_io_state_2; |
2644 | | static int hf_s7comm_szl_xy78_xxxx_dis_io_state_3; |
2645 | | static int hf_s7comm_szl_xy78_xxxx_dis_io_state_4; |
2646 | | static int hf_s7comm_szl_xy78_xxxx_dis_io_state_5; |
2647 | | static int hf_s7comm_szl_xy78_xxxx_dis_io_state_6; |
2648 | | static int hf_s7comm_szl_xy78_xxxx_dis_io_state_7; |
2649 | | static int hf_s7comm_szl_xy78_xxxx_dis_io_state_8_14; |
2650 | | static int hf_s7comm_szl_xy78_xxxx_dis_io_state_15; |
2651 | | static int hf_s7comm_szl_xy78_xxxx_dis_res; |
2652 | | static int hf_s7comm_szl_xy78_xxxx_dis_maint_state; |
2653 | | static const value_string s7comm_szl_xy78_xxxx_dis_maint_state_names[] = { |
2654 | | { 0x0, "Good" }, |
2655 | | { 0x1, "DevicePassivated" }, |
2656 | | { 0x2, "OutOfService" }, |
2657 | | { 0x3, "Simulated" }, |
2658 | | { 0x4, "LocalOperation" }, |
2659 | | { 0x5, "MaintenanceRequired" }, |
2660 | | { 0x6, "MaintenanceDemanded" }, |
2661 | | { 0x7, "MaintenanceAlarm" }, |
2662 | | { 0x8, "Unknown" }, |
2663 | | { 0x9, "ConfigurationChanged" }, |
2664 | | { 0xA, "IOnotAvailable" }, |
2665 | | { 0, NULL } |
2666 | | }; |
2667 | | |
2668 | | static int hf_s7comm_szl_xy78_xxxx_dis_operating_state; |
2669 | | static int hf_s7comm_szl_xy78_xxxx_dis_own_state; |
2670 | | static const value_string s7comm_szl_xy78_xxxx_dis_own_state_names[] = { |
2671 | | { 0x0, "Good" }, |
2672 | | { 0x1, "Deactivated" }, |
2673 | | { 0x2, "Maintenance Required" }, |
2674 | | { 0x3, "Maintenance Demanded" }, |
2675 | | { 0x4, "Error" }, |
2676 | | { 0x5, "Not Reachable" }, |
2677 | | { 0x6, "Unknown" }, |
2678 | | { 0x7, "IOnotAvailable" }, |
2679 | | { 0, NULL } |
2680 | | }; |
2681 | | |
2682 | | static int hf_s7comm_szl_xy78_xxxx_sub_ord_io_state; |
2683 | | static int hf_s7comm_szl_xy78_xxxx_sub_ord_state; |
2684 | | static int hf_s7comm_szl_xy78_xxxx_disp_own_state; |
2685 | | static int hf_s7comm_szl_xy78_xxxx_disp_sub_ord_state; |
2686 | | static int hf_s7comm_szl_xy78_xxxx_disp_mode; |
2687 | | static int hf_s7comm_szl_xy78_xxxx_vendor; |
2688 | | static int hf_s7comm_szl_xy78_xxxx_order_id; |
2689 | | static int hf_s7comm_szl_xy78_xxxx_im1; |
2690 | | static int hf_s7comm_szl_xy78_xxxx_iam1_function; |
2691 | | static int hf_s7comm_szl_xy78_xxxx_iam1_location; |
2692 | | static int hf_s7comm_szl_xy78_xxxx_asset_id; |
2693 | | static int hf_s7comm_szl_xy78_xxxx_tlv; |
2694 | | static int hf_s7comm_szl_xy78_xxxx_tlv_num; |
2695 | | static int hf_s7comm_szl_xy78_xxxx_tlv_item; |
2696 | | |
2697 | | static int hf_s7comm_szl_xy78_xxxx_tlv_item_type; |
2698 | | static const value_string szl_xy78_xxxx_tlv_item_type_names[] = { |
2699 | | { 0x1, "DTI-Type" }, |
2700 | | { 0x2, "Alarm-SD" }, |
2701 | | { 0x3, "Propagation behaviour" }, |
2702 | | { 0, NULL } |
2703 | | }; |
2704 | | |
2705 | | static int hf_s7comm_szl_xy78_xxxx_tlv_item_len; |
2706 | | static int hf_s7comm_szl_xy78_xxxx_tlv_item_data; |
2707 | | static int hf_s7comm_szl_xy78_xxxx_tlv_item_dti_type; |
2708 | | static const value_string szl_xy78_xxxx_tlv_item_dti_type_name[] = { |
2709 | | { 0x1, "IO-System" }, |
2710 | | { 0x2, "Device" }, |
2711 | | { 0x3, "Rack" }, |
2712 | | { 0x4, "Module" }, |
2713 | | { 0x5, "Submodule" }, |
2714 | | { 0xB, "IO-Device Agent" }, |
2715 | | { 0, NULL } |
2716 | | }; |
2717 | | |
2718 | | static int ett_s7comm_szl_xy78_xxxx_geo_addr; |
2719 | | static int ett_s7comm_szl_xy78_xxxx_dis; |
2720 | | static int ett_s7comm_szl_xy78_xxxx_dis_cdiags; |
2721 | | static int ett_s7comm_szl_xy78_xxxx_dis_cdiag_entry; |
2722 | | static int ett_s7comm_szl_xy78_xxxx_dis_cdiag_add_val; |
2723 | | static int ett_s7comm_szl_xy78_xxxx_iam1; |
2724 | | static int ett_s7comm_szl_xy78_xxxx_tlv; |
2725 | | static int ett_s7comm_szl_xy78_xxxx_tlv_item; |
2726 | | |
2727 | | static int ett_s7comm_szl_xy78_xxxx_dis_io_state; |
2728 | | static int* const s7comm_szl_xy78_xxxx_dis_io_state_fields[] = { |
2729 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_0, |
2730 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_1, |
2731 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_2, |
2732 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_3, |
2733 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_4, |
2734 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_5, |
2735 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_6, |
2736 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_7, |
2737 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_8_14, |
2738 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_15, |
2739 | | NULL |
2740 | | }; |
2741 | | |
2742 | | static int ett_s7comm_szl_xy78_xxxx_sub_ord_io_state; |
2743 | | static int* const s7comm_szl_xy78_xxxx_sub_ord_io_state_fields[] = { |
2744 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_0, |
2745 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_1, |
2746 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_2, |
2747 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_3, |
2748 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_4, |
2749 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_5, |
2750 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_6, |
2751 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_7, |
2752 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_8_14, |
2753 | | &hf_s7comm_szl_xy78_xxxx_dis_io_state_15, |
2754 | | NULL |
2755 | | }; |
2756 | | |
2757 | | static int ett_s7comm_szl_xy78_xxxx_dis_comp_state_detail; |
2758 | | static int* const s7comm_szl_xy78_xxxx_dis_comp_state_detail_fields[] = { |
2759 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_0_2, |
2760 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_3, |
2761 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_4, |
2762 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_5, |
2763 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_6, |
2764 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_7_10, |
2765 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_11_14, |
2766 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_15, |
2767 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_16, |
2768 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_17, |
2769 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_18, |
2770 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_19, |
2771 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_20, |
2772 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_21, |
2773 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_22, |
2774 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_23, |
2775 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_24, |
2776 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_25, |
2777 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_26, |
2778 | | &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_27_31, |
2779 | | NULL |
2780 | | }; |
2781 | | |
2782 | | /******************************************************************************************************* |
2783 | | * |
2784 | | * Get the textual description of the szl index. Returns NULL if not description available |
2785 | | * |
2786 | | *******************************************************************************************************/ |
2787 | | static const char* |
2788 | | s7comm_get_szl_id_index_description_text(uint16_t id, uint16_t idx) |
2789 | 35 | { |
2790 | 35 | const char* str = NULL; |
2791 | 35 | switch (id) { |
2792 | 0 | case 0x0077: |
2793 | 0 | str = "DNN-Id"; |
2794 | 0 | break; |
2795 | 0 | case 0x0078: |
2796 | 0 | str = "DNN-Id"; |
2797 | 0 | break; |
2798 | 0 | case 0x0111: |
2799 | 0 | str = val_to_str_const(idx, szl_0111_index_names, "No description available"); |
2800 | 0 | break; |
2801 | 0 | case 0x0112: |
2802 | 0 | str = val_to_str_const(idx, szl_0112_index_names, "No description available"); |
2803 | 0 | break; |
2804 | 0 | case 0x0113: |
2805 | 0 | str = val_to_str_const(idx, szl_0113_index_names, "No description available"); |
2806 | 0 | break; |
2807 | 0 | case 0x0114: |
2808 | 0 | str = val_to_str_const(idx, szl_0114_index_names, "No description available"); |
2809 | 0 | break; |
2810 | 0 | case 0x0115: |
2811 | 0 | str = val_to_str_const(idx, szl_0115_index_names, "No description available"); |
2812 | 0 | break; |
2813 | 0 | case 0x0116: |
2814 | 0 | str = val_to_str_const(idx, szl_0116_index_names, "No description available"); |
2815 | 0 | break; |
2816 | 0 | case 0x0118: |
2817 | 0 | str = val_to_str_const(idx, szl_0118_index_names, "No description available"); |
2818 | 0 | break; |
2819 | 0 | case 0x0119: |
2820 | 0 | str = val_to_str_const(idx, szl_0119_0174_ledid_index_names, "No description available"); |
2821 | 0 | break; |
2822 | 0 | case 0x0121: |
2823 | 0 | str = val_to_str_const(idx, szl_0121_index_names, "No description available"); |
2824 | 0 | break; |
2825 | 0 | case 0x0222: |
2826 | 0 | str = val_to_str_const(idx, szl_0222_index_names, "No description available"); |
2827 | 0 | break; |
2828 | 0 | case 0x0524: |
2829 | 0 | str = val_to_str_const(idx, szl_0524_index_names, "No description available"); |
2830 | 0 | break; |
2831 | 0 | case 0x0131: |
2832 | 0 | str = val_to_str_const(idx, szl_0131_index_names, "No description available"); |
2833 | 0 | break; |
2834 | 0 | case 0x0132: |
2835 | 0 | str = val_to_str_const(idx, szl_0132_index_names, "No description available"); |
2836 | 0 | break; |
2837 | 0 | case 0x0174: |
2838 | 0 | str = val_to_str_const(idx, szl_0119_0174_ledid_index_names, "No description available"); |
2839 | 0 | break; |
2840 | 0 | case 0x011c: |
2841 | 0 | case 0x031c: |
2842 | 0 | str = val_to_str_const(idx, szl_xy1c_index_names, "No description available"); |
2843 | 0 | break; |
2844 | 35 | } |
2845 | 35 | return str; |
2846 | 35 | } |
2847 | | |
2848 | | /******************************************************************************************************* |
2849 | | ******************************************************************************************************* |
2850 | | * |
2851 | | * PDU Type: User Data -> Function group 4 -> SZL functions -> All known SZD-ID and Indices |
2852 | | * |
2853 | | ******************************************************************************************************* |
2854 | | *******************************************************************************************************/ |
2855 | | |
2856 | | /******************************************************************************************************* |
2857 | | * |
2858 | | * SZL-ID: 0xxy00 |
2859 | | * Content: |
2860 | | * If you read the partial lists with SZL-ID W#16#xy00, you obtain the |
2861 | | * SZL-IDs supported by the module. |
2862 | | * |
2863 | | * The SZL-ID of the partial list extract |
2864 | | * W#16#0000H: all SZL partial lists of the module |
2865 | | * W#16#0100H: a partial list with all partial list extracts |
2866 | | * W#16#0200H: a partial list extract |
2867 | | * W#16#0300H: possible indexes of a partial list extract |
2868 | | * W#16#0F00H: only partial list header information |
2869 | | * |
2870 | | *******************************************************************************************************/ |
2871 | | static void |
2872 | | s7comm_szl_0000_0000_register(int proto) |
2873 | 15 | { |
2874 | 15 | static hf_register_info hf[] = { |
2875 | 15 | { &hf_s7comm_szl_0000_0000_szl_id, |
2876 | 15 | { "SZL ID that exists", "s7comm.szl.0000.0000.szl_id", FT_UINT16, BASE_HEX | BASE_EXT_STRING, &szl_id_partlist_ex_names_ext, 0x0, |
2877 | 15 | NULL, HFILL }}, |
2878 | 15 | { &hf_s7comm_szl_0000_0000_module_type_class, |
2879 | 15 | { "Module type class", "s7comm.szl.0000.0000.module_type_class", FT_UINT16, BASE_HEX, NULL, 0xf000, |
2880 | 15 | NULL, HFILL }}, |
2881 | 15 | { &hf_s7comm_szl_0000_0000_partlist_extr_nr, |
2882 | 15 | { "Number of the SZL partial list extract", "s7comm.szl.0000.0000.partlist_extr_nr", FT_UINT16, BASE_HEX, NULL, 0x0f00, |
2883 | 15 | NULL, HFILL }}, |
2884 | 15 | { &hf_s7comm_szl_0000_0000_partlist_nr, |
2885 | 15 | { "Number of the SZL partial list", "s7comm.szl.0000.0000.partlist_nr", FT_UINT16, BASE_HEX, NULL, 0x00ff, |
2886 | 15 | NULL, HFILL }} |
2887 | 15 | }; |
2888 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
2889 | 15 | } |
2890 | | |
2891 | | /*----------------------------------------------------------------------------------------------------*/ |
2892 | | static uint32_t |
2893 | | s7comm_decode_szl_id_xy00(tvbuff_t *tvb, |
2894 | | proto_tree *tree, |
2895 | | uint16_t id, |
2896 | | uint16_t idx, |
2897 | | uint32_t offset) |
2898 | 0 | { |
2899 | 0 | if (id == 0 && idx == 0) { |
2900 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0000_0000_szl_id, tvb, offset, 2, ENC_BIG_ENDIAN); |
2901 | 0 | offset += 2; |
2902 | 0 | } else if (id == 0x0100) { |
2903 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0000_0000_module_type_class, tvb, offset, 2, ENC_BIG_ENDIAN); |
2904 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0000_0000_partlist_nr, tvb, offset, 2, ENC_BIG_ENDIAN); |
2905 | 0 | offset += 2; |
2906 | 0 | } else if (id == 0x0200 || id == 0x0300) { |
2907 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0000_0000_module_type_class, tvb, offset, 2, ENC_BIG_ENDIAN); |
2908 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0000_0000_partlist_extr_nr, tvb, offset, 2, ENC_BIG_ENDIAN); |
2909 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0000_0000_partlist_nr, tvb, offset, 2, ENC_BIG_ENDIAN); |
2910 | 0 | offset += 2; |
2911 | 0 | } else { |
2912 | | /* 0x0f00 / 0x000: Partial list header information (number of all SZL-IDs of the module */ |
2913 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0000_0000_szl_id, tvb, offset, 2, ENC_BIG_ENDIAN); |
2914 | 0 | offset += 2; |
2915 | 0 | } |
2916 | |
|
2917 | 0 | return offset; |
2918 | 0 | } |
2919 | | |
2920 | | /******************************************************************************************************* |
2921 | | * |
2922 | | * SZL-ID: 0x0013 |
2923 | | * Index: 0x0000 |
2924 | | * Content: |
2925 | | * If you read the partial list with SZL-ID W#16#xy13, you obtain information |
2926 | | * about the memory areas of the module. |
2927 | | * |
2928 | | * The SZL-ID of the partial list extract |
2929 | | * W#16#0013: data records of all memory areas |
2930 | | * W#16#0113: data record for one memory area, You specify the memory area with the INDEX parameter. |
2931 | | * W#16#0F13: only partial list header information |
2932 | | * |
2933 | | *******************************************************************************************************/ |
2934 | | static void |
2935 | | s7comm_szl_0013_0000_register(int proto) |
2936 | 15 | { |
2937 | 15 | static hf_register_info hf[] = { |
2938 | 15 | { &hf_s7comm_szl_0013_0000_index, |
2939 | 15 | { "Index", "s7comm.szl.0013.0000.index", FT_UINT16, BASE_HEX, VALS(szl_0113_index_names), 0x0, |
2940 | 15 | "Index of an identification data record", HFILL }}, |
2941 | 15 | { &hf_s7comm_szl_0013_0000_code, |
2942 | 15 | { "Code (Memory type)", "s7comm.szl.0013.0000.code", FT_UINT16, BASE_HEX, VALS(szl_memory_type_names), 0x0, |
2943 | 15 | NULL, HFILL }}, |
2944 | 15 | { &hf_s7comm_szl_0013_0000_size, |
2945 | 15 | { "Size (Total size of the selected memory, total of area 1 and area 2)", "s7comm.szl.0013.0000.size", FT_UINT32, BASE_DEC, NULL, 0x0, |
2946 | 15 | NULL, HFILL }}, |
2947 | 15 | { &hf_s7comm_szl_0013_0000_mode, |
2948 | 15 | { "Mode (Logical mode of the memory)", "s7comm.szl.0013.0000.mode", FT_UINT32, BASE_DEC, NULL, 0x0, |
2949 | 15 | NULL, HFILL }}, |
2950 | 15 | { &hf_s7comm_szl_0013_0000_mode_0, |
2951 | 15 | { "Volatile memory area", "s7comm.szl.0013.0000.mode.vol_mem", FT_BOOLEAN, 8, NULL, 0x01, |
2952 | 15 | "Bit 0: Volatile memory area", HFILL }}, |
2953 | 15 | { &hf_s7comm_szl_0013_0000_mode_1, |
2954 | 15 | { "Non-volatile memory area", "s7comm.szl.0013.0000.mode.nvol_mem", FT_BOOLEAN, 8, NULL, 0x02, |
2955 | 15 | "Bit 1: Non-volatile memory area", HFILL }}, |
2956 | 15 | { &hf_s7comm_szl_0013_0000_mode_2, |
2957 | 15 | { "Mixed memory area", "s7comm.szl.0013.0000.mode.mixed_mem", FT_BOOLEAN, 8, NULL, 0x04, |
2958 | 15 | "Bit 2: Mixed memory area", HFILL }}, |
2959 | 15 | { &hf_s7comm_szl_0013_0000_mode_3, |
2960 | 15 | { "Code and data separate (for work memory)", "s7comm.szl.0013.0000.mode.cd_sep", FT_BOOLEAN, 8, NULL, 0x08, |
2961 | 15 | "Bit 3: Code and data separate (for work memory)", HFILL }}, |
2962 | 15 | { &hf_s7comm_szl_0013_0000_mode_4, |
2963 | 15 | { "Code and data together (for work memory)", "s7comm.szl.0013.0000.mode.cd_tog", FT_BOOLEAN, 8, NULL, 0x10, |
2964 | 15 | "Bit 4: Code and data together (for work memory)", HFILL }}, |
2965 | 15 | { &hf_s7comm_szl_0013_0000_granu, |
2966 | 15 | { "Granu", "s7comm.szl.0013.0000.granu", FT_UINT16, BASE_HEX, NULL, 0x0, |
2967 | 15 | "Granu (Always has the value 0)", HFILL }}, |
2968 | 15 | { &hf_s7comm_szl_0013_0000_ber1, |
2969 | 15 | { "ber1 (Size of the volatile memory area in bytes)", "s7comm.szl.0013.0000.ber1", FT_UINT32, BASE_DEC, NULL, 0x0, |
2970 | 15 | NULL, HFILL }}, |
2971 | 15 | { &hf_s7comm_szl_0013_0000_belegt1, |
2972 | 15 | { "belegt1 (Size of the volatile memory area being used)", "s7comm.szl.0013.0000.belegt1", FT_UINT32, BASE_DEC, NULL, 0x0, |
2973 | 15 | NULL, HFILL }}, |
2974 | 15 | { &hf_s7comm_szl_0013_0000_block1, |
2975 | 15 | { "block1 (Largest free block in the volatile memory area)", "s7comm.szl.0013.0000.block1", FT_UINT32, BASE_DEC, NULL, 0x0, |
2976 | 15 | NULL, HFILL }}, |
2977 | 15 | { &hf_s7comm_szl_0013_0000_ber2, |
2978 | 15 | { "ber2 (Size of the non-volatile memory area in bytes)", "s7comm.szl.0013.0000.ber2", FT_UINT32, BASE_DEC, NULL, 0x0, |
2979 | 15 | NULL, HFILL }}, |
2980 | 15 | { &hf_s7comm_szl_0013_0000_belegt2, |
2981 | 15 | { "belegt2 (Size of the non-volatile memory area being used)", "s7comm.szl.0013.0000.belegt2", FT_UINT32, BASE_DEC, NULL, 0x0, |
2982 | 15 | NULL, HFILL }}, |
2983 | 15 | { &hf_s7comm_szl_0013_0000_block2, |
2984 | 15 | { "block2 (Largest free block in the non-volatile memory area)", "s7comm.szl.0013.0000.block2", FT_UINT32, BASE_DEC, NULL, 0x0, |
2985 | 15 | NULL, HFILL }} |
2986 | 15 | }; |
2987 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
2988 | 15 | } |
2989 | | |
2990 | | /*----------------------------------------------------------------------------------------------------*/ |
2991 | | static uint32_t |
2992 | | s7comm_decode_szl_id_0013_idx_0000(tvbuff_t *tvb, |
2993 | | proto_tree *tree, |
2994 | | uint32_t offset) |
2995 | 0 | { |
2996 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0013_0000_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
2997 | 0 | offset += 2; |
2998 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0013_0000_code, tvb, offset, 2, ENC_BIG_ENDIAN); |
2999 | 0 | offset += 2; |
3000 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0013_0000_size, tvb, offset, 4, ENC_BIG_ENDIAN); |
3001 | 0 | offset += 4; |
3002 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0013_0000_mode, tvb, offset, 2, ENC_BIG_ENDIAN); |
3003 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0013_0000_mode_0, tvb, offset, 2, ENC_BIG_ENDIAN); |
3004 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0013_0000_mode_1, tvb, offset, 2, ENC_BIG_ENDIAN); |
3005 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0013_0000_mode_2, tvb, offset, 2, ENC_BIG_ENDIAN); |
3006 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0013_0000_mode_3, tvb, offset, 2, ENC_BIG_ENDIAN); |
3007 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0013_0000_mode_4, tvb, offset, 2, ENC_BIG_ENDIAN); |
3008 | 0 | offset += 2; |
3009 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0013_0000_granu, tvb, offset, 2, ENC_BIG_ENDIAN); |
3010 | 0 | offset += 2; |
3011 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0013_0000_ber1, tvb, offset, 4, ENC_BIG_ENDIAN); |
3012 | 0 | offset += 4; |
3013 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0013_0000_belegt1, tvb, offset, 4, ENC_BIG_ENDIAN); |
3014 | 0 | offset += 4; |
3015 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0013_0000_block1, tvb, offset, 4, ENC_BIG_ENDIAN); |
3016 | 0 | offset += 4; |
3017 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0013_0000_ber2, tvb, offset, 4, ENC_BIG_ENDIAN); |
3018 | 0 | offset += 4; |
3019 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0013_0000_belegt2, tvb, offset, 4, ENC_BIG_ENDIAN); |
3020 | 0 | offset += 4; |
3021 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0013_0000_block2, tvb, offset, 4, ENC_BIG_ENDIAN); |
3022 | 0 | offset += 4; |
3023 | |
|
3024 | 0 | return offset; |
3025 | 0 | } |
3026 | | |
3027 | | /******************************************************************************************************* |
3028 | | * |
3029 | | * SZL-ID: 0xxy14 |
3030 | | * Index: 0x000x |
3031 | | * Content: |
3032 | | * If you read the system status list with SZL-ID W#16#xy14, you obtain |
3033 | | * information about the system areas of the module. |
3034 | | * |
3035 | | *******************************************************************************************************/ |
3036 | | static void |
3037 | | s7comm_szl_xy14_000x_register(int proto) |
3038 | 15 | { |
3039 | 15 | static hf_register_info hf[] = { |
3040 | 15 | { &hf_s7comm_szl_xy14_000x_index, |
3041 | 15 | { "Index", "s7comm.szl.xy14.000x.index", FT_UINT16, BASE_HEX, VALS(szl_0114_index_names), 0x0, |
3042 | 15 | "Index of the system area", HFILL }}, |
3043 | 15 | { &hf_s7comm_szl_xy14_000x_code, |
3044 | 15 | { "Code (Memory type)", "s7comm.szl.xy14.000x.code", FT_UINT16, BASE_HEX, VALS(szl_memory_type_names), 0x0, |
3045 | 15 | NULL, HFILL }}, |
3046 | 15 | { &hf_s7comm_szl_xy14_000x_quantity, |
3047 | 15 | { "Quantity (Number of elements of the system area)", "s7comm.szl.xy14.000x.quantity", FT_UINT16, BASE_DEC, NULL, 0x0, |
3048 | 15 | NULL, HFILL }}, |
3049 | 15 | { &hf_s7comm_szl_xy14_000x_reman, |
3050 | 15 | { "Reman (Number of retentive elements)", "s7comm.szl.xy14.000x.reman", FT_UINT16, BASE_DEC, NULL, 0x0, |
3051 | 15 | NULL, HFILL }} |
3052 | 15 | }; |
3053 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
3054 | 15 | } |
3055 | | |
3056 | | /*----------------------------------------------------------------------------------------------------*/ |
3057 | | static uint32_t |
3058 | | s7comm_decode_szl_id_xy14_idx_000x(tvbuff_t *tvb, |
3059 | | proto_tree *tree, |
3060 | | uint32_t offset) |
3061 | 0 | { |
3062 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy14_000x_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
3063 | 0 | offset += 2; |
3064 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy14_000x_code, tvb, offset, 2, ENC_BIG_ENDIAN); |
3065 | 0 | offset += 2; |
3066 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy14_000x_quantity, tvb, offset, 2, ENC_BIG_ENDIAN); |
3067 | 0 | offset += 2; |
3068 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy14_000x_reman, tvb, offset, 2, ENC_BIG_ENDIAN); |
3069 | 0 | offset += 2; |
3070 | |
|
3071 | 0 | return offset; |
3072 | 0 | } |
3073 | | |
3074 | | /******************************************************************************************************* |
3075 | | * |
3076 | | * SZL-ID: 0xxy15 |
3077 | | * Index: 0x000x |
3078 | | * Content: |
3079 | | * If you read the system status list with SZL-ID W#16#xy14, you obtain |
3080 | | * the block types that exist on the module. |
3081 | | * |
3082 | | *******************************************************************************************************/ |
3083 | | static void |
3084 | | s7comm_szl_xy15_000x_register(int proto) |
3085 | 15 | { |
3086 | 15 | static hf_register_info hf[] = { |
3087 | 15 | { &hf_s7comm_szl_xy15_000x_index, |
3088 | 15 | { "Index", "s7comm.szl.xy15.000x.index", FT_UINT16, BASE_HEX, VALS(szl_0115_index_names), 0x0, |
3089 | 15 | "Block type number", HFILL }}, |
3090 | 15 | { &hf_s7comm_szl_xy15_000x_maxanz, |
3091 | 15 | { "MaxAnz (Maximum number of blocks of the type)", "s7comm.szl.xy15.000x.maxanz", FT_UINT16, BASE_DEC, NULL, 0x0, |
3092 | 15 | NULL, HFILL }}, |
3093 | 15 | { &hf_s7comm_szl_xy15_000x_maxlng, |
3094 | 15 | { "MaxLng (Maximum total size of the object to be loaded in Kbytes)", "s7comm.szl.xy15.000x.maxlng", FT_UINT16, BASE_DEC, NULL, 0x0, |
3095 | 15 | NULL, HFILL }}, |
3096 | 15 | { &hf_s7comm_szl_xy15_000x_maxabl, |
3097 | 15 | { "MaxAbl (Maximum length of the work memory part of a block in bytes)", "s7comm.szl.xy15.000x.maxabl", FT_UINT32, BASE_DEC, NULL, 0x0, |
3098 | 15 | NULL, HFILL }} |
3099 | 15 | }; |
3100 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
3101 | 15 | } |
3102 | | |
3103 | | /*----------------------------------------------------------------------------------------------------*/ |
3104 | | static uint32_t |
3105 | | s7comm_decode_szl_id_xy15_idx_000x(tvbuff_t *tvb, |
3106 | | proto_tree *tree, |
3107 | | uint32_t offset) |
3108 | 0 | { |
3109 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy15_000x_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
3110 | 0 | offset += 2; |
3111 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy15_000x_maxanz, tvb, offset, 2, ENC_BIG_ENDIAN); |
3112 | 0 | offset += 2; |
3113 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy15_000x_maxlng, tvb, offset, 2, ENC_BIG_ENDIAN); |
3114 | 0 | offset += 2; |
3115 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy15_000x_maxabl, tvb, offset, 4, ENC_BIG_ENDIAN); |
3116 | 0 | offset += 4; |
3117 | |
|
3118 | 0 | return offset; |
3119 | 0 | } |
3120 | | |
3121 | | /******************************************************************************************************* |
3122 | | * |
3123 | | * SZL-ID: 0xxy11 |
3124 | | * Index: 0x0001 |
3125 | | * Content: |
3126 | | * If you read the system status list with SZL-ID W#16#xy11, you obtain the |
3127 | | * module identification of the module. |
3128 | | * |
3129 | | *******************************************************************************************************/ |
3130 | | static void |
3131 | | s7comm_szl_xy11_0001_register(int proto) |
3132 | 15 | { |
3133 | 15 | static hf_register_info hf[] = { |
3134 | 15 | { &hf_s7comm_szl_xy11_0001_index, |
3135 | 15 | { "Index", "s7comm.szl.xy11.0001.index", FT_UINT16, BASE_HEX, VALS(szl_0111_index_names), 0x0, |
3136 | 15 | "Index of an identification data record", HFILL }}, |
3137 | 15 | { &hf_s7comm_szl_xy11_0001_mlfb, |
3138 | 15 | { "MlfB (Order number of the module)", "s7comm.szl.xy11.0001.anz", FT_STRING, BASE_NONE, NULL, 0x0, |
3139 | 15 | NULL, HFILL }}, |
3140 | 15 | { &hf_s7comm_szl_xy11_0001_bgtyp, |
3141 | 15 | { "BGTyp (Module type ID)", "s7comm.szl.xy11.0001.bgtyp", FT_UINT16, BASE_HEX, NULL, 0x0, |
3142 | 15 | NULL, HFILL }}, |
3143 | 15 | { &hf_s7comm_szl_xy11_0001_ausbg, |
3144 | 15 | { "Ausbg (Version of the module or release of the operating system)", "s7comm.szl.xy11.0001.ausbg", FT_UINT16, BASE_DEC, NULL, 0x0, |
3145 | 15 | NULL, HFILL }}, |
3146 | 15 | { &hf_s7comm_szl_xy11_0001_ausbe, |
3147 | 15 | { "Ausbe (Release of the PG description file)", "s7comm.szl.xy11.0001.ausbe", FT_UINT16, BASE_DEC, NULL, 0x0, |
3148 | 15 | NULL, HFILL }} |
3149 | 15 | }; |
3150 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
3151 | 15 | } |
3152 | | |
3153 | | /*----------------------------------------------------------------------------------------------------*/ |
3154 | | static uint32_t |
3155 | | s7comm_decode_szl_id_0111_idx_0001(tvbuff_t *tvb, |
3156 | | proto_tree *tree, |
3157 | | uint32_t offset) |
3158 | 0 | { |
3159 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy11_0001_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
3160 | 0 | offset += 2; |
3161 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy11_0001_mlfb, tvb, offset, 20, ENC_ASCII); |
3162 | 0 | offset += 20; |
3163 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy11_0001_bgtyp, tvb, offset, 2, ENC_BIG_ENDIAN); |
3164 | 0 | offset += 2; |
3165 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy11_0001_ausbg, tvb, offset, 2, ENC_BIG_ENDIAN); |
3166 | 0 | offset += 2; |
3167 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy11_0001_ausbe, tvb, offset, 2, ENC_BIG_ENDIAN); |
3168 | 0 | offset += 2; |
3169 | |
|
3170 | 0 | return offset; |
3171 | 0 | } |
3172 | | |
3173 | | /******************************************************************************************************* |
3174 | | * |
3175 | | * SZL-ID: 0xxy22 |
3176 | | * Index: 0x00xx |
3177 | | * Content: |
3178 | | * Contains information about the current status of interrupt |
3179 | | * processing and interrupt generation in the module. |
3180 | | * |
3181 | | *******************************************************************************************************/ |
3182 | | static void |
3183 | | s7comm_szl_xy22_00xx_register(int proto) |
3184 | 15 | { |
3185 | 15 | static hf_register_info hf[] = { |
3186 | 15 | { &hf_s7comm_szl_xy22_00xx_info, |
3187 | 15 | { "Start info for the given OB", "s7comm.szl.xy22.00xx.info", FT_BYTES, BASE_NONE, NULL, 0x0, |
3188 | 15 | NULL, HFILL }}, |
3189 | 15 | { &hf_s7comm_szl_xy22_00xx_al1, |
3190 | 15 | { "al1 (Processing identifiers)", "s7comm.szl.xy22.00xx.al1", FT_UINT16, BASE_HEX, NULL, 0x0, |
3191 | 15 | NULL, HFILL }}, |
3192 | 15 | { &hf_s7comm_szl_xy22_00xx_al1_0, |
3193 | 15 | { "Interrupt event is caused by parameters disabled", "s7comm.szl.xy22.00xx.al1.evpd", FT_BOOLEAN, 16, NULL, 0x0001, |
3194 | 15 | "Bit 0: Interrupt event is caused by parameters, 0=Enabled, 1=Disabled", HFILL }}, |
3195 | 15 | { &hf_s7comm_szl_xy22_00xx_al1_1, |
3196 | 15 | { "Interrupt event as per SFC 39 locked", "s7comm.szl.xy22.00xx.al1.iel", FT_BOOLEAN, 16, NULL, 0x0002, |
3197 | 15 | "Bit 1: Interrupt event as per SFC 39, 0=Not locked, 1=Locked", HFILL }}, |
3198 | 15 | { &hf_s7comm_szl_xy22_00xx_al1_2, |
3199 | 15 | { "Interrupt source is active", "s7comm.szl.xy22.00xx.al1.isia", FT_BOOLEAN, 16, NULL, 0x0004, |
3200 | 15 | "Bit 2: Interrupt source is active", HFILL }}, |
3201 | 15 | { &hf_s7comm_szl_xy22_00xx_al1_4, |
3202 | 15 | { "Interrupt OB is loaded", "s7comm.szl.xy22.00xx.al1.ioil", FT_BOOLEAN, 16, NULL, 0x0010, |
3203 | 15 | "Bit 4: Interrupt OB, 0=Is not loaded, 1=Is loaded", HFILL }}, |
3204 | 15 | { &hf_s7comm_szl_xy22_00xx_al1_5, |
3205 | 15 | { "Interrupt OB is locked by TIS", "s7comm.szl.xy22.00xx.al1.ioilbt", FT_BOOLEAN, 16, NULL, 0x0020, |
3206 | 15 | "Bit 5: Interrupt OB is by TIS, 1=Locked", HFILL }}, |
3207 | 15 | { &hf_s7comm_szl_xy22_00xx_al1_6, |
3208 | 15 | { "Entry in diagnostic buffer locked", "s7comm.szl.xy22.00xx.al1.eidbl", FT_BOOLEAN, 16, NULL, 0x0040, |
3209 | 15 | "Bit 6: Entry in diagnostic buffer, 1=Locked", HFILL }}, |
3210 | 15 | { &hf_s7comm_szl_xy22_00xx_al2, |
3211 | 15 | { "al2 (Reaction with not loaded/locked OB)", "s7comm.szl.xy22.00xx.al2", FT_UINT16, BASE_HEX, NULL, 0x0, |
3212 | 15 | NULL, HFILL }}, |
3213 | 15 | { &hf_s7comm_szl_xy22_00xx_al2_0, |
3214 | 15 | { "Lock interrupt source", "s7comm.szl.xy22.00xx.al2.lis", FT_BOOLEAN, 16, NULL, 0x0001, |
3215 | 15 | "Bit 0: Lock interrupt source", HFILL }}, |
3216 | 15 | { &hf_s7comm_szl_xy22_00xx_al2_1, |
3217 | 15 | { "Generate interrupt event error", "s7comm.szl.xy22.00xx.al2.giee", FT_BOOLEAN, 16, NULL, 0x0002, |
3218 | 15 | "Bit 1: Generate interrupt event error", HFILL }}, |
3219 | 15 | { &hf_s7comm_szl_xy22_00xx_al2_2, |
3220 | 15 | { "CPU goes into STOP mode", "s7comm.szl.xy22.00xx.al2.gism", FT_BOOLEAN, 16, NULL, 0x0004, |
3221 | 15 | "Bit 2: CPU goes into STOP mode", HFILL }}, |
3222 | 15 | { &hf_s7comm_szl_xy22_00xx_al2_3, |
3223 | 15 | { "Interrupt only discarded", "s7comm.szl.xy22.00xx.al2.iod", FT_BOOLEAN, 16, NULL, 0x0008, |
3224 | 15 | "Bit 3: Interrupt only discarded", HFILL }}, |
3225 | 15 | { &hf_s7comm_szl_xy22_00xx_al3, |
3226 | 15 | { "al3 (Discarded by TIS functions)", "s7comm.szl.xy22.00xx.al3", FT_UINT32, BASE_HEX, NULL, 0x0, |
3227 | 15 | NULL, HFILL }} |
3228 | 15 | }; |
3229 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
3230 | 15 | } |
3231 | | |
3232 | | /*----------------------------------------------------------------------------------------------------*/ |
3233 | | static uint32_t |
3234 | | s7comm_decode_szl_id_xy22_idx_00xx(tvbuff_t *tvb, |
3235 | | proto_tree *tree, |
3236 | | uint32_t offset) |
3237 | 0 | { |
3238 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy22_00xx_info, tvb, offset, 20, ENC_NA); |
3239 | 0 | offset += 20; |
3240 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_xy22_00xx_al1, |
3241 | 0 | ett_s7comm_szl_xy22_00xx_al1, s7comm_szl_xy22_00xx_al1_fields, ENC_BIG_ENDIAN); |
3242 | 0 | offset += 2; |
3243 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_xy22_00xx_al2, |
3244 | 0 | ett_s7comm_szl_xy22_00xx_al2, s7comm_szl_xy22_00xx_al2_fields, ENC_BIG_ENDIAN); |
3245 | 0 | offset += 2; |
3246 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy22_00xx_al3, tvb, offset, 4, ENC_BIG_ENDIAN); |
3247 | 0 | offset += 4; |
3248 | |
|
3249 | 0 | return offset; |
3250 | 0 | } |
3251 | | |
3252 | | /******************************************************************************************************* |
3253 | | * |
3254 | | * SZL-ID: 0x0131 |
3255 | | * Index: 0x0001 |
3256 | | * Content: |
3257 | | * The partial list extract with SZL-ID W#16#0131 and the index W#16#0001 |
3258 | | * contains general data about the communication of a communication unit. |
3259 | | * |
3260 | | *******************************************************************************************************/ |
3261 | | static void |
3262 | | s7comm_szl_0131_0001_register(int proto) |
3263 | 15 | { |
3264 | 15 | static hf_register_info hf[] = { |
3265 | 15 | { &hf_s7comm_szl_0131_0001_index, |
3266 | 15 | { "Index", "s7comm.szl.0131.0001.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
3267 | 15 | "W#16#0001: Index for general communication data", HFILL }}, |
3268 | 15 | { &hf_s7comm_szl_0131_0001_pdu, |
3269 | 15 | { "pdu (Maximum PDU size in bytes)", "s7comm.szl.0131.0001.pdu", FT_UINT16, BASE_DEC, NULL, 0x0, |
3270 | 15 | "Maximum PDU size in bytes", HFILL }}, |
3271 | 15 | { &hf_s7comm_szl_0131_0001_anz, |
3272 | 15 | { "anz (Maximum number of communication connections)", "s7comm.szl.0131.0001.anz", FT_UINT16, BASE_DEC, NULL, 0x0, |
3273 | 15 | "Maximum number of communication connections", HFILL }}, |
3274 | 15 | { &hf_s7comm_szl_0131_0001_mpi_bps, |
3275 | 15 | { "mpi_bps (Maximum data rate of the MPI in hexadecimal format)", "s7comm.szl.0131.0001.mpi_bps", FT_UINT32, BASE_HEX, NULL, 0x0, |
3276 | 15 | "Maximum data rate of the MPI in hexadecimal format, Example: 0x2DC6C corresponds to 187500 bps", HFILL }}, |
3277 | 15 | { &hf_s7comm_szl_0131_0001_kbus_bps, |
3278 | 15 | { "mkbus_bps (Maximum data rate of the communication bus)", "s7comm.szl.0131.0001.kbus_bps", FT_UINT32, BASE_HEX, NULL, 0x0, |
3279 | 15 | "Maximum data rate of the communication bus", HFILL }}, |
3280 | 15 | { &hf_s7comm_szl_0131_0001_res, |
3281 | 15 | { "res (Reserved)", "s7comm.szl.0131.0001.res", FT_BYTES, BASE_NONE, NULL, 0x0, |
3282 | 15 | "Reserved", HFILL }} |
3283 | 15 | }; |
3284 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
3285 | 15 | } |
3286 | | |
3287 | | /*----------------------------------------------------------------------------------------------------*/ |
3288 | | static uint32_t |
3289 | | s7comm_decode_szl_id_0131_idx_0001(tvbuff_t *tvb, |
3290 | | proto_tree *tree, |
3291 | | uint32_t offset) |
3292 | 0 | { |
3293 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0001_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
3294 | 0 | offset += 2; |
3295 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0001_pdu, tvb, offset, 2, ENC_BIG_ENDIAN); |
3296 | 0 | offset += 2; |
3297 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0001_anz, tvb, offset, 2, ENC_BIG_ENDIAN); |
3298 | 0 | offset += 2; |
3299 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0001_mpi_bps, tvb, offset, 4, ENC_BIG_ENDIAN); |
3300 | 0 | offset += 4; |
3301 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0001_kbus_bps, tvb, offset, 4, ENC_BIG_ENDIAN); |
3302 | 0 | offset += 4; |
3303 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0001_res, tvb, offset, 26, ENC_NA); |
3304 | 0 | offset += 26; |
3305 | |
|
3306 | 0 | return offset; |
3307 | 0 | } |
3308 | | |
3309 | | /******************************************************************************************************* |
3310 | | * |
3311 | | * SZL-ID: 0x0131 |
3312 | | * Index: 0x0002 |
3313 | | * Content: |
3314 | | * The partial list extract with SZL-ID W#16#0131 and the index W#16#0002 |
3315 | | * contains information about the test and installation constants of the module. |
3316 | | * |
3317 | | *******************************************************************************************************/ |
3318 | | static void |
3319 | | s7comm_szl_0131_0002_register(int proto) |
3320 | 15 | { |
3321 | 15 | static hf_register_info hf[] = { |
3322 | 15 | { &hf_s7comm_szl_0131_0002_index, |
3323 | 15 | { "Index", "s7comm.szl.0131.0002.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
3324 | 15 | "W#16#0002: test and installation", HFILL }}, |
3325 | 15 | { &hf_s7comm_szl_0131_0002_funkt_0, |
3326 | 15 | { "funkt_0", "s7comm.szl.0131.0002.funkt_0", FT_UINT8, BASE_HEX, NULL, 0x0, |
3327 | 15 | "Permitted TIS (Test and Installation) functions (bit = 1: function exists)", HFILL }}, |
3328 | 15 | { &hf_s7comm_szl_0131_0002_funkt_0_0, |
3329 | 15 | { "Reserved", "s7comm.szl.0131.0002.funkt_0.bit0_res", FT_BOOLEAN, 8, NULL, 0x01, |
3330 | 15 | "Bit 0: Reserved", HFILL }}, |
3331 | 15 | { &hf_s7comm_szl_0131_0002_funkt_0_1, |
3332 | 15 | { "Block status", "s7comm.szl.0131.0002.funkt_0.block_stat", FT_BOOLEAN, 8, NULL, 0x02, |
3333 | 15 | "Bit 1: Block status", HFILL }}, |
3334 | 15 | { &hf_s7comm_szl_0131_0002_funkt_0_2, |
3335 | 15 | { "Variable status", "s7comm.szl.0131.0002.funkt_0.var_stat", FT_BOOLEAN, 8, NULL, 0x04, |
3336 | 15 | "Bit 2: Variable status", HFILL }}, |
3337 | 15 | { &hf_s7comm_szl_0131_0002_funkt_0_3, |
3338 | 15 | { "Output ISTACK", "s7comm.szl.0131.0002.funkt_0.outp_istack", FT_BOOLEAN, 8, NULL, 0x08, |
3339 | 15 | "Bit 3: Output ISTACK", HFILL }}, |
3340 | 15 | { &hf_s7comm_szl_0131_0002_funkt_0_4, |
3341 | 15 | { "Output BSTACK", "s7comm.szl.0131.0002.funkt_0.outp_bstack", FT_BOOLEAN, 8, NULL, 0x10, |
3342 | 15 | "Bit 4: Output BSTACK", HFILL }}, |
3343 | 15 | { &hf_s7comm_szl_0131_0002_funkt_0_5, |
3344 | 15 | { "Output LSTACK", "s7comm.szl.0131.0002.funkt_0.outp_lstack", FT_BOOLEAN, 8, NULL, 0x20, |
3345 | 15 | "Bit 5: Output LSTACK", HFILL }}, |
3346 | 15 | { &hf_s7comm_szl_0131_0002_funkt_0_6, |
3347 | 15 | { "Time measurement from ... to ...", "s7comm.szl.0131.0002.funkt_0.time_meas", FT_BOOLEAN, 8, NULL, 0x40, |
3348 | 15 | "Bit 6: Time measurement from ... to ...", HFILL }}, |
3349 | 15 | { &hf_s7comm_szl_0131_0002_funkt_0_7, |
3350 | 15 | { "Force selection", "s7comm.szl.0131.0002.funkt_0.force_sel", FT_BOOLEAN, 8, NULL, 0x80, |
3351 | 15 | "Bit 7: Force selection", HFILL }}, |
3352 | 15 | { &hf_s7comm_szl_0131_0002_funkt_1, |
3353 | 15 | { "funkt_1", "s7comm.szl.0131.0002.funkt_1", FT_UINT8, BASE_HEX, NULL, 0x0, |
3354 | 15 | "Permitted TIS (Test and Installation) functions (bit = 1: function exists)", HFILL }}, |
3355 | 15 | { &hf_s7comm_szl_0131_0002_funkt_1_0, |
3356 | 15 | { "Modify variable", "s7comm.szl.0131.0002.funkt_1.mod_var", FT_BOOLEAN, 8, NULL, 0x01, |
3357 | 15 | "Bit 0: Modify variable", HFILL }}, |
3358 | 15 | { &hf_s7comm_szl_0131_0002_funkt_1_1, |
3359 | 15 | { "Force", "s7comm.szl.0131.0002.funkt_1.force", FT_BOOLEAN, 8, NULL, 0x02, |
3360 | 15 | "Bit 1: Force", HFILL }}, |
3361 | 15 | { &hf_s7comm_szl_0131_0002_funkt_1_2, |
3362 | 15 | { "Breakpoint", "s7comm.szl.0131.0002.funkt_1.breakp", FT_BOOLEAN, 8, NULL, 0x04, |
3363 | 15 | "Bit 2: Breakpoint", HFILL }}, |
3364 | 15 | { &hf_s7comm_szl_0131_0002_funkt_1_3, |
3365 | 15 | { "Exit HOLD", "s7comm.szl.0131.0002.funkt_1.exit_hold", FT_BOOLEAN, 8, NULL, 0x08, |
3366 | 15 | "Bit 3: Exit HOLD", HFILL }}, |
3367 | 15 | { &hf_s7comm_szl_0131_0002_funkt_1_4, |
3368 | 15 | { "Memory reset", "s7comm.szl.0131.0002.funkt_1.mem_res", FT_BOOLEAN, 8, NULL, 0x10, |
3369 | 15 | "Bit 4: Memory reset", HFILL }}, |
3370 | 15 | { &hf_s7comm_szl_0131_0002_funkt_1_5, |
3371 | 15 | { "Disable job", "s7comm.szl.0131.0002.funkt_1.dis_job", FT_BOOLEAN, 8, NULL, 0x20, |
3372 | 15 | "Bit 5: Disable job", HFILL }}, |
3373 | 15 | { &hf_s7comm_szl_0131_0002_funkt_1_6, |
3374 | 15 | { "Enable job", "s7comm.szl.0131.0002.funkt_1.en_job", FT_BOOLEAN, 8, NULL, 0x40, |
3375 | 15 | "Bit 6: Enable job", HFILL }}, |
3376 | 15 | { &hf_s7comm_szl_0131_0002_funkt_1_7, |
3377 | 15 | { "Delete job", "s7comm.szl.0131.0002.funkt_1.del_job", FT_BOOLEAN, 8, NULL, 0x80, |
3378 | 15 | "Bit 7: Delete job", HFILL }}, |
3379 | 15 | { &hf_s7comm_szl_0131_0002_funkt_2, |
3380 | 15 | { "funkt_2", "s7comm.szl.0131.0002.funkt_2", FT_UINT8, BASE_HEX, NULL, 0x0, |
3381 | 15 | "Permitted TIS (Test and Installation) functions (bit = 1: function exists)", HFILL }}, |
3382 | 15 | { &hf_s7comm_szl_0131_0002_funkt_2_0, |
3383 | 15 | { "Read job list", "s7comm.szl.0131.0002.funkt_2.rd_job_list", FT_BOOLEAN, 8, NULL, 0x01, |
3384 | 15 | "Bit 0: Read job list", HFILL }}, |
3385 | 15 | { &hf_s7comm_szl_0131_0002_funkt_2_1, |
3386 | 15 | { "Read job", "s7comm.szl.0131.0002.funkt_2.rd_job", FT_BOOLEAN, 8, NULL, 0x02, |
3387 | 15 | "Bit 1: Read job", HFILL }}, |
3388 | 15 | { &hf_s7comm_szl_0131_0002_funkt_2_2, |
3389 | 15 | { "Replace job", "s7comm.szl.0131.0002.funkt_2.repl_job", FT_BOOLEAN, 8, NULL, 0x04, |
3390 | 15 | "Bit 2: Replace job", HFILL }}, |
3391 | 15 | { &hf_s7comm_szl_0131_0002_funkt_2_3, |
3392 | 15 | { "Block status v2", "s7comm.szl.0131.0002.funkt_2.block_stat_v2", FT_BOOLEAN, 8, NULL, 0x08, |
3393 | 15 | "Bit 3: Block status v2", HFILL }}, |
3394 | 15 | { &hf_s7comm_szl_0131_0002_funkt_2_4, |
3395 | 15 | { "Reserved", "s7comm.szl.0131.0002.funkt_2.bit4_res", FT_BOOLEAN, 8, NULL, 0x10, |
3396 | 15 | "Bit 4: Reserved", HFILL }}, |
3397 | 15 | { &hf_s7comm_szl_0131_0002_funkt_2_5, |
3398 | 15 | { "Reserved", "s7comm.szl.0131.0002.funkt_2.bit5_res", FT_BOOLEAN, 8, NULL, 0x20, |
3399 | 15 | "Bit 5: Reserved", HFILL }}, |
3400 | 15 | { &hf_s7comm_szl_0131_0002_funkt_2_6, |
3401 | 15 | { "Flash LED", "s7comm.szl.0131.0002.funkt_2.flash_led", FT_BOOLEAN, 8, NULL, 0x40, |
3402 | 15 | "Bit 6: Flash LED", HFILL }}, |
3403 | 15 | { &hf_s7comm_szl_0131_0002_funkt_2_7, |
3404 | 15 | { "Reserved", "s7comm.szl.0131.0002.funkt_2.bit7_res", FT_BOOLEAN, 8, NULL, 0x80, |
3405 | 15 | "Bit 7: Reserved", HFILL }}, |
3406 | 15 | { &hf_s7comm_szl_0131_0002_funkt_3, |
3407 | 15 | { "funkt_3 (Reserved)", "s7comm.szl.0131.0002.funkt_3", FT_UINT8, BASE_HEX, NULL, 0x0, |
3408 | 15 | "Permitted TIS (Test and Installation) functions (bit = 1: function exists)", HFILL }}, |
3409 | 15 | { &hf_s7comm_szl_0131_0002_funkt_4, |
3410 | 15 | { "funkt_4 (Reserved)", "s7comm.szl.0131.0002.funkt_4", FT_UINT8, BASE_HEX, NULL, 0x0, |
3411 | 15 | "Permitted TIS (Test and Installation) functions (bit = 1: function exists)", HFILL }}, |
3412 | 15 | { &hf_s7comm_szl_0131_0002_funkt_5, |
3413 | 15 | { "funkt_5 (Reserved)", "s7comm.szl.0131.0002.funkt_5", FT_UINT8, BASE_HEX, NULL, 0x0, |
3414 | 15 | "Permitted TIS (Test and Installation) functions (bit = 1: function exists)", HFILL }}, |
3415 | 15 | { &hf_s7comm_szl_0131_0002_aseg, |
3416 | 15 | { "aseg", "s7comm.szl.0131.0002.aseg", FT_BYTES, BASE_NONE, NULL, 0x0, |
3417 | 15 | "aseg (Non-relevant system data)", HFILL }}, |
3418 | 15 | { &hf_s7comm_szl_0131_0002_eseg, |
3419 | 15 | { "eseg", "s7comm.szl.0131.0002.eseg", FT_BYTES, BASE_NONE, NULL, 0x0, |
3420 | 15 | "eseg (Non-relevant system data)", HFILL }}, |
3421 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_0, |
3422 | 15 | { "trgereig_0 (Permitted trigger events)", "s7comm.szl.0131.0002.trgereig_0", FT_UINT8, BASE_HEX, NULL, 0x0, |
3423 | 15 | NULL, HFILL }}, |
3424 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_0_0, |
3425 | 15 | { "Immediately", "s7comm.szl.0131.0002.trgereig_0.immed", FT_BOOLEAN, 8, NULL, 0x01, |
3426 | 15 | "Bit 0: immediately", HFILL }}, |
3427 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_0_1, |
3428 | 15 | { "System trigger", "s7comm.szl.0131.0002.trgereig_0.sys_trig", FT_BOOLEAN, 8, NULL, 0x02, |
3429 | 15 | "Bit 1: System trigger", HFILL }}, |
3430 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_0_2, |
3431 | 15 | { "System checkpoint main cycle start", "s7comm.szl.0131.0002.trgereig_0.sys_cp_mcs", FT_BOOLEAN, 8, NULL, 0x04, |
3432 | 15 | "Bit 2: System checkpoint main cycle start", HFILL }}, |
3433 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_0_3, |
3434 | 15 | { "System checkpoint main cycle end", "s7comm.szl.0131.0002.trgereig_0.sys_cp_mce", FT_BOOLEAN, 8, NULL, 0x08, |
3435 | 15 | "Bit 3: System checkpoint main cycle end", HFILL }}, |
3436 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_0_4, |
3437 | 15 | { "Mode transition RUN-STOP", "s7comm.szl.0131.0002.trgereig_0.mtrans_rs", FT_BOOLEAN, 8, NULL, 0x10, |
3438 | 15 | "Bit 4: Mode transition RUN-STOP", HFILL }}, |
3439 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_0_5, |
3440 | 15 | { "After code address", "s7comm.szl.0131.0002.trgereig_0.acode_adr", FT_BOOLEAN, 8, NULL, 0x20, |
3441 | 15 | "Bit 5: After code address", HFILL }}, |
3442 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_0_6, |
3443 | 15 | { "Code address area", "s7comm.szl.0131.0002.trgereig_0.code_adr_a", FT_BOOLEAN, 8, NULL, 0x40, |
3444 | 15 | "Bit 6: Code address area", HFILL }}, |
3445 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_0_7, |
3446 | 15 | { "Data address", "s7comm.szl.0131.0002.trgereig_0.data_adr", FT_BOOLEAN, 8, NULL, 0x80, |
3447 | 15 | "Bit 7: Data Address", HFILL }}, |
3448 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_1, |
3449 | 15 | { "trgereig_1 (Permitted trigger events)", "s7comm.szl.0131.0002.trgereig_1", FT_UINT8, BASE_HEX, NULL, 0x0, |
3450 | 15 | NULL, HFILL }}, |
3451 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_1_0, |
3452 | 15 | { "Data address area", "s7comm.szl.0131.0002.trgereig_1.data_adr_a", FT_BOOLEAN, 8, NULL, 0x01, |
3453 | 15 | "Bit 0: Data address area", HFILL }}, |
3454 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_1_1, |
3455 | 15 | { "Local data address", "s7comm.szl.0131.0002.trgereig_1.loc_adr", FT_BOOLEAN, 8, NULL, 0x02, |
3456 | 15 | "Bit 1: Local data address", HFILL }}, |
3457 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_1_2, |
3458 | 15 | { "Local data address area", "s7comm.szl.0131.0002.trgereig_1.loc_adr_a", FT_BOOLEAN, 8, NULL, 0x04, |
3459 | 15 | "Bit 2: Local data address area", HFILL }}, |
3460 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_1_3, |
3461 | 15 | { "Range trigger", "s7comm.szl.0131.0002.trgereig_1.range_trig", FT_BOOLEAN, 8, NULL, 0x08, |
3462 | 15 | "Bit 3: Range trigger", HFILL }}, |
3463 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_1_4, |
3464 | 15 | { "Before code address", "s7comm.szl.0131.0002.trgereig_1.bcode_adr", FT_BOOLEAN, 8, NULL, 0x10, |
3465 | 15 | "Bit 4: Before code address", HFILL }}, |
3466 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_1_5, |
3467 | 15 | { "Reserved", "s7comm.szl.0131.0002.trgereig_1.bit5_res", FT_BOOLEAN, 8, NULL, 0x20, |
3468 | 15 | "Bit 5: Reserved", HFILL }}, |
3469 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_1_6, |
3470 | 15 | { "Reserved", "s7comm.szl.0131.0002.trgereig_1.bit6_res", FT_BOOLEAN, 8, NULL, 0x40, |
3471 | 15 | "Bit 6: Reserved", HFILL }}, |
3472 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_1_7, |
3473 | 15 | { "Reserved", "s7comm.szl.0131.0002.trgereig_1.bit7_res", FT_BOOLEAN, 8, NULL, 0x80, |
3474 | 15 | "Bit 7: Reserved", HFILL }}, |
3475 | 15 | { &hf_s7comm_szl_0131_0002_trgereig_2, |
3476 | 15 | { "trgereig_2 (Permitted trigger events, reserved)", "s7comm.szl.0131.0002.trgereig_2", FT_UINT8, BASE_HEX, NULL, 0x0, |
3477 | 15 | NULL, HFILL }}, |
3478 | 15 | { &hf_s7comm_szl_0131_0002_trgbed, |
3479 | 15 | { "trgbed (System data with no relevance)", "s7comm.szl.0131.0002.trgbed", FT_UINT8, BASE_HEX, NULL, 0x0, |
3480 | 15 | NULL, HFILL }}, |
3481 | 15 | { &hf_s7comm_szl_0131_0002_pfad, |
3482 | 15 | { "pfad (System data with no relevance)", "s7comm.szl.0131.0002.pfad", FT_UINT8, BASE_DEC, NULL, 0x0, |
3483 | 15 | NULL, HFILL }}, |
3484 | 15 | { &hf_s7comm_szl_0131_0002_tiefe, |
3485 | 15 | { "tiefe (System data with no relevance)", "s7comm.szl.0131.0002.tiefe", FT_UINT8, BASE_DEC, NULL, 0x0, |
3486 | 15 | NULL, HFILL }}, |
3487 | 15 | { &hf_s7comm_szl_0131_0002_systrig, |
3488 | 15 | { "systrig (System data with no relevance)", "s7comm.szl.0131.0002.systrig", FT_UINT8, BASE_HEX, NULL, 0x0, |
3489 | 15 | NULL, HFILL }}, |
3490 | 15 | { &hf_s7comm_szl_0131_0002_erg_par, |
3491 | 15 | { "erg par (System data with no relevance)", "s7comm.szl.0131.0002.erg_par", FT_UINT8, BASE_HEX, NULL, 0x0, |
3492 | 15 | NULL, HFILL }}, |
3493 | 15 | { &hf_s7comm_szl_0131_0002_erg_pat_1, |
3494 | 15 | { "erg pat 1 (System data with no relevance)", "s7comm.szl.0131.0002.erg_pat_1", FT_UINT16, BASE_HEX, NULL, 0x0, |
3495 | 15 | NULL, HFILL }}, |
3496 | 15 | { &hf_s7comm_szl_0131_0002_erg_pat_2, |
3497 | 15 | { "erg pat 2 (System data with no relevance)", "s7comm.szl.0131.0002.erg_pat_2", FT_UINT16, BASE_HEX, NULL, 0x0, |
3498 | 15 | NULL, HFILL }}, |
3499 | 15 | { &hf_s7comm_szl_0131_0002_force, |
3500 | 15 | { "force (Number of modifiable Variables)", "s7comm.szl.0131.0002.force", FT_UINT16, BASE_DEC, NULL, 0x0, |
3501 | 15 | NULL, HFILL }}, |
3502 | 15 | { &hf_s7comm_szl_0131_0002_time, |
3503 | 15 | { "time", "s7comm.szl.0131.0002.time", FT_UINT16, BASE_HEX, NULL, 0x0, |
3504 | 15 | "time (Upper time limit run-time meas, Format: bits 0 to 11 contain the time value (0 to 4K-1); bits 12 to 15 contain the time base: 0H= 10^-10s, 1H = 10^-9s,...,AH = 100s, ... FH = 105s)", HFILL }}, |
3505 | 15 | { &hf_s7comm_szl_0131_0002_res, |
3506 | 15 | { "res (Reserved)", "s7comm.szl.0131.0002.res", FT_UINT32, BASE_HEX, NULL, 0x0, |
3507 | 15 | NULL, HFILL }} |
3508 | 15 | }; |
3509 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
3510 | 15 | } |
3511 | | |
3512 | | /*----------------------------------------------------------------------------------------------------*/ |
3513 | | static uint32_t |
3514 | | s7comm_decode_szl_id_0131_idx_0002(tvbuff_t *tvb, |
3515 | | proto_tree *tree, |
3516 | | uint32_t offset) |
3517 | 0 | { |
3518 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0002_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
3519 | 0 | offset += 2; |
3520 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0002_funkt_0, |
3521 | 0 | ett_s7comm_szl_0131_0002_funkt_0, s7comm_szl_0131_0002_funkt_0_fields, ENC_BIG_ENDIAN); |
3522 | 0 | offset += 1; |
3523 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0002_funkt_1, |
3524 | 0 | ett_s7comm_szl_0131_0002_funkt_1, s7comm_szl_0131_0002_funkt_1_fields, ENC_BIG_ENDIAN); |
3525 | 0 | offset += 1; |
3526 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0002_funkt_2, |
3527 | 0 | ett_s7comm_szl_0131_0002_funkt_2, s7comm_szl_0131_0002_funkt_2_fields, ENC_BIG_ENDIAN); |
3528 | 0 | offset += 1; |
3529 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0002_funkt_3, tvb, offset, 1, ENC_BIG_ENDIAN); |
3530 | 0 | offset += 1; |
3531 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0002_funkt_4, tvb, offset, 1, ENC_BIG_ENDIAN); |
3532 | 0 | offset += 1; |
3533 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0002_funkt_5, tvb, offset, 1, ENC_BIG_ENDIAN); |
3534 | 0 | offset += 1; |
3535 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0002_aseg, tvb, offset, 6, ENC_NA); |
3536 | 0 | offset += 6; |
3537 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0002_eseg, tvb, offset, 6, ENC_NA); |
3538 | 0 | offset += 6; |
3539 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0002_trgereig_0, |
3540 | 0 | ett_s7comm_szl_0131_0002_trgereig_0, s7comm_szl_0131_0002_trgereig_0_fields, ENC_BIG_ENDIAN); |
3541 | 0 | offset += 1; |
3542 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0002_trgereig_1, |
3543 | 0 | ett_s7comm_szl_0131_0002_trgereig_1, s7comm_szl_0131_0002_trgereig_1_fields, ENC_BIG_ENDIAN); |
3544 | 0 | offset += 1; |
3545 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0002_trgereig_2, tvb, offset, 1, ENC_BIG_ENDIAN); |
3546 | 0 | offset += 1; |
3547 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0002_trgbed, tvb, offset, 1, ENC_BIG_ENDIAN); |
3548 | 0 | offset += 1; |
3549 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0002_pfad, tvb, offset, 1, ENC_BIG_ENDIAN); |
3550 | 0 | offset += 1; |
3551 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0002_tiefe, tvb, offset, 1, ENC_BIG_ENDIAN); |
3552 | 0 | offset += 1; |
3553 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0002_systrig, tvb, offset, 1, ENC_BIG_ENDIAN); |
3554 | 0 | offset += 1; |
3555 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0002_erg_par, tvb, offset, 1, ENC_BIG_ENDIAN); |
3556 | 0 | offset += 1; |
3557 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0002_erg_pat_1, tvb, offset, 2, ENC_BIG_ENDIAN); |
3558 | 0 | offset += 2; |
3559 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0002_erg_pat_2, tvb, offset, 2, ENC_BIG_ENDIAN); |
3560 | 0 | offset += 2; |
3561 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0002_force, tvb, offset, 2, ENC_BIG_ENDIAN); |
3562 | 0 | offset += 2; |
3563 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0002_time, tvb, offset, 2, ENC_BIG_ENDIAN); |
3564 | 0 | offset += 2; |
3565 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0002_res, tvb, offset, 4, ENC_BIG_ENDIAN); |
3566 | 0 | offset += 4; |
3567 | |
|
3568 | 0 | return offset; |
3569 | 0 | } |
3570 | | |
3571 | | /******************************************************************************************************* |
3572 | | * |
3573 | | * SZL-ID: 0x0131 |
3574 | | * Index: 0x0003 |
3575 | | * Content: |
3576 | | * The partial list extract with SZL-ID W#16#0131 and the index W#16#0003 |
3577 | | * contains information about the communication parameters of the module for |
3578 | | * connection to a unit for operator interface functions. |
3579 | | * |
3580 | | *******************************************************************************************************/ |
3581 | | static void |
3582 | | s7comm_szl_0131_0003_register(int proto) |
3583 | 15 | { |
3584 | 15 | static hf_register_info hf[] = { |
3585 | 15 | { &hf_s7comm_szl_0131_0003_index, |
3586 | 15 | { "Index", "s7comm.szl.0131.0003.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
3587 | 15 | "W#16#0003: Index for operator interface functions", HFILL }}, |
3588 | 15 | { &hf_s7comm_szl_0131_0003_funkt_0, |
3589 | 15 | { "funkt_0", "s7comm.szl.0131.0003.funkt_0", FT_UINT8, BASE_HEX, NULL, 0x0, |
3590 | 15 | "Bits indicating the available functions (bit = 1: function exists)", HFILL }}, |
3591 | 15 | { &hf_s7comm_szl_0131_0003_funkt_0_0, |
3592 | 15 | { "Read once", "s7comm.szl.0131.0003.funkt_0.read_once", FT_BOOLEAN, 8, NULL, 0x01, |
3593 | 15 | "Bit 0: Read once", HFILL }}, |
3594 | 15 | { &hf_s7comm_szl_0131_0003_funkt_0_1, |
3595 | 15 | { "Write once", "s7comm.szl.0131.0003.funkt_0.write_once", FT_BOOLEAN, 8, NULL, 0x02, |
3596 | 15 | "Bit 1: Write once", HFILL }}, |
3597 | 15 | { &hf_s7comm_szl_0131_0003_funkt_0_2, |
3598 | 15 | { "Initialize cyclic reading (start implicitly)", "s7comm.szl.0131.0003.funkt_0.init_cycl_read_impl", FT_BOOLEAN, 8, NULL, 0x04, |
3599 | 15 | "Bit 2: Initialize cyclic reading (start implicitly)", HFILL }}, |
3600 | 15 | { &hf_s7comm_szl_0131_0003_funkt_0_3, |
3601 | 15 | { "Initialize cyclic reading (start explicitly)", "s7comm.szl.0131.0003.funkt_0.init_cycl_read_expl", FT_BOOLEAN, 8, NULL, 0x08, |
3602 | 15 | "Bit 3: Initialize cyclic reading (start explicitly)", HFILL }}, |
3603 | 15 | { &hf_s7comm_szl_0131_0003_funkt_0_4, |
3604 | 15 | { "Start cyclic reading", "s7comm.szl.0131.0003.funkt_0.start_cycl_read", FT_BOOLEAN, 8, NULL, 0x10, |
3605 | 15 | "Bit 4: Start cyclic reading", HFILL }}, |
3606 | 15 | { &hf_s7comm_szl_0131_0003_funkt_0_5, |
3607 | 15 | { "Stop cyclic reading", "s7comm.szl.0131.0003.funkt_0.stop_cycl_read", FT_BOOLEAN, 8, NULL, 0x20, |
3608 | 15 | "Bit 5: Stop cyclic reading", HFILL }}, |
3609 | 15 | { &hf_s7comm_szl_0131_0003_funkt_0_6, |
3610 | 15 | { "Clear cyclic reading", "s7comm.szl.0131.0002.funkt_0.clr_cycl_read", FT_BOOLEAN, 8, NULL, 0x40, |
3611 | 15 | "Bit 6: Clear cyclic reading", HFILL }}, |
3612 | 15 | { &hf_s7comm_szl_0131_0003_funkt_0_7, |
3613 | 15 | { "Reserved", "s7comm.szl.0131.0002.funkt_0.bit7_res", FT_BOOLEAN, 8, NULL, 0x80, |
3614 | 15 | "Bit 7: Reserved", HFILL }}, |
3615 | 15 | { &hf_s7comm_szl_0131_0003_funkt_1, |
3616 | 15 | { "funkt_1", "s7comm.szl.0131.0003.funkt_1", FT_UINT8, BASE_HEX, NULL, 0x0, |
3617 | 15 | "Bits indicating the available functions (bit = 1: function exists)", HFILL }}, |
3618 | 15 | { &hf_s7comm_szl_0131_0003_funkt_1_0, |
3619 | 15 | { "Reserved", "s7comm.szl.0131.0003.funkt_1.bit0_res", FT_BOOLEAN, 8, NULL, 0x01, |
3620 | 15 | "Bit 0: Reserved", HFILL }}, |
3621 | 15 | { &hf_s7comm_szl_0131_0003_funkt_1_1, |
3622 | 15 | { "Reserved", "s7comm.szl.0131.0003.funkt_1.bit1_res", FT_BOOLEAN, 8, NULL, 0x02, |
3623 | 15 | "Bit 1: Reserved", HFILL }}, |
3624 | 15 | { &hf_s7comm_szl_0131_0003_funkt_1_2, |
3625 | 15 | { "Reserved", "s7comm.szl.0131.0003.funkt_1.bit2_res", FT_BOOLEAN, 8, NULL, 0x04, |
3626 | 15 | "Bit 2: Reserved", HFILL }}, |
3627 | 15 | { &hf_s7comm_szl_0131_0003_funkt_1_3, |
3628 | 15 | { "Reserved", "s7comm.szl.0131.0003.funkt_1.bit3_res", FT_BOOLEAN, 8, NULL, 0x08, |
3629 | 15 | "Bit 3: Reserved", HFILL }}, |
3630 | 15 | { &hf_s7comm_szl_0131_0003_funkt_1_4, |
3631 | 15 | { "Peripheral I/Os", "s7comm.szl.0131.0003.funkt_1.periph_io", FT_BOOLEAN, 8, NULL, 0x10, |
3632 | 15 | "Bit 4: Peripheral I/Os", HFILL }}, |
3633 | 15 | { &hf_s7comm_szl_0131_0003_funkt_1_5, |
3634 | 15 | { "Inputs", "s7comm.szl.0131.0003.funkt_1.inputs", FT_BOOLEAN, 8, NULL, 0x20, |
3635 | 15 | "Bit 5: Inputs", HFILL }}, |
3636 | 15 | { &hf_s7comm_szl_0131_0003_funkt_1_6, |
3637 | 15 | { "Outputs", "s7comm.szl.0131.0002.funkt_1.outputs", FT_BOOLEAN, 8, NULL, 0x40, |
3638 | 15 | "Bit 6: Outputs", HFILL }}, |
3639 | 15 | { &hf_s7comm_szl_0131_0003_funkt_1_7, |
3640 | 15 | { "Bit memory", "s7comm.szl.0131.0002.funkt_1.bit_mem", FT_BOOLEAN, 8, NULL, 0x80, |
3641 | 15 | "Bit 7: Bit memory", HFILL }}, |
3642 | 15 | { &hf_s7comm_szl_0131_0003_funkt_2, |
3643 | 15 | { "funkt_2", "s7comm.szl.0131.0003.funkt_2", FT_UINT8, BASE_HEX, NULL, 0x0, |
3644 | 15 | "Bits indicating the available functions (bit = 1: function exists)", HFILL }}, |
3645 | 15 | { &hf_s7comm_szl_0131_0003_funkt_2_0, |
3646 | 15 | { "User DB", "s7comm.szl.0131.0003.funkt_2.user_db", FT_BOOLEAN, 8, NULL, 0x01, |
3647 | 15 | "Bit 0: User DB", HFILL }}, |
3648 | 15 | { &hf_s7comm_szl_0131_0003_funkt_2_1, |
3649 | 15 | { "Data record", "s7comm.szl.0131.0003.funkt_2.data_rec", FT_BOOLEAN, 8, NULL, 0x02, |
3650 | 15 | "Bit 1: Data record", HFILL }}, |
3651 | 15 | { &hf_s7comm_szl_0131_0003_funkt_2_2, |
3652 | 15 | { "Reserved", "s7comm.szl.0131.0003.funkt_2.bit2_res", FT_BOOLEAN, 8, NULL, 0x04, |
3653 | 15 | "Bit 2: Reserved", HFILL }}, |
3654 | 15 | { &hf_s7comm_szl_0131_0003_funkt_2_3, |
3655 | 15 | { "Reserved", "s7comm.szl.0131.0003.funkt_2.bit3_res", FT_BOOLEAN, 8, NULL, 0x08, |
3656 | 15 | "Bit 3: Reserved", HFILL }}, |
3657 | 15 | { &hf_s7comm_szl_0131_0003_funkt_2_4, |
3658 | 15 | { "Reserved", "s7comm.szl.0131.0003.funkt_2.bit4_res", FT_BOOLEAN, 8, NULL, 0x10, |
3659 | 15 | "Bit 4: Reserved", HFILL }}, |
3660 | 15 | { &hf_s7comm_szl_0131_0003_funkt_2_5, |
3661 | 15 | { "Reserved", "s7comm.szl.0131.0003.funkt_2.bit5_res", FT_BOOLEAN, 8, NULL, 0x20, |
3662 | 15 | "Bit 5: Reserved", HFILL }}, |
3663 | 15 | { &hf_s7comm_szl_0131_0003_funkt_2_6, |
3664 | 15 | { "Reserved", "s7comm.szl.0131.0002.funkt_2.bit6_res", FT_BOOLEAN, 8, NULL, 0x40, |
3665 | 15 | "Bit 6: Reserved", HFILL }}, |
3666 | 15 | { &hf_s7comm_szl_0131_0003_funkt_2_7, |
3667 | 15 | { "S7 counter", "s7comm.szl.0131.0002.funkt_2.s7_counter", FT_BOOLEAN, 8, NULL, 0x80, |
3668 | 15 | "Bit 7: S7 counter", HFILL }}, |
3669 | 15 | { &hf_s7comm_szl_0131_0003_funkt_3, |
3670 | 15 | { "funkt_3", "s7comm.szl.0131.0003.funkt_3", FT_UINT8, BASE_HEX, NULL, 0x0, |
3671 | 15 | "Bits indicating the available functions (bit = 1: function exists)", HFILL }}, |
3672 | 15 | { &hf_s7comm_szl_0131_0003_funkt_3_0, |
3673 | 15 | { "S7 timer", "s7comm.szl.0131.0003.funkt_3.s7_timer", FT_BOOLEAN, 8, NULL, 0x01, |
3674 | 15 | "Bit 0: S7 timer", HFILL }}, |
3675 | 15 | { &hf_s7comm_szl_0131_0003_funkt_3_1, |
3676 | 15 | { "IEC counter", "s7comm.szl.0131.0003.funkt_3.iec_counter", FT_BOOLEAN, 8, NULL, 0x02, |
3677 | 15 | "Bit 1: IEC counter", HFILL }}, |
3678 | 15 | { &hf_s7comm_szl_0131_0003_funkt_3_2, |
3679 | 15 | { "IEC timer", "s7comm.szl.0131.0003.funkt_3.iec_timer", FT_BOOLEAN, 8, NULL, 0x04, |
3680 | 15 | "Bit 2: IEC timer", HFILL }}, |
3681 | 15 | { &hf_s7comm_szl_0131_0003_funkt_3_3, |
3682 | 15 | { "High speed counter", "s7comm.szl.0131.0003.funkt_3.hs_counter", FT_BOOLEAN, 8, NULL, 0x08, |
3683 | 15 | "Bit 3: High speed counter", HFILL }}, |
3684 | 15 | { &hf_s7comm_szl_0131_0003_funkt_3_4, |
3685 | 15 | { "Reserved", "s7comm.szl.0131.0003.funkt_3.bit4_res", FT_BOOLEAN, 8, NULL, 0x10, |
3686 | 15 | "Bit 4: Reserved", HFILL }}, |
3687 | 15 | { &hf_s7comm_szl_0131_0003_funkt_3_5, |
3688 | 15 | { "Reserved", "s7comm.szl.0131.0003.funkt_3.bit5_res", FT_BOOLEAN, 8, NULL, 0x20, |
3689 | 15 | "Bit 5: Reserved", HFILL }}, |
3690 | 15 | { &hf_s7comm_szl_0131_0003_funkt_3_6, |
3691 | 15 | { "Reserved", "s7comm.szl.0131.0002.funkt_3.bit6_res", FT_BOOLEAN, 8, NULL, 0x40, |
3692 | 15 | "Bit 6: Reserved", HFILL }}, |
3693 | 15 | { &hf_s7comm_szl_0131_0003_funkt_3_7, |
3694 | 15 | { "Reserved", "s7comm.szl.0131.0002.funkt_3.bit7_res", FT_BOOLEAN, 8, NULL, 0x80, |
3695 | 15 | "Bit 7: Reserved", HFILL }}, |
3696 | 15 | { &hf_s7comm_szl_0131_0003_data, |
3697 | 15 | { "data (Maximum size of consistently readable data)", "s7comm.szl.0131.0003.data", FT_UINT16, BASE_DEC, NULL, 0x0, |
3698 | 15 | NULL, HFILL }}, |
3699 | 15 | { &hf_s7comm_szl_0131_0003_anz, |
3700 | 15 | { "anz (Maximum number of cyclic read jobs)", "s7comm.szl.0131.0003.anz", FT_UINT16, BASE_DEC, NULL, 0x0, |
3701 | 15 | NULL, HFILL }}, |
3702 | 15 | { &hf_s7comm_szl_0131_0003_per_min, |
3703 | 15 | { "per min (Minimum period for cyclic read jobs (n x 100 ms))", "s7comm.szl.0131.0003.per_min", FT_UINT16, BASE_DEC, NULL, 0x0, |
3704 | 15 | NULL, HFILL }}, |
3705 | 15 | { &hf_s7comm_szl_0131_0003_per_max, |
3706 | 15 | { "per max (Maximum period for cyclic read jobs (n x 100 ms))", "s7comm.szl.0131.0003.per_max", FT_UINT16, BASE_DEC, NULL, 0x0, |
3707 | 15 | NULL, HFILL }}, |
3708 | 15 | { &hf_s7comm_szl_0131_0003_res, |
3709 | 15 | { "res (Reserved)", "s7comm.szl.0131.0003.res", FT_BYTES, BASE_NONE, NULL, 0x0, |
3710 | 15 | NULL, HFILL }} |
3711 | 15 | }; |
3712 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
3713 | 15 | } |
3714 | | |
3715 | | /*----------------------------------------------------------------------------------------------------*/ |
3716 | | static uint32_t |
3717 | | s7comm_decode_szl_id_0131_idx_0003(tvbuff_t *tvb, |
3718 | | proto_tree *tree, |
3719 | | uint32_t offset) |
3720 | 0 | { |
3721 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0003_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
3722 | 0 | offset += 2; |
3723 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0003_funkt_0, |
3724 | 0 | ett_s7comm_szl_0131_0003_funkt_0, s7comm_szl_0131_0003_funkt_0_fields, ENC_BIG_ENDIAN); |
3725 | 0 | offset += 1; |
3726 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0003_funkt_1, |
3727 | 0 | ett_s7comm_szl_0131_0003_funkt_1, s7comm_szl_0131_0003_funkt_1_fields, ENC_BIG_ENDIAN); |
3728 | 0 | offset += 1; |
3729 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0003_funkt_2, |
3730 | 0 | ett_s7comm_szl_0131_0003_funkt_2, s7comm_szl_0131_0003_funkt_2_fields, ENC_BIG_ENDIAN); |
3731 | 0 | offset += 1; |
3732 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0003_funkt_3, |
3733 | 0 | ett_s7comm_szl_0131_0003_funkt_3, s7comm_szl_0131_0003_funkt_3_fields, ENC_BIG_ENDIAN); |
3734 | 0 | offset += 1; |
3735 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0003_data, tvb, offset, 2, ENC_BIG_ENDIAN); |
3736 | 0 | offset += 2; |
3737 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0003_anz, tvb, offset, 2, ENC_BIG_ENDIAN); |
3738 | 0 | offset += 2; |
3739 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0003_per_min, tvb, offset, 2, ENC_BIG_ENDIAN); |
3740 | 0 | offset += 2; |
3741 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0003_per_max, tvb, offset, 2, ENC_BIG_ENDIAN); |
3742 | 0 | offset += 2; |
3743 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0003_res, tvb, offset, 26, ENC_NA); |
3744 | 0 | offset += 26; |
3745 | |
|
3746 | 0 | return offset; |
3747 | 0 | } |
3748 | | |
3749 | | /******************************************************************************************************* |
3750 | | * |
3751 | | * SZL-ID: 0x0131 |
3752 | | * Index: 0x0004 |
3753 | | * Content: |
3754 | | * The partial list extract with SZL-ID W#16#0131 and the index W#16#0004 |
3755 | | * contains information about the object management system (OMS) of the |
3756 | | * module. |
3757 | | * |
3758 | | *******************************************************************************************************/ |
3759 | | static void |
3760 | | s7comm_szl_0131_0004_register(int proto) |
3761 | 15 | { |
3762 | 15 | static hf_register_info hf[] = { |
3763 | 15 | { &hf_s7comm_szl_0131_0004_index, |
3764 | 15 | { "Index", "s7comm.szl.0131.0004.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
3765 | 15 | "W#16#0004 Index for OMS", HFILL }}, |
3766 | 15 | { &hf_s7comm_szl_0131_0004_funkt_0, |
3767 | 15 | { "funkt_0", "s7comm.szl.0131.0004.funkt_0", FT_UINT8, BASE_HEX, NULL, 0x0, |
3768 | 15 | "Available object management system functions: (Bit = 1: functions available on the CPU)", HFILL }}, |
3769 | 15 | { &hf_s7comm_szl_0131_0004_funkt_0_0, |
3770 | 15 | { "Reserved", "s7comm.szl.0131.0004.funkt_0.bit0_res", FT_BOOLEAN, 8, NULL, 0x01, |
3771 | 15 | "Bit 0: Reserved", HFILL }}, |
3772 | 15 | { &hf_s7comm_szl_0131_0004_funkt_0_1, |
3773 | 15 | { "Directory (hierarchy 1)", "s7comm.szl.0131.0004.funkt_0.dir_h1", FT_BOOLEAN, 8, NULL, 0x02, |
3774 | 15 | "Bit 1: Directory (hierarchy 1)", HFILL }}, |
3775 | 15 | { &hf_s7comm_szl_0131_0004_funkt_0_2, |
3776 | 15 | { "Directory (hierarchy 2)", "s7comm.szl.0131.0004.funkt_0.dir_h2", FT_BOOLEAN, 8, NULL, 0x04, |
3777 | 15 | "Bit 2: Directory (hierarchy 2)", HFILL }}, |
3778 | 15 | { &hf_s7comm_szl_0131_0004_funkt_0_3, |
3779 | 15 | { "Directory (hierarchy 3)", "s7comm.szl.0131.0004.funkt_0.dir_h3", FT_BOOLEAN, 8, NULL, 0x08, |
3780 | 15 | "Bit 3: Directory (hierarchy 3)", HFILL }}, |
3781 | 15 | { &hf_s7comm_szl_0131_0004_funkt_0_4, |
3782 | 15 | { "Copy", "s7comm.szl.0131.0004.funkt_0.copy", FT_BOOLEAN, 8, NULL, 0x10, |
3783 | 15 | "Bit 4: Copy", HFILL }}, |
3784 | 15 | { &hf_s7comm_szl_0131_0004_funkt_0_5, |
3785 | 15 | { "Chain (list)", "s7comm.szl.0131.0004.funkt_0.chain_list", FT_BOOLEAN, 8, NULL, 0x20, |
3786 | 15 | "Bit 5: Chain (list)", HFILL }}, |
3787 | 15 | { &hf_s7comm_szl_0131_0004_funkt_0_6, |
3788 | 15 | { "Chain (all copied)", "s7comm.szl.0131.0004.funkt_0.chain_copied", FT_BOOLEAN, 8, NULL, 0x40, |
3789 | 15 | "Bit 6: Chain (all copied)", HFILL }}, |
3790 | 15 | { &hf_s7comm_szl_0131_0004_funkt_0_7, |
3791 | 15 | { "Delete (list)", "s7comm.szl.0131.0004.funkt_0.delete_list", FT_BOOLEAN, 8, NULL, 0x80, |
3792 | 15 | "Bit 7: Delete (list)", HFILL }}, |
3793 | 15 | { &hf_s7comm_szl_0131_0004_funkt_1, |
3794 | 15 | { "funkt_1", "s7comm.szl.0131.0004.funkt_1", FT_UINT8, BASE_HEX, NULL, 0x0, |
3795 | 15 | "Available object management system functions: (Bit = 1: functions available on the CPU)", HFILL }}, |
3796 | 15 | { &hf_s7comm_szl_0131_0004_funkt_1_0, |
3797 | 15 | { "Upload on PG", "s7comm.szl.0131.0004.funkt_1.upl_on_pg", FT_BOOLEAN, 8, NULL, 0x01, |
3798 | 15 | "Bit 0: Upload on PG", HFILL }}, |
3799 | 15 | { &hf_s7comm_szl_0131_0004_funkt_1_1, |
3800 | 15 | { "Assign parameters when chaining", "s7comm.szl.0131.0004.funkt_1.asgn_w_chain", FT_BOOLEAN, 8, NULL, 0x02, |
3801 | 15 | "Bit 1: Assign parameters when chaining", HFILL }}, |
3802 | 15 | { &hf_s7comm_szl_0131_0004_funkt_1_2, |
3803 | 15 | { "LOAD function when exchanging data with CFBs", "s7comm.szl.0131.0004.funkt_1.load_w_chg", FT_BOOLEAN, 8, NULL, 0x04, |
3804 | 15 | "Bit 2: LOAD function when exchanging data with CFBs", HFILL }}, |
3805 | 15 | { &hf_s7comm_szl_0131_0004_funkt_1_3, |
3806 | 15 | { "Reserved", "s7comm.szl.0131.0004.funkt_1.bit3_res", FT_BOOLEAN, 8, NULL, 0x08, |
3807 | 15 | "Bit 3: Reserved", HFILL }}, |
3808 | 15 | { &hf_s7comm_szl_0131_0004_funkt_1_4, |
3809 | 15 | { "Reserved", "s7comm.szl.0131.0004.funkt_1.bit4_res", FT_BOOLEAN, 8, NULL, 0x10, |
3810 | 15 | "Bit 4: Reserved", HFILL }}, |
3811 | 15 | { &hf_s7comm_szl_0131_0004_funkt_1_5, |
3812 | 15 | { "Reserved", "s7comm.szl.0131.0004.funkt_1.bit5_res", FT_BOOLEAN, 8, NULL, 0x20, |
3813 | 15 | "Bit 5: Reserved", HFILL }}, |
3814 | 15 | { &hf_s7comm_szl_0131_0004_funkt_1_6, |
3815 | 15 | { "Reserved", "s7comm.szl.0131.0004.funkt_1.bit6_res", FT_BOOLEAN, 8, NULL, 0x40, |
3816 | 15 | "Bit 6: Reserved", HFILL }}, |
3817 | 15 | { &hf_s7comm_szl_0131_0004_funkt_1_7, |
3818 | 15 | { "Delete *.*", "s7comm.szl.0131.0004.funkt_1.delete_all", FT_BOOLEAN, 8, NULL, 0x80, |
3819 | 15 | "Bit 7: Delete *.*", HFILL }}, |
3820 | 15 | { &hf_s7comm_szl_0131_0004_funkt_2, |
3821 | 15 | { "funkt_2", "s7comm.szl.0131.0004.funkt_2", FT_UINT8, BASE_HEX, NULL, 0x0, |
3822 | 15 | "Available object management system functions: (Bit = 1: functions available on the CPU)", HFILL }}, |
3823 | 15 | { &hf_s7comm_szl_0131_0004_funkt_2_0, |
3824 | 15 | { "Load user program (RAM)", "s7comm.szl.0131.0004.funkt_2.load_ram", FT_BOOLEAN, 8, NULL, 0x01, |
3825 | 15 | "Bit 0: Load user program (RAM)", HFILL }}, |
3826 | 15 | { &hf_s7comm_szl_0131_0004_funkt_2_1, |
3827 | 15 | { "Load user program (EPROM)", "s7comm.szl.0131.0004.funkt_2.load_eprom", FT_BOOLEAN, 8, NULL, 0x02, |
3828 | 15 | "Bit 1: Load user program (EPROM)", HFILL }}, |
3829 | 15 | { &hf_s7comm_szl_0131_0004_funkt_2_2, |
3830 | 15 | { "Save user program (RAM)", "s7comm.szl.0131.0004.funkt_2.save_ram", FT_BOOLEAN, 8, NULL, 0x04, |
3831 | 15 | "Bit 2: Save user program (RAM)", HFILL }}, |
3832 | 15 | { &hf_s7comm_szl_0131_0004_funkt_2_3, |
3833 | 15 | { "Save user program (EPROM)", "s7comm.szl.0131.0004.funkt_2.save_eprom", FT_BOOLEAN, 8, NULL, 0x08, |
3834 | 15 | "Bit 3: Save user program (EPROM)", HFILL }}, |
3835 | 15 | { &hf_s7comm_szl_0131_0004_funkt_2_4, |
3836 | 15 | { "Save user program (all)", "s7comm.szl.0131.0004.funkt_2.save_all", FT_BOOLEAN, 8, NULL, 0x10, |
3837 | 15 | "Bit 4: Save user program (all)", HFILL }}, |
3838 | 15 | { &hf_s7comm_szl_0131_0004_funkt_2_5, |
3839 | 15 | { "Compress (external)", "s7comm.szl.0131.0004.funkt_2.compress", FT_BOOLEAN, 8, NULL, 0x20, |
3840 | 15 | "Bit 5: Compress (external)", HFILL }}, |
3841 | 15 | { &hf_s7comm_szl_0131_0004_funkt_2_6, |
3842 | 15 | { "Firmware update (using communication)", "s7comm.szl.0131.0004.funkt_2.fw_update", FT_BOOLEAN, 8, NULL, 0x40, |
3843 | 15 | "Bit 6: Firmware update (using communication)", HFILL }}, |
3844 | 15 | { &hf_s7comm_szl_0131_0004_funkt_2_7, |
3845 | 15 | { "Set RAM memory mode", "s7comm.szl.0131.0004.funkt_2.set_ram_mode", FT_BOOLEAN, 8, NULL, 0x80, |
3846 | 15 | "Bit 7: Set RAM memory mode", HFILL }}, |
3847 | 15 | { &hf_s7comm_szl_0131_0004_funkt_3, |
3848 | 15 | { "funkt_3", "s7comm.szl.0131.0004.funkt_3", FT_UINT8, BASE_HEX, NULL, 0x0, |
3849 | 15 | "Available object management system functions: (Bit = 1: functions available on the CPU)", HFILL }}, |
3850 | 15 | { &hf_s7comm_szl_0131_0004_funkt_3_0, |
3851 | 15 | { "Set EPROM memory mode", "s7comm.szl.0131.0004.funkt_3.set_eprom_mode", FT_BOOLEAN, 8, NULL, 0x01, |
3852 | 15 | "Bit 0: Set EPROM memory mode", HFILL }}, |
3853 | 15 | { &hf_s7comm_szl_0131_0004_funkt_3_1, |
3854 | 15 | { "Reserved", "s7comm.szl.0131.0004.funkt_3.bit1_res", FT_BOOLEAN, 8, NULL, 0x02, |
3855 | 15 | "Bit 1: Reserved", HFILL }}, |
3856 | 15 | { &hf_s7comm_szl_0131_0004_funkt_3_2, |
3857 | 15 | { "Reserved", "s7comm.szl.0131.0004.funkt_3.bit2_res", FT_BOOLEAN, 8, NULL, 0x04, |
3858 | 15 | "Bit 2: Reserved", HFILL }}, |
3859 | 15 | { &hf_s7comm_szl_0131_0004_funkt_3_3, |
3860 | 15 | { "Reserved", "s7comm.szl.0131.0004.funkt_3.bit3_res", FT_BOOLEAN, 8, NULL, 0x08, |
3861 | 15 | "Bit 3: Reserved", HFILL }}, |
3862 | 15 | { &hf_s7comm_szl_0131_0004_funkt_3_4, |
3863 | 15 | { "Reserved", "s7comm.szl.0131.0004.funkt_3.bit4_res", FT_BOOLEAN, 8, NULL, 0x10, |
3864 | 15 | "Bit 4: Reserved", HFILL }}, |
3865 | 15 | { &hf_s7comm_szl_0131_0004_funkt_3_5, |
3866 | 15 | { "Reserved", "s7comm.szl.0131.0004.funkt_3.bit5_res", FT_BOOLEAN, 8, NULL, 0x20, |
3867 | 15 | "Bit 5: Reserved", HFILL }}, |
3868 | 15 | { &hf_s7comm_szl_0131_0004_funkt_3_6, |
3869 | 15 | { "Assign parameters to newly plugged in modules", "s7comm.szl.0131.0004.funkt_3.asgn_par_mod", FT_BOOLEAN, 8, NULL, 0x40, |
3870 | 15 | "Bit 6: Assign parameters to newly plugged in modules", HFILL }}, |
3871 | 15 | { &hf_s7comm_szl_0131_0004_funkt_3_7, |
3872 | 15 | { "Assign parameters when evaluating memory card", "s7comm.szl.0131.0004.funkt_3.asgn_par_mc", FT_BOOLEAN, 8, NULL, 0x80, |
3873 | 15 | "Bit 7: Assign parameters when evaluating memory card", HFILL }}, |
3874 | 15 | { &hf_s7comm_szl_0131_0004_funkt_4, |
3875 | 15 | { "funkt_4", "s7comm.szl.0131.0004.funkt_4", FT_UINT8, BASE_HEX, NULL, 0x0, |
3876 | 15 | "Available object management system functions: (Bit = 1: functions available on the CPU)", HFILL }}, |
3877 | 15 | { &hf_s7comm_szl_0131_0004_funkt_4_0, |
3878 | 15 | { "Assign parameters when loading user program", "s7comm.szl.0131.0004.funkt_4.asgn_par_lprog", FT_BOOLEAN, 8, NULL, 0x01, |
3879 | 15 | "Bit 0: Assign parameters when loading user program", HFILL }}, |
3880 | 15 | { &hf_s7comm_szl_0131_0004_funkt_4_1, |
3881 | 15 | { "Assign parameters in complete restart", "s7comm.szl.0131.0004.funkt_4.asgn_par_cres", FT_BOOLEAN, 8, NULL, 0x02, |
3882 | 15 | "Bit 1: Assign parameters in complete restart", HFILL }}, |
3883 | 15 | { &hf_s7comm_szl_0131_0004_funkt_4_2, |
3884 | 15 | { "Assign parameters in restart", "s7comm.szl.0131.0004.funkt_4.asgn_par_res", FT_BOOLEAN, 8, NULL, 0x04, |
3885 | 15 | "Bit 2: Assign parameters in restart", HFILL }}, |
3886 | 15 | { &hf_s7comm_szl_0131_0004_funkt_4_3, |
3887 | 15 | { "Compress (SFC25 COMPRESS)", "s7comm.szl.0131.0004.funkt_4.compress", FT_BOOLEAN, 8, NULL, 0x08, |
3888 | 15 | "Bit 3: Compress (SFC25 COMPRESS)", HFILL }}, |
3889 | 15 | { &hf_s7comm_szl_0131_0004_funkt_4_4, |
3890 | 15 | { "Evaluate memory card after switch setting", "s7comm.szl.0131.0004.funkt_4.ev_mc", FT_BOOLEAN, 8, NULL, 0x10, |
3891 | 15 | "Bit 4: Evaluate memory card after switch setting", HFILL }}, |
3892 | 15 | { &hf_s7comm_szl_0131_0004_funkt_4_5, |
3893 | 15 | { "Firmware update using memory card", "s7comm.szl.0131.0004.funkt_4.fw_update_mc", FT_BOOLEAN, 8, NULL, 0x20, |
3894 | 15 | "Bit 5: Firmware update using memory card", HFILL }}, |
3895 | 15 | { &hf_s7comm_szl_0131_0004_funkt_4_6, |
3896 | 15 | { "Reserved", "s7comm.szl.0131.0004.funkt_4.bit6_res", FT_BOOLEAN, 8, NULL, 0x40, |
3897 | 15 | "Bit 6: Reserved", HFILL }}, |
3898 | 15 | { &hf_s7comm_szl_0131_0004_funkt_4_7, |
3899 | 15 | { "Reserved", "s7comm.szl.0131.0004.funkt_4.bit7_res", FT_BOOLEAN, 8, NULL, 0x80, |
3900 | 15 | "Bit 7: Reserved", HFILL }}, |
3901 | 15 | { &hf_s7comm_szl_0131_0004_funkt_5, |
3902 | 15 | { "funkt_5 (Reserved)", "s7comm.szl.0131.0004.funkt_5", FT_UINT8, BASE_HEX, NULL, 0x0, |
3903 | 15 | "Available object management system functions: (Bit = 1: functions available on the CPU)", HFILL }}, |
3904 | 15 | { &hf_s7comm_szl_0131_0004_funkt_6, |
3905 | 15 | { "funkt_6 (Reserved)", "s7comm.szl.0131.0004.funkt_6", FT_UINT8, BASE_HEX, NULL, 0x0, |
3906 | 15 | "Available object management system functions: (Bit = 1: functions available on the CPU)", HFILL }}, |
3907 | 15 | { &hf_s7comm_szl_0131_0004_funkt_7, |
3908 | 15 | { "funkt_7 (Reserved)", "s7comm.szl.0131.0004.funkt_7", FT_UINT8, BASE_HEX, NULL, 0x0, |
3909 | 15 | "Available object management system functions: (Bit = 1: functions available on the CPU)", HFILL }}, |
3910 | 15 | { &hf_s7comm_szl_0131_0004_kop, |
3911 | 15 | { "kop (Maximum number of copied blocks)", "s7comm.szl.0131.0004.kop", FT_UINT8, BASE_DEC, NULL, 0x0, |
3912 | 15 | NULL, HFILL }}, |
3913 | 15 | { &hf_s7comm_szl_0131_0004_del, |
3914 | 15 | { "del (Maximum number of uninterruptable, deletable blocks)", "s7comm.szl.0131.0004.del", FT_UINT8, BASE_DEC, NULL, 0x0, |
3915 | 15 | NULL, HFILL }}, |
3916 | 15 | { &hf_s7comm_szl_0131_0004_kett, |
3917 | 15 | { "kett (Maximum number of blocks chained in one job)", "s7comm.szl.0131.0004.kett", FT_UINT8, BASE_DEC, NULL, 0x0, |
3918 | 15 | NULL, HFILL }}, |
3919 | 15 | { &hf_s7comm_szl_0131_0004_hoch, |
3920 | 15 | { "hoch (Maximum number of simultaneous upload procedures)", "s7comm.szl.0131.0004.hoch", FT_UINT8, BASE_DEC, NULL, 0x0, |
3921 | 15 | NULL, HFILL }}, |
3922 | 15 | { &hf_s7comm_szl_0131_0004_ver, |
3923 | 15 | { "ver (Maximum size (in bytes) of shiftable blocks in RUN)", "s7comm.szl.0131.0004.ver", FT_UINT8, BASE_DEC, NULL, 0x0, |
3924 | 15 | "ver (Maximum size (in bytes) of shiftable blocks in RUN) With an S7-300, this size refers to the entire block,with the S7-400, it refers to the part of the block relevant to running the program.", HFILL }}, |
3925 | 15 | { &hf_s7comm_szl_0131_0004_res, |
3926 | 15 | { "res (Reserved)", "s7comm.szl.0131.0004.res", FT_BYTES, BASE_NONE, NULL, 0x0, |
3927 | 15 | NULL, HFILL }} |
3928 | 15 | }; |
3929 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
3930 | 15 | } |
3931 | | |
3932 | | /*----------------------------------------------------------------------------------------------------*/ |
3933 | | static uint32_t |
3934 | | s7comm_decode_szl_id_0131_idx_0004(tvbuff_t *tvb, |
3935 | | proto_tree *tree, |
3936 | | uint32_t offset) |
3937 | 0 | { |
3938 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0004_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
3939 | 0 | offset += 2; |
3940 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0004_funkt_0, |
3941 | 0 | ett_s7comm_szl_0131_0004_funkt_0, s7comm_szl_0131_0004_funkt_0_fields, ENC_BIG_ENDIAN); |
3942 | 0 | offset += 1; |
3943 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0004_funkt_1, |
3944 | 0 | ett_s7comm_szl_0131_0004_funkt_1, s7comm_szl_0131_0004_funkt_1_fields, ENC_BIG_ENDIAN); |
3945 | 0 | offset += 1; |
3946 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0004_funkt_2, |
3947 | 0 | ett_s7comm_szl_0131_0004_funkt_2, s7comm_szl_0131_0004_funkt_2_fields, ENC_BIG_ENDIAN); |
3948 | 0 | offset += 1; |
3949 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0004_funkt_3, |
3950 | 0 | ett_s7comm_szl_0131_0004_funkt_3, s7comm_szl_0131_0004_funkt_3_fields, ENC_BIG_ENDIAN); |
3951 | 0 | offset += 1; |
3952 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0004_funkt_4, |
3953 | 0 | ett_s7comm_szl_0131_0004_funkt_4, s7comm_szl_0131_0004_funkt_4_fields, ENC_BIG_ENDIAN); |
3954 | 0 | offset += 1; |
3955 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0004_funkt_5, tvb, offset, 1, ENC_BIG_ENDIAN); |
3956 | 0 | offset += 1; |
3957 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0004_funkt_6, tvb, offset, 1, ENC_BIG_ENDIAN); |
3958 | 0 | offset += 1; |
3959 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0004_funkt_7, tvb, offset, 1, ENC_BIG_ENDIAN); |
3960 | 0 | offset += 1; |
3961 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0004_kop, tvb, offset, 1, ENC_BIG_ENDIAN); |
3962 | 0 | offset += 1; |
3963 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0004_del, tvb, offset, 1, ENC_BIG_ENDIAN); |
3964 | 0 | offset += 1; |
3965 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0004_kett, tvb, offset, 1, ENC_BIG_ENDIAN); |
3966 | 0 | offset += 1; |
3967 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0004_hoch, tvb, offset, 1, ENC_BIG_ENDIAN); |
3968 | 0 | offset += 1; |
3969 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0004_ver, tvb, offset, 1, ENC_BIG_ENDIAN); |
3970 | 0 | offset += 1; |
3971 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0004_res, tvb, offset, 25, ENC_NA); |
3972 | 0 | offset += 25; |
3973 | |
|
3974 | 0 | return offset; |
3975 | 0 | } |
3976 | | |
3977 | | /******************************************************************************************************* |
3978 | | * |
3979 | | * SZL-ID: 0x0131 |
3980 | | * Index: 0x0005 |
3981 | | * Content: |
3982 | | * The partial list extract with SZL-ID W#16#0131 and the index W#16#0005 |
3983 | | * contains information about the diagnostic capabilities of the module. |
3984 | | * |
3985 | | *******************************************************************************************************/ |
3986 | | static void |
3987 | | s7comm_szl_0131_0005_register(int proto) |
3988 | 15 | { |
3989 | 15 | static hf_register_info hf[] = { |
3990 | 15 | { &hf_s7comm_szl_0131_0005_index, |
3991 | 15 | { "Index", "s7comm.szl.0131.0005.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
3992 | 15 | "W#16#0005 Index for Diagnostics", HFILL }}, |
3993 | 15 | { &hf_s7comm_szl_0131_0005_funkt_0, |
3994 | 15 | { "funkt_0 (Available diagnostic functions)", "s7comm.szl.0131.0005.funkt_0", FT_UINT8, BASE_HEX, NULL, 0x0, |
3995 | 15 | "Available diagnostic functions: (Bit = 1: functions exists)", HFILL }}, |
3996 | 15 | { &hf_s7comm_szl_0131_0005_funkt_0_0, |
3997 | 15 | { "Reserved", "s7comm.szl.0131.0005.funkt_0.bit0_res", FT_BOOLEAN, 8, NULL, 0x01, |
3998 | 15 | "Bit 0: Reserved", HFILL }}, |
3999 | 15 | { &hf_s7comm_szl_0131_0005_funkt_0_1, |
4000 | 15 | { "Diagnostic buffer exists", "s7comm.szl.0131.0005.funkt_0.diag_buf", FT_BOOLEAN, 8, NULL, 0x02, |
4001 | 15 | "Bit 1: Diagnostic buffer exists", HFILL }}, |
4002 | 15 | { &hf_s7comm_szl_0131_0005_funkt_0_2, |
4003 | 15 | { "Sending system diagnostic data possible", "s7comm.szl.0131.0005.funkt_0.sysdiag", FT_BOOLEAN, 8, NULL, 0x04, |
4004 | 15 | "Bit 2: Sending system diagnostic data possible", HFILL }}, |
4005 | 15 | { &hf_s7comm_szl_0131_0005_funkt_0_3, |
4006 | 15 | { "Sending user-defined diagnostic messages possible", "s7comm.szl.0131.0005.funkt_0.userdiag", FT_BOOLEAN, 8, NULL, 0x08, |
4007 | 15 | "Bit 3: Sending user-defined diagnostic messages possible", HFILL }}, |
4008 | 15 | { &hf_s7comm_szl_0131_0005_funkt_0_4, |
4009 | 15 | { "Sending VMD status possible", "s7comm.szl.0131.0005.funkt_0.vmdstat", FT_BOOLEAN, 8, NULL, 0x10, |
4010 | 15 | "Bit 4: Sending VMD status possible", HFILL }}, |
4011 | 15 | { &hf_s7comm_szl_0131_0005_funkt_0_5, |
4012 | 15 | { "Evaluating diagnostic interrupts", "s7comm.szl.0131.0005.funkt_0.evaldiagint", FT_BOOLEAN, 8, NULL, 0x20, |
4013 | 15 | "Bit 5: Evaluating diagnostic interrupts", HFILL }}, |
4014 | 15 | { &hf_s7comm_szl_0131_0005_funkt_0_6, |
4015 | 15 | { "Diagnostic interrupt exists on module", "s7comm.szl.0131.0005.funkt_0.diagint", FT_BOOLEAN, 8, NULL, 0x40, |
4016 | 15 | "Bit 6: Diagnostic interrupt exists on module", HFILL }}, |
4017 | 15 | { &hf_s7comm_szl_0131_0005_funkt_0_7, |
4018 | 15 | { "Reserved", "s7comm.szl.0131.0005.funkt_0.bit7_res", FT_BOOLEAN, 8, NULL, 0x80, |
4019 | 15 | "Bit 7: Reserved", HFILL }}, |
4020 | 15 | { &hf_s7comm_szl_0131_0005_funkt_1, |
4021 | 15 | { "funkt_1 (Reserved)", "s7comm.szl.0131.0005.funkt_1", FT_UINT8, BASE_HEX, NULL, 0x0, |
4022 | 15 | NULL, HFILL }}, |
4023 | 15 | { &hf_s7comm_szl_0131_0005_funkt_2, |
4024 | 15 | { "funkt_2 (Reserved)", "s7comm.szl.0131.0005.funkt_2", FT_UINT8, BASE_HEX, NULL, 0x0, |
4025 | 15 | NULL, HFILL }}, |
4026 | 15 | { &hf_s7comm_szl_0131_0005_funkt_3, |
4027 | 15 | { "funkt_3 (Reserved)", "s7comm.szl.0131.0005.funkt_3", FT_UINT8, BASE_HEX, NULL, 0x0, |
4028 | 15 | NULL, HFILL }}, |
4029 | 15 | { &hf_s7comm_szl_0131_0005_funkt_4, |
4030 | 15 | { "funkt_4 (Reserved)", "s7comm.szl.0131.0005.funkt_4", FT_UINT8, BASE_HEX, NULL, 0x0, |
4031 | 15 | NULL, HFILL }}, |
4032 | 15 | { &hf_s7comm_szl_0131_0005_funkt_5, |
4033 | 15 | { "funkt_5 (Reserved)", "s7comm.szl.0131.0005.funkt_5", FT_UINT8, BASE_HEX, NULL, 0x0, |
4034 | 15 | NULL, HFILL }}, |
4035 | 15 | { &hf_s7comm_szl_0131_0005_funkt_6, |
4036 | 15 | { "funkt_6 (Reserved)", "s7comm.szl.0131.0005.funkt_6", FT_UINT8, BASE_HEX, NULL, 0x0, |
4037 | 15 | NULL, HFILL }}, |
4038 | 15 | { &hf_s7comm_szl_0131_0005_funkt_7, |
4039 | 15 | { "funkt_7 (Reserved)", "s7comm.szl.0131.0005.funkt_7", FT_UINT8, BASE_HEX, NULL, 0x0, |
4040 | 15 | NULL, HFILL }}, |
4041 | 15 | { &hf_s7comm_szl_0131_0005_anz_sen, |
4042 | 15 | { "anz_sen (Maximum number of diagnostic data sinks)", "s7comm.szl.0131.0005.anz_sen", FT_UINT16, BASE_DEC, NULL, 0x0, |
4043 | 15 | NULL, HFILL }}, |
4044 | 15 | { &hf_s7comm_szl_0131_0005_anz_ein, |
4045 | 15 | { "anz_ein (Maximum number of entries in the diagnostic buffer)", "s7comm.szl.0131.0005.anz_ein", FT_UINT16, BASE_DEC, NULL, 0x0, |
4046 | 15 | NULL, HFILL }}, |
4047 | 15 | { &hf_s7comm_szl_0131_0005_anz_mel, |
4048 | 15 | { "anz_mel (Maximum number of process control group messages)", "s7comm.szl.0131.0005.anz_mel", FT_UINT16, BASE_DEC, NULL, 0x0, |
4049 | 15 | NULL, HFILL }}, |
4050 | 15 | { &hf_s7comm_szl_0131_0005_res, |
4051 | 15 | { "res (Reserved)", "s7comm.szl.0131.0005.res", FT_BYTES, BASE_NONE, NULL, 0x0, |
4052 | 15 | NULL, HFILL }} |
4053 | 15 | }; |
4054 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
4055 | 15 | } |
4056 | | |
4057 | | /*----------------------------------------------------------------------------------------------------*/ |
4058 | | static uint32_t |
4059 | | s7comm_decode_szl_id_0131_idx_0005(tvbuff_t *tvb, |
4060 | | proto_tree *tree, |
4061 | | uint32_t offset) |
4062 | 0 | { |
4063 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0005_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
4064 | 0 | offset += 2; |
4065 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0005_funkt_0, |
4066 | 0 | ett_s7comm_szl_0131_0005_funkt_0, s7comm_szl_0131_0005_funkt_0_fields, ENC_BIG_ENDIAN); |
4067 | 0 | offset += 1; |
4068 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0005_funkt_1, tvb, offset, 1, ENC_BIG_ENDIAN); |
4069 | 0 | offset += 1; |
4070 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0005_funkt_2, tvb, offset, 1, ENC_BIG_ENDIAN); |
4071 | 0 | offset += 1; |
4072 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0005_funkt_3, tvb, offset, 1, ENC_BIG_ENDIAN); |
4073 | 0 | offset += 1; |
4074 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0005_funkt_4, tvb, offset, 1, ENC_BIG_ENDIAN); |
4075 | 0 | offset += 1; |
4076 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0005_funkt_5, tvb, offset, 1, ENC_BIG_ENDIAN); |
4077 | 0 | offset += 1; |
4078 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0005_funkt_6, tvb, offset, 1, ENC_BIG_ENDIAN); |
4079 | 0 | offset += 1; |
4080 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0005_funkt_7, tvb, offset, 1, ENC_BIG_ENDIAN); |
4081 | 0 | offset += 1; |
4082 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0005_anz_sen, tvb, offset, 2, ENC_BIG_ENDIAN); |
4083 | 0 | offset += 2; |
4084 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0005_anz_ein, tvb, offset, 2, ENC_BIG_ENDIAN); |
4085 | 0 | offset += 2; |
4086 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0005_anz_mel, tvb, offset, 2, ENC_BIG_ENDIAN); |
4087 | 0 | offset += 2; |
4088 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0005_res, tvb, offset, 24, ENC_NA); |
4089 | 0 | offset += 24; |
4090 | |
|
4091 | 0 | return offset; |
4092 | 0 | } |
4093 | | |
4094 | | /******************************************************************************************************* |
4095 | | * |
4096 | | * SZL-ID: 0x0131 |
4097 | | * Index: 0x0006 |
4098 | | * Content: |
4099 | | * The partial list extract with SZL-ID W#16#0131 and the index W#16#0006 |
4100 | | * contains information about the functions available for data exchange with |
4101 | | * communication SFBs for configured connections on the module. |
4102 | | * |
4103 | | *******************************************************************************************************/ |
4104 | | static void |
4105 | | s7comm_szl_0131_0006_register(int proto) |
4106 | 15 | { |
4107 | 15 | static hf_register_info hf[] = { |
4108 | 15 | { &hf_s7comm_szl_0131_0006_index, |
4109 | 15 | { "Index", "s7comm.szl.0131.0006.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
4110 | 15 | "W#16#0006 Data exchange with communication SFBs for configured connections", HFILL }}, |
4111 | 15 | { &hf_s7comm_szl_0131_0006_funkt_0, |
4112 | 15 | { "funkt_0", "s7comm.szl.0131.0006.funkt_0", FT_UINT8, BASE_HEX, NULL, 0x0, |
4113 | 15 | "Block types available for data exchange with communication SFBs for configured connections", HFILL }}, |
4114 | 15 | { &hf_s7comm_szl_0131_0006_funkt_0_0, |
4115 | 15 | { "Bit 0: USEND", "s7comm.szl.0131.0006.funkt_0.usend", FT_BOOLEAN, 8, NULL, 0x01, |
4116 | 15 | NULL, HFILL }}, |
4117 | 15 | { &hf_s7comm_szl_0131_0006_funkt_0_1, |
4118 | 15 | { "Bit 1: URCV", "s7comm.szl.0131.0006.funkt_0.urcv", FT_BOOLEAN, 8, NULL, 0x02, |
4119 | 15 | NULL, HFILL }}, |
4120 | 15 | { &hf_s7comm_szl_0131_0006_funkt_0_2, |
4121 | 15 | { "Bit 2: SEND", "s7comm.szl.0131.0006.funkt_0.send", FT_BOOLEAN, 8, NULL, 0x04, |
4122 | 15 | NULL, HFILL }}, |
4123 | 15 | { &hf_s7comm_szl_0131_0006_funkt_0_3, |
4124 | 15 | { "Bit 3: RCV", "s7comm.szl.0131.0006.funkt_0.rcv", FT_BOOLEAN, 8, NULL, 0x08, |
4125 | 15 | NULL, HFILL }}, |
4126 | 15 | { &hf_s7comm_szl_0131_0006_funkt_0_4, |
4127 | 15 | { "Bit 4: BSEND", "s7comm.szl.0131.0006.funkt_0.bsend", FT_BOOLEAN, 8, NULL, 0x10, |
4128 | 15 | NULL, HFILL }}, |
4129 | 15 | { &hf_s7comm_szl_0131_0006_funkt_0_5, |
4130 | 15 | { "Bit 5: BRCV", "s7comm.szl.0131.0006.funkt_0.brcv", FT_BOOLEAN, 8, NULL, 0x20, |
4131 | 15 | NULL, HFILL }}, |
4132 | 15 | { &hf_s7comm_szl_0131_0006_funkt_0_6, |
4133 | 15 | { "Bit 6: GET", "s7comm.szl.0131.0006.funkt_0.get", FT_BOOLEAN, 8, NULL, 0x40, |
4134 | 15 | NULL, HFILL }}, |
4135 | 15 | { &hf_s7comm_szl_0131_0006_funkt_0_7, |
4136 | 15 | { "Bit 7: PUT", "s7comm.szl.0131.0006.funkt_0.put", FT_BOOLEAN, 8, NULL, 0x80, |
4137 | 15 | NULL, HFILL }}, |
4138 | 15 | { &hf_s7comm_szl_0131_0006_funkt_1, |
4139 | 15 | { "funkt_1", "s7comm.szl.0131.0006.funkt_1", FT_UINT8, BASE_HEX, NULL, 0x0, |
4140 | 15 | "Block types available for data exchange with communication SFBs for configured connections", HFILL }}, |
4141 | 15 | { &hf_s7comm_szl_0131_0006_funkt_1_0, |
4142 | 15 | { "Bit 0: PRINT", "s7comm.szl.0131.0006.funkt_1.print", FT_BOOLEAN, 8, NULL, 0x01, |
4143 | 15 | NULL, HFILL }}, |
4144 | 15 | { &hf_s7comm_szl_0131_0006_funkt_1_1, |
4145 | 15 | { "Bit 1: ABORT", "s7comm.szl.0131.0006.funkt_1.abort", FT_BOOLEAN, 8, NULL, 0x02, |
4146 | 15 | NULL, HFILL }}, |
4147 | 15 | { &hf_s7comm_szl_0131_0006_funkt_1_2, |
4148 | 15 | { "Bit 2: INITIATE", "s7comm.szl.0131.0006.funkt_1.initiate", FT_BOOLEAN, 8, NULL, 0x04, |
4149 | 15 | NULL, HFILL }}, |
4150 | 15 | { &hf_s7comm_szl_0131_0006_funkt_1_3, |
4151 | 15 | { "Bit 3: START", "s7comm.szl.0131.0006.funkt_1.start", FT_BOOLEAN, 8, NULL, 0x08, |
4152 | 15 | NULL, HFILL }}, |
4153 | 15 | { &hf_s7comm_szl_0131_0006_funkt_1_4, |
4154 | 15 | { "Bit 4: STOP", "s7comm.szl.0131.0006.funkt_1.stop", FT_BOOLEAN, 8, NULL, 0x10, |
4155 | 15 | NULL, HFILL }}, |
4156 | 15 | { &hf_s7comm_szl_0131_0006_funkt_1_5, |
4157 | 15 | { "Bit 5: RESUME", "s7comm.szl.0131.0006.funkt_1.resume", FT_BOOLEAN, 8, NULL, 0x20, |
4158 | 15 | NULL, HFILL }}, |
4159 | 15 | { &hf_s7comm_szl_0131_0006_funkt_1_6, |
4160 | 15 | { "Bit 6: STATUS", "s7comm.szl.0131.0006.funkt_1.status", FT_BOOLEAN, 8, NULL, 0x40, |
4161 | 15 | NULL, HFILL }}, |
4162 | 15 | { &hf_s7comm_szl_0131_0006_funkt_1_7, |
4163 | 15 | { "Bit 7: USTATUS", "s7comm.szl.0131.0006.funkt_1.ustatus", FT_BOOLEAN, 8, NULL, 0x80, |
4164 | 15 | NULL, HFILL }}, |
4165 | 15 | { &hf_s7comm_szl_0131_0006_funkt_2, |
4166 | 15 | { "funkt_2", "s7comm.szl.0131.0006.funkt_2", FT_UINT8, BASE_HEX, NULL, 0x0, |
4167 | 15 | "Block types available for data exchange with communication SFBs for configured connections", HFILL }}, |
4168 | 15 | { &hf_s7comm_szl_0131_0006_funkt_2_0, |
4169 | 15 | { "Bit 0: PI", "s7comm.szl.0131.0006.funkt_2.pi", FT_BOOLEAN, 8, NULL, 0x01, |
4170 | 15 | NULL, HFILL }}, |
4171 | 15 | { &hf_s7comm_szl_0131_0006_funkt_2_1, |
4172 | 15 | { "Bit 1: READ", "s7comm.szl.0131.0006.funkt_2.read", FT_BOOLEAN, 8, NULL, 0x02, |
4173 | 15 | NULL, HFILL }}, |
4174 | 15 | { &hf_s7comm_szl_0131_0006_funkt_2_2, |
4175 | 15 | { "Bit 2: WRITE", "s7comm.szl.0131.0006.funkt_2.write", FT_BOOLEAN, 8, NULL, 0x04, |
4176 | 15 | NULL, HFILL }}, |
4177 | 15 | { &hf_s7comm_szl_0131_0006_funkt_2_3, |
4178 | 15 | { "Bit 3: LOAD", "s7comm.szl.0131.0006.funkt_2.load", FT_BOOLEAN, 8, NULL, 0x08, |
4179 | 15 | NULL, HFILL }}, |
4180 | 15 | { &hf_s7comm_szl_0131_0006_funkt_2_4, |
4181 | 15 | { "Bit 4: LOAD_ME", "s7comm.szl.0131.0006.funkt_2.load_me", FT_BOOLEAN, 8, NULL, 0x10, |
4182 | 15 | NULL, HFILL }}, |
4183 | 15 | { &hf_s7comm_szl_0131_0006_funkt_2_5, |
4184 | 15 | { "Bit 5: ALARM", "s7comm.szl.0131.0006.funkt_2.alarm", FT_BOOLEAN, 8, NULL, 0x20, |
4185 | 15 | NULL, HFILL }}, |
4186 | 15 | { &hf_s7comm_szl_0131_0006_funkt_2_6, |
4187 | 15 | { "Bit 6: ALARM_8", "s7comm.szl.0131.0006.funkt_2.alarm_8", FT_BOOLEAN, 8, NULL, 0x40, |
4188 | 15 | NULL, HFILL }}, |
4189 | 15 | { &hf_s7comm_szl_0131_0006_funkt_2_7, |
4190 | 15 | { "Bit 7: ALARM_8P", "s7comm.szl.0131.0006.funkt_2.alarm_8p", FT_BOOLEAN, 8, NULL, 0x80, |
4191 | 15 | NULL, HFILL }}, |
4192 | 15 | { &hf_s7comm_szl_0131_0006_funkt_3, |
4193 | 15 | { "funkt_3", "s7comm.szl.0131.0006.funkt_3", FT_UINT8, BASE_HEX, NULL, 0x0, |
4194 | 15 | "Block types available for data exchange with communication SFBs for configured connections", HFILL }}, |
4195 | 15 | { &hf_s7comm_szl_0131_0006_funkt_3_0, |
4196 | 15 | { "Bit 0: NOTIFY", "s7comm.szl.0131.0006.funkt_3.notify", FT_BOOLEAN, 8, NULL, 0x01, |
4197 | 15 | NULL, HFILL }}, |
4198 | 15 | { &hf_s7comm_szl_0131_0006_funkt_3_1, |
4199 | 15 | { "Bit 1: AR_SEND", "s7comm.szl.0131.0006.funkt_3.ar_send", FT_BOOLEAN, 8, NULL, 0x02, |
4200 | 15 | NULL, HFILL }}, |
4201 | 15 | { &hf_s7comm_szl_0131_0006_funkt_3_2, |
4202 | 15 | { "Bit 2: Reserved", "s7comm.szl.0131.0006.funkt_3.bit2_res", FT_BOOLEAN, 8, NULL, 0x04, |
4203 | 15 | NULL, HFILL }}, |
4204 | 15 | { &hf_s7comm_szl_0131_0006_funkt_3_3, |
4205 | 15 | { "Bit 3: Reserved", "s7comm.szl.0131.0006.funkt_3.bit3_res", FT_BOOLEAN, 8, NULL, 0x08, |
4206 | 15 | NULL, HFILL }}, |
4207 | 15 | { &hf_s7comm_szl_0131_0006_funkt_3_4, |
4208 | 15 | { "Bit 4: Reserved", "s7comm.szl.0131.0006.funkt_3.bit4_res", FT_BOOLEAN, 8, NULL, 0x10, |
4209 | 15 | NULL, HFILL }}, |
4210 | 15 | { &hf_s7comm_szl_0131_0006_funkt_3_5, |
4211 | 15 | { "Bit 5: Reserved", "s7comm.szl.0131.0006.funkt_3.bit5_res", FT_BOOLEAN, 8, NULL, 0x20, |
4212 | 15 | NULL, HFILL }}, |
4213 | 15 | { &hf_s7comm_szl_0131_0006_funkt_3_6, |
4214 | 15 | { "Bit 6: Reserved", "s7comm.szl.0131.0006.funkt_3.bit6_res", FT_BOOLEAN, 8, NULL, 0x40, |
4215 | 15 | NULL, HFILL }}, |
4216 | 15 | { &hf_s7comm_szl_0131_0006_funkt_3_7, |
4217 | 15 | { "Bit 7: Reserved", "s7comm.szl.0131.0006.funkt_3.bit7_res", FT_BOOLEAN, 8, NULL, 0x80, |
4218 | 15 | NULL, HFILL }}, |
4219 | 15 | { &hf_s7comm_szl_0131_0006_funkt_4, |
4220 | 15 | { "funkt_4", "s7comm.szl.0131.0006.funkt_4", FT_UINT8, BASE_HEX, NULL, 0x0, |
4221 | 15 | "Reserved", HFILL }}, |
4222 | 15 | { &hf_s7comm_szl_0131_0006_funkt_5, |
4223 | 15 | { "funkt_5", "s7comm.szl.0131.0006.funkt_5", FT_UINT8, BASE_HEX, NULL, 0x0, |
4224 | 15 | "Reserved", HFILL }}, |
4225 | 15 | { &hf_s7comm_szl_0131_0006_funkt_6, |
4226 | 15 | { "funkt_6", "s7comm.szl.0131.0006.funkt_6", FT_UINT8, BASE_HEX, NULL, 0x0, |
4227 | 15 | "Block types available for data exchange with communication SFBs for configured connections", HFILL }}, |
4228 | 15 | { &hf_s7comm_szl_0131_0006_funkt_6_0, |
4229 | 15 | { "Bit 0: X_SEND", "s7comm.szl.0131.0006.funkt_6.x_send", FT_BOOLEAN, 8, NULL, 0x01, |
4230 | 15 | NULL, HFILL }}, |
4231 | 15 | { &hf_s7comm_szl_0131_0006_funkt_6_1, |
4232 | 15 | { "Bit 1: X_RCV", "s7comm.szl.0131.0006.funkt_6.x_rcv", FT_BOOLEAN, 8, NULL, 0x02, |
4233 | 15 | NULL, HFILL }}, |
4234 | 15 | { &hf_s7comm_szl_0131_0006_funkt_6_2, |
4235 | 15 | { "Bit 2: X_GET", "s7comm.szl.0131.0006.funkt_6.x_get", FT_BOOLEAN, 8, NULL, 0x04, |
4236 | 15 | NULL, HFILL }}, |
4237 | 15 | { &hf_s7comm_szl_0131_0006_funkt_6_3, |
4238 | 15 | { "Bit 3: X_PUT", "s7comm.szl.0131.0006.funkt_6.x_put", FT_BOOLEAN, 8, NULL, 0x08, |
4239 | 15 | NULL, HFILL }}, |
4240 | 15 | { &hf_s7comm_szl_0131_0006_funkt_6_4, |
4241 | 15 | { "Bit 4: X_ABORT", "s7comm.szl.0131.0006.funkt_6.x_abort", FT_BOOLEAN, 8, NULL, 0x10, |
4242 | 15 | NULL, HFILL }}, |
4243 | 15 | { &hf_s7comm_szl_0131_0006_funkt_6_5, |
4244 | 15 | { "Bit 5: I_GET", "s7comm.szl.0131.0006.funkt_6.i_get", FT_BOOLEAN, 8, NULL, 0x20, |
4245 | 15 | NULL, HFILL }}, |
4246 | 15 | { &hf_s7comm_szl_0131_0006_funkt_6_6, |
4247 | 15 | { "Bit 6: I_PUT", "s7comm.szl.0131.0006.funkt_6.i_put", FT_BOOLEAN, 8, NULL, 0x40, |
4248 | 15 | NULL, HFILL }}, |
4249 | 15 | { &hf_s7comm_szl_0131_0006_funkt_6_7, |
4250 | 15 | { "Bit 7: I_ABORT", "s7comm.szl.0131.0006.funkt_6.i_abort", FT_BOOLEAN, 8, NULL, 0x80, |
4251 | 15 | NULL, HFILL }}, |
4252 | 15 | { &hf_s7comm_szl_0131_0006_funkt_7, |
4253 | 15 | { "funkt_7", "s7comm.szl.0131.0006.funkt_7", FT_UINT8, BASE_HEX, NULL, 0x0, |
4254 | 15 | "Block types available for data exchange with communication SFBs for configured connections", HFILL }}, |
4255 | 15 | { &hf_s7comm_szl_0131_0006_funkt_7_0, |
4256 | 15 | { "Bit 0: SCAN_SND", "s7comm.szl.0131.0006.funkt_7.scan_snd", FT_BOOLEAN, 8, NULL, 0x01, |
4257 | 15 | NULL, HFILL }}, |
4258 | 15 | { &hf_s7comm_szl_0131_0006_funkt_7_1, |
4259 | 15 | { "Bit 1: ALARM_SQ", "s7comm.szl.0131.0006.funkt_7.alarm_sq", FT_BOOLEAN, 8, NULL, 0x02, |
4260 | 15 | NULL, HFILL }}, |
4261 | 15 | { &hf_s7comm_szl_0131_0006_funkt_7_2, |
4262 | 15 | { "Bit 2: ALARM_S", "s7comm.szl.0131.0006.funkt_7.alarm_s", FT_BOOLEAN, 8, NULL, 0x04, |
4263 | 15 | NULL, HFILL }}, |
4264 | 15 | { &hf_s7comm_szl_0131_0006_funkt_7_3, |
4265 | 15 | { "Bit 3: ALARM_SC", "s7comm.szl.0131.0006.funkt_7.alarm_sc", FT_BOOLEAN, 8, NULL, 0x08, |
4266 | 15 | NULL, HFILL }}, |
4267 | 15 | { &hf_s7comm_szl_0131_0006_funkt_7_4, |
4268 | 15 | { "Bit 4: EN_MSG", "s7comm.szl.0131.0006.funkt_7.en_msg", FT_BOOLEAN, 8, NULL, 0x10, |
4269 | 15 | NULL, HFILL }}, |
4270 | 15 | { &hf_s7comm_szl_0131_0006_funkt_7_5, |
4271 | 15 | { "Bit 5: DIS_MSG", "s7comm.szl.0131.0006.funkt_7.dis_msg", FT_BOOLEAN, 8, NULL, 0x20, |
4272 | 15 | NULL, HFILL }}, |
4273 | 15 | { &hf_s7comm_szl_0131_0006_funkt_7_6, |
4274 | 15 | { "Bit 6: CONTROL", "s7comm.szl.0131.0006.funkt_7.control", FT_BOOLEAN, 8, NULL, 0x40, |
4275 | 15 | NULL, HFILL }}, |
4276 | 15 | { &hf_s7comm_szl_0131_0006_funkt_7_7, |
4277 | 15 | { "Bit 7: Reserved", "s7comm.szl.0131.0006.funkt_7.bit7_res", FT_BOOLEAN, 8, NULL, 0x80, |
4278 | 15 | NULL, HFILL }}, |
4279 | 15 | { &hf_s7comm_szl_0131_0006_schnell, |
4280 | 15 | { "schnell (Fast reaction yes/no)", "s7comm.szl.0131.0006.schnell", FT_UINT8, BASE_HEX, NULL, 0x0, |
4281 | 15 | NULL, HFILL }}, |
4282 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_0, |
4283 | 15 | { "zugtyp_0", "s7comm.szl.0131.0006.zugtyp_0", FT_UINT8, BASE_HEX, NULL, 0x0, |
4284 | 15 | "zugtyp_0 (Permitted module types for fast reaction)", HFILL }}, |
4285 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_0_0, |
4286 | 15 | { "Bit 0: USEND", "s7comm.szl.0131.0006.zugtyp_0.usend", FT_BOOLEAN, 8, NULL, 0x01, |
4287 | 15 | NULL, HFILL }}, |
4288 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_0_1, |
4289 | 15 | { "Bit 1: URCV", "s7comm.szl.0131.0006.zugtyp_0.urcv", FT_BOOLEAN, 8, NULL, 0x02, |
4290 | 15 | NULL, HFILL }}, |
4291 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_0_2, |
4292 | 15 | { "Bit 2: SEND", "s7comm.szl.0131.0006.zugtyp_0.send", FT_BOOLEAN, 8, NULL, 0x04, |
4293 | 15 | NULL, HFILL }}, |
4294 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_0_3, |
4295 | 15 | { "Bit 3: RCV", "s7comm.szl.0131.0006.zugtyp_0.rcv", FT_BOOLEAN, 8, NULL, 0x08, |
4296 | 15 | NULL, HFILL }}, |
4297 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_0_4, |
4298 | 15 | { "Bit 4: BSEND", "s7comm.szl.0131.0006.zugtyp_0.bsend", FT_BOOLEAN, 8, NULL, 0x10, |
4299 | 15 | NULL, HFILL }}, |
4300 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_0_5, |
4301 | 15 | { "Bit 5: BRCV", "s7comm.szl.0131.0006.zugtyp_0.brcv", FT_BOOLEAN, 8, NULL, 0x20, |
4302 | 15 | NULL, HFILL }}, |
4303 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_0_6, |
4304 | 15 | { "Bit 6: GET", "s7comm.szl.0131.0006.zugtyp_0.get", FT_BOOLEAN, 8, NULL, 0x40, |
4305 | 15 | NULL, HFILL }}, |
4306 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_0_7, |
4307 | 15 | { "Bit 7: PUT", "s7comm.szl.0131.0006.zugtyp_0.put", FT_BOOLEAN, 8, NULL, 0x80, |
4308 | 15 | NULL, HFILL }}, |
4309 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_1, |
4310 | 15 | { "zugtyp_1", "s7comm.szl.0131.0006.zugtyp_1", FT_UINT8, BASE_HEX, NULL, 0x0, |
4311 | 15 | "zugtyp_1 (Permitted module types for fast reaction)", HFILL }}, |
4312 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_1_0, |
4313 | 15 | { "Bit 0: PRINT", "s7comm.szl.0131.0006.zugtyp_1.print", FT_BOOLEAN, 8, NULL, 0x01, |
4314 | 15 | NULL, HFILL }}, |
4315 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_1_1, |
4316 | 15 | { "Bit 1: ABORT", "s7comm.szl.0131.0006.zugtyp_1abort", FT_BOOLEAN, 8, NULL, 0x02, |
4317 | 15 | NULL, HFILL }}, |
4318 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_1_2, |
4319 | 15 | { "Bit 2: INITIATE", "s7comm.szl.0131.0006.zugtyp_1.initiate", FT_BOOLEAN, 8, NULL, 0x04, |
4320 | 15 | NULL, HFILL }}, |
4321 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_1_3, |
4322 | 15 | { "Bit 3: START", "s7comm.szl.0131.0006.zugtyp_1.start", FT_BOOLEAN, 8, NULL, 0x08, |
4323 | 15 | NULL, HFILL }}, |
4324 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_1_4, |
4325 | 15 | { "Bit 4: STOP", "s7comm.szl.0131.0006.zugtyp_1.stop", FT_BOOLEAN, 8, NULL, 0x10, |
4326 | 15 | NULL, HFILL }}, |
4327 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_1_5, |
4328 | 15 | { "Bit 5: RESUME", "s7comm.szl.0131.0006.zugtyp_1.resume", FT_BOOLEAN, 8, NULL, 0x20, |
4329 | 15 | NULL, HFILL }}, |
4330 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_1_6, |
4331 | 15 | { "Bit 6: STATUS", "s7comm.szl.0131.0006.zugtyp_1.status", FT_BOOLEAN, 8, NULL, 0x40, |
4332 | 15 | NULL, HFILL }}, |
4333 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_1_7, |
4334 | 15 | { "Bit 7: USTATUS", "s7comm.szl.0131.0006.zugtyp_1.ustatus", FT_BOOLEAN, 8, NULL, 0x80, |
4335 | 15 | NULL, HFILL }}, |
4336 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_2, |
4337 | 15 | { "zugtyp_2", "s7comm.szl.0131.0006.zugtyp_2", FT_UINT8, BASE_HEX, NULL, 0x0, |
4338 | 15 | "zugtyp_2 (Permitted module types for fast reaction)", HFILL }}, |
4339 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_2_0, |
4340 | 15 | { "Bit 0: PI", "s7comm.szl.0131.0006.zugtyp_2.pi", FT_BOOLEAN, 8, NULL, 0x01, |
4341 | 15 | NULL, HFILL }}, |
4342 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_2_1, |
4343 | 15 | { "Bit 1: READ", "s7comm.szl.0131.0006.zugtyp_2.read", FT_BOOLEAN, 8, NULL, 0x02, |
4344 | 15 | NULL, HFILL }}, |
4345 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_2_2, |
4346 | 15 | { "Bit 2: WRITE", "s7comm.szl.0131.0006.zugtyp_2.write", FT_BOOLEAN, 8, NULL, 0x04, |
4347 | 15 | NULL, HFILL }}, |
4348 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_2_3, |
4349 | 15 | { "Bit 3: LOAD", "s7comm.szl.0131.0006.zugtyp_2.load", FT_BOOLEAN, 8, NULL, 0x08, |
4350 | 15 | NULL, HFILL }}, |
4351 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_2_4, |
4352 | 15 | { "Bit 4: LOAD_ME", "s7comm.szl.0131.0006.zugtyp_2.load_me", FT_BOOLEAN, 8, NULL, 0x10, |
4353 | 15 | NULL, HFILL }}, |
4354 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_2_5, |
4355 | 15 | { "Bit 5: ALARM", "s7comm.szl.0131.0006.zugtyp_2.alarm", FT_BOOLEAN, 8, NULL, 0x20, |
4356 | 15 | NULL, HFILL }}, |
4357 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_2_6, |
4358 | 15 | { "Bit 6: ALARM_8", "s7comm.szl.0131.0006.zugtyp_2.alarm_8", FT_BOOLEAN, 8, NULL, 0x40, |
4359 | 15 | NULL, HFILL }}, |
4360 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_2_7, |
4361 | 15 | { "Bit 7: ALARM_8P", "s7comm.szl.0131.0006.zugtyp_2.alarm_8p", FT_BOOLEAN, 8, NULL, 0x80, |
4362 | 15 | NULL, HFILL }}, |
4363 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_3, |
4364 | 15 | { "zugtyp_3", "s7comm.szl.0131.0006.zugtyp_3", FT_UINT8, BASE_HEX, NULL, 0x0, |
4365 | 15 | "zugtyp_3 (Permitted module types for fast reaction)", HFILL }}, |
4366 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_3_0, |
4367 | 15 | { "Bit 0: NOTIFY", "s7comm.szl.0131.0006.zugtyp_3.notify", FT_BOOLEAN, 8, NULL, 0x01, |
4368 | 15 | NULL, HFILL }}, |
4369 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_3_1, |
4370 | 15 | { "Bit 1: AR_SEND", "s7comm.szl.0131.0006.zugtyp_3.ar_send", FT_BOOLEAN, 8, NULL, 0x02, |
4371 | 15 | NULL, HFILL }}, |
4372 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_3_2, |
4373 | 15 | { "Bit 2: Reserved", "s7comm.szl.0131.0006.zugtyp_3.bit2_res", FT_BOOLEAN, 8, NULL, 0x04, |
4374 | 15 | NULL, HFILL }}, |
4375 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_3_3, |
4376 | 15 | { "Bit 3: Reserved", "s7comm.szl.0131.0006.zugtyp_3.bit3_res", FT_BOOLEAN, 8, NULL, 0x08, |
4377 | 15 | NULL, HFILL }}, |
4378 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_3_4, |
4379 | 15 | { "Bit 4: Reserved", "s7comm.szl.0131.0006.zugtyp_3.bit4_res", FT_BOOLEAN, 8, NULL, 0x10, |
4380 | 15 | NULL, HFILL }}, |
4381 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_3_5, |
4382 | 15 | { "Bit 5: Reserved", "s7comm.szl.0131.0006.zugtyp_3.bit5_res", FT_BOOLEAN, 8, NULL, 0x20, |
4383 | 15 | NULL, HFILL }}, |
4384 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_3_6, |
4385 | 15 | { "Bit 6: Reserved", "s7comm.szl.0131.0006.zugtyp_3.bit6_res", FT_BOOLEAN, 8, NULL, 0x40, |
4386 | 15 | NULL, HFILL }}, |
4387 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_3_7, |
4388 | 15 | { "Bit 7: Reserved", "s7comm.szl.0131.0006.zugtyp_3.bit7_res", FT_BOOLEAN, 8, NULL, 0x80, |
4389 | 15 | NULL, HFILL }}, |
4390 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_4, |
4391 | 15 | { "zugtyp_4", "s7comm.szl.0131.0006.zugtyp_4", FT_UINT8, BASE_HEX, NULL, 0x0, |
4392 | 15 | "zugtyp_4 (Permitted module types for fast reaction)", HFILL }}, |
4393 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_5, |
4394 | 15 | { "zugtyp_5", "s7comm.szl.0131.0006.zugtyp_5", FT_UINT8, BASE_HEX, NULL, 0x0, |
4395 | 15 | "zugtyp_5 (Permitted module types for fast reaction)", HFILL }}, |
4396 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_6, |
4397 | 15 | { "zugtyp_6", "s7comm.szl.0131.0006.zugtyp_6", FT_UINT8, BASE_HEX, NULL, 0x0, |
4398 | 15 | "zugtyp_6 (Permitted module types for fast reaction)", HFILL }}, |
4399 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_6_0, |
4400 | 15 | { "Bit 0: X_SEND", "s7comm.szl.0131.0006.zugtyp_6.x_send", FT_BOOLEAN, 8, NULL, 0x01, |
4401 | 15 | NULL, HFILL }}, |
4402 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_6_1, |
4403 | 15 | { "Bit 1: X_RCV", "s7comm.szl.0131.0006.zugtyp_6.x_rcv", FT_BOOLEAN, 8, NULL, 0x02, |
4404 | 15 | NULL, HFILL }}, |
4405 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_6_2, |
4406 | 15 | { "Bit 2: X_GET", "s7comm.szl.0131.0006.zugtyp_6.x_get", FT_BOOLEAN, 8, NULL, 0x04, |
4407 | 15 | NULL, HFILL }}, |
4408 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_6_3, |
4409 | 15 | { "Bit 3: X_PUT", "s7comm.szl.0131.0006.zugtyp_6.x_put", FT_BOOLEAN, 8, NULL, 0x08, |
4410 | 15 | NULL, HFILL }}, |
4411 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_6_4, |
4412 | 15 | { "Bit 4: X_ABORT", "s7comm.szl.0131.0006.zugtyp_6.x_abort", FT_BOOLEAN, 8, NULL, 0x10, |
4413 | 15 | NULL, HFILL }}, |
4414 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_6_5, |
4415 | 15 | { "Bit 5: I_GET", "s7comm.szl.0131.0006.zugtyp_6.i_get", FT_BOOLEAN, 8, NULL, 0x20, |
4416 | 15 | NULL, HFILL }}, |
4417 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_6_6, |
4418 | 15 | { "Bit 6: I_PUT", "s7comm.szl.0131.0006.zugtyp_6.i_put", FT_BOOLEAN, 8, NULL, 0x40, |
4419 | 15 | NULL, HFILL }}, |
4420 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_6_7, |
4421 | 15 | { "Bit 7: I_ABORT", "s7comm.szl.0131.0006.zugtyp_6.i_abort", FT_BOOLEAN, 8, NULL, 0x80, |
4422 | 15 | NULL, HFILL }}, |
4423 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_7, |
4424 | 15 | { "zugtyp_7", "s7comm.szl.0131.0006.zugtyp_7", FT_UINT8, BASE_HEX, NULL, 0x0, |
4425 | 15 | "zugtyp_7 (Permitted module types for fast reaction)", HFILL }}, |
4426 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_7_0, |
4427 | 15 | { "Bit 0: SCAN_SND", "s7comm.szl.0131.0006.zugtyp_7.scan_snd", FT_BOOLEAN, 8, NULL, 0x01, |
4428 | 15 | NULL, HFILL }}, |
4429 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_7_1, |
4430 | 15 | { "Bit 1: ALARM_SQ", "s7comm.szl.0131.0006.zugtyp_7.alarm_sq", FT_BOOLEAN, 8, NULL, 0x02, |
4431 | 15 | NULL, HFILL }}, |
4432 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_7_2, |
4433 | 15 | { "Bit 2: ALARM_S", "s7comm.szl.0131.0006.zugtyp_7.alarm_s", FT_BOOLEAN, 8, NULL, 0x04, |
4434 | 15 | NULL, HFILL }}, |
4435 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_7_3, |
4436 | 15 | { "Bit 3: ALARM_SC", "s7comm.szl.0131.0006.zugtyp_7.alarm_sc", FT_BOOLEAN, 8, NULL, 0x08, |
4437 | 15 | NULL, HFILL }}, |
4438 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_7_4, |
4439 | 15 | { "Bit 4: EN_MSG", "s7comm.szl.0131.0006.zugtyp_7.en_msg", FT_BOOLEAN, 8, NULL, 0x10, |
4440 | 15 | NULL, HFILL }}, |
4441 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_7_5, |
4442 | 15 | { "Bit 5: DIS_MSG", "s7comm.szl.0131.0006.zugtyp_7.dis_msg", FT_BOOLEAN, 8, NULL, 0x20, |
4443 | 15 | NULL, HFILL }}, |
4444 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_7_6, |
4445 | 15 | { "Bit 6: CONTROL", "s7comm.szl.0131.0006.zugtyp_7.control", FT_BOOLEAN, 8, NULL, 0x40, |
4446 | 15 | NULL, HFILL }}, |
4447 | 15 | { &hf_s7comm_szl_0131_0006_zugtyp_7_7, |
4448 | 15 | { "Bit 7: Reserved", "s7comm.szl.0131.0006.zugtyp_7.bit7_res", FT_BOOLEAN, 8, NULL, 0x80, |
4449 | 15 | NULL, HFILL }}, |
4450 | 15 | { &hf_s7comm_szl_0131_0006_res1, |
4451 | 15 | { "res1 (Reserved)", "s7comm.szl.0131.0006.res1", FT_BYTES, BASE_NONE, NULL, 0x0, |
4452 | 15 | NULL, HFILL }}, |
4453 | 15 | { &hf_s7comm_szl_0131_0006_max_sd_empf, |
4454 | 15 | { "max_sd_empf (Maximum number of send and receive parameters per block)", "s7comm.szl.0131.0006.max_sd_empf", FT_UINT16, BASE_DEC, NULL, 0x0, |
4455 | 15 | NULL, HFILL }}, |
4456 | 15 | { &hf_s7comm_szl_0131_0006_max_sd_al8p, |
4457 | 15 | { "max_sd_al8p (Maximum number of send parameters for ALARM_8P)", "s7comm.szl.0131.0006.max_sd_al8p", FT_UINT16, BASE_DEC, NULL, 0x0, |
4458 | 15 | NULL, HFILL }}, |
4459 | 15 | { &hf_s7comm_szl_0131_0006_max_inst, |
4460 | 15 | { "max_inst (Maximum number of instances for communication SFBs for configured connections)", "s7comm.szl.0131.0006.max_inst", FT_UINT16, BASE_DEC, NULL, 0x0, |
4461 | 15 | NULL, HFILL }}, |
4462 | 15 | { &hf_s7comm_szl_0131_0006_res2, |
4463 | 15 | { "res2 (Reserved)", "s7comm.szl.0131.0006.res2", FT_BYTES, BASE_NONE, NULL, 0x0, |
4464 | 15 | NULL, HFILL }}, |
4465 | 15 | { &hf_s7comm_szl_0131_0006_verb_proj, |
4466 | 15 | { "verb_proj (Connection configured (yes=1) possible)", "s7comm.szl.0131.0006.verb_proj", FT_UINT8, BASE_HEX, NULL, 0x0, |
4467 | 15 | NULL, HFILL }}, |
4468 | 15 | { &hf_s7comm_szl_0131_0006_verb_prog, |
4469 | 15 | { "verb_prog (Connection programmed (yes=1) possible)", "s7comm.szl.0131.0006.verb_prog", FT_UINT8, BASE_HEX, NULL, 0x0, |
4470 | 15 | NULL, HFILL }}, |
4471 | 15 | { &hf_s7comm_szl_0131_0006_res3, |
4472 | 15 | { "res3 (Reserved)", "s7comm.szl.0131.0006.res3", FT_BYTES, BASE_NONE, NULL, 0x0, |
4473 | 15 | NULL, HFILL }} |
4474 | 15 | }; |
4475 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
4476 | 15 | } |
4477 | | |
4478 | | /*----------------------------------------------------------------------------------------------------*/ |
4479 | | static uint32_t |
4480 | | s7comm_decode_szl_id_0131_idx_0006(tvbuff_t *tvb, |
4481 | | proto_tree *tree, |
4482 | | uint32_t offset) |
4483 | 0 | { |
4484 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
4485 | 0 | offset += 2; |
4486 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0006_funkt_0, |
4487 | 0 | ett_s7comm_szl_0131_0006_funkt_0, s7comm_szl_0131_0006_funkt_0_fields, ENC_BIG_ENDIAN); |
4488 | 0 | offset += 1; |
4489 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0006_funkt_1, |
4490 | 0 | ett_s7comm_szl_0131_0006_funkt_1, s7comm_szl_0131_0006_funkt_1_fields, ENC_BIG_ENDIAN); |
4491 | 0 | offset += 1; |
4492 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0006_funkt_2, |
4493 | 0 | ett_s7comm_szl_0131_0006_funkt_2, s7comm_szl_0131_0006_funkt_2_fields, ENC_BIG_ENDIAN); |
4494 | 0 | offset += 1; |
4495 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0006_funkt_3, |
4496 | 0 | ett_s7comm_szl_0131_0006_funkt_3, s7comm_szl_0131_0006_funkt_3_fields, ENC_BIG_ENDIAN); |
4497 | 0 | offset += 1; |
4498 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_4, tvb, offset, 1, ENC_BIG_ENDIAN); |
4499 | 0 | offset += 1; |
4500 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_5, tvb, offset, 1, ENC_BIG_ENDIAN); |
4501 | 0 | offset += 1; |
4502 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0006_funkt_6, |
4503 | 0 | ett_s7comm_szl_0131_0006_funkt_6, s7comm_szl_0131_0006_funkt_6_fields, ENC_BIG_ENDIAN); |
4504 | 0 | offset += 1; |
4505 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0006_funkt_7, |
4506 | 0 | ett_s7comm_szl_0131_0006_funkt_7, s7comm_szl_0131_0006_funkt_7_fields, ENC_BIG_ENDIAN); |
4507 | 0 | offset += 1; |
4508 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_schnell, tvb, offset, 1, ENC_BIG_ENDIAN); |
4509 | 0 | offset += 1; |
4510 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0006_zugtyp_0, |
4511 | 0 | ett_s7comm_szl_0131_0006_zugtyp_0, s7comm_szl_0131_0006_zugtyp_0_fields, ENC_BIG_ENDIAN); |
4512 | 0 | offset += 1; |
4513 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0006_zugtyp_1, |
4514 | 0 | ett_s7comm_szl_0131_0006_zugtyp_1, s7comm_szl_0131_0006_zugtyp_1_fields, ENC_BIG_ENDIAN); |
4515 | 0 | offset += 1; |
4516 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0006_zugtyp_2, |
4517 | 0 | ett_s7comm_szl_0131_0006_zugtyp_2, s7comm_szl_0131_0006_zugtyp_2_fields, ENC_BIG_ENDIAN); |
4518 | 0 | offset += 1; |
4519 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0006_zugtyp_3, |
4520 | 0 | ett_s7comm_szl_0131_0006_zugtyp_3, s7comm_szl_0131_0006_zugtyp_3_fields, ENC_BIG_ENDIAN); |
4521 | 0 | offset += 1; |
4522 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_zugtyp_4, tvb, offset, 1, ENC_BIG_ENDIAN); |
4523 | 0 | offset += 1; |
4524 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_zugtyp_5, tvb, offset, 1, ENC_BIG_ENDIAN); |
4525 | 0 | offset += 1; |
4526 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0006_zugtyp_6, |
4527 | 0 | ett_s7comm_szl_0131_0006_zugtyp_6, s7comm_szl_0131_0006_zugtyp_6_fields, ENC_BIG_ENDIAN); |
4528 | 0 | offset += 1; |
4529 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0006_zugtyp_7, |
4530 | 0 | ett_s7comm_szl_0131_0006_zugtyp_7, s7comm_szl_0131_0006_zugtyp_7_fields, ENC_BIG_ENDIAN); |
4531 | 0 | offset += 1; |
4532 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_res1, tvb, offset, 1, ENC_NA); |
4533 | 0 | offset += 1; |
4534 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_max_sd_empf, tvb, offset, 2, ENC_BIG_ENDIAN); |
4535 | 0 | offset += 2; |
4536 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_max_sd_al8p, tvb, offset, 2, ENC_BIG_ENDIAN); |
4537 | 0 | offset += 2; |
4538 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_max_inst, tvb, offset, 2, ENC_BIG_ENDIAN); |
4539 | 0 | offset += 2; |
4540 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_res2, tvb, offset, 2, ENC_NA); |
4541 | 0 | offset += 2; |
4542 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_verb_proj, tvb, offset, 1, ENC_BIG_ENDIAN); |
4543 | 0 | offset += 1; |
4544 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_verb_prog, tvb, offset, 1, ENC_BIG_ENDIAN); |
4545 | 0 | offset += 1; |
4546 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_res3, tvb, offset, 10, ENC_NA); |
4547 | 0 | offset += 10; |
4548 | |
|
4549 | 0 | return offset; |
4550 | 0 | } |
4551 | | |
4552 | | /******************************************************************************************************* |
4553 | | * |
4554 | | * SZL-ID: 0x0131 |
4555 | | * Index: 0x0007 |
4556 | | * Content: |
4557 | | * The partial list extract with SZL-ID W#16#0131 and the index W#16#0007 |
4558 | | * contains information about the functions available for global data |
4559 | | * communication on the module. |
4560 | | * |
4561 | | *******************************************************************************************************/ |
4562 | | static void |
4563 | | s7comm_szl_0131_0007_register(int proto) |
4564 | 15 | { |
4565 | 15 | static hf_register_info hf[] = { |
4566 | 15 | { &hf_s7comm_szl_0131_0007_index, |
4567 | 15 | { "Index", "s7comm.szl.0131.0007.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
4568 | 15 | "W#16#0007 Global data communication", HFILL }}, |
4569 | 15 | { &hf_s7comm_szl_0131_0007_funkt_0, |
4570 | 15 | { "funkt_0 (Available GD functions)", "s7comm.szl.0131.0007.funkt_0", FT_UINT8, BASE_HEX, NULL, 0x0, |
4571 | 15 | NULL, HFILL }}, |
4572 | 15 | { &hf_s7comm_szl_0131_0007_funkt_0_0, |
4573 | 15 | { "Cyclic", "s7comm.szl.0131.0007.funkt_0.cyclic", FT_BOOLEAN, 8, NULL, 0x01, |
4574 | 15 | "Bit 0: Cyclic", HFILL }}, |
4575 | 15 | { &hf_s7comm_szl_0131_0007_funkt_0_1, |
4576 | 15 | { "GD_SND", "s7comm.szl.0131.0007.funkt_0.gd_snd", FT_BOOLEAN, 8, NULL, 0x02, |
4577 | 15 | "Bit 1: GD_SND", HFILL }}, |
4578 | 15 | { &hf_s7comm_szl_0131_0007_funkt_0_2, |
4579 | 15 | { "GD_RCV", "s7comm.szl.0131.0007.funkt_0.gd_rcv", FT_BOOLEAN, 8, NULL, 0x04, |
4580 | 15 | "Bit 2: GD_RCV", HFILL }}, |
4581 | 15 | { &hf_s7comm_szl_0131_0007_funkt_0_3, |
4582 | 15 | { "Reserved", "s7comm.szl.0131.0007.funkt_0.bit3_res", FT_BOOLEAN, 8, NULL, 0x08, |
4583 | 15 | "Bit 3: Reserved", HFILL }}, |
4584 | 15 | { &hf_s7comm_szl_0131_0007_funkt_0_4, |
4585 | 15 | { "Reserved", "s7comm.szl.0131.0007.funkt_0.bit4_res", FT_BOOLEAN, 8, NULL, 0x10, |
4586 | 15 | "Bit 4: Reserved", HFILL }}, |
4587 | 15 | { &hf_s7comm_szl_0131_0007_funkt_0_5, |
4588 | 15 | { "Reserved", "s7comm.szl.0131.0007.funkt_0.bit5_res", FT_BOOLEAN, 8, NULL, 0x20, |
4589 | 15 | "Bit 5: Reserved", HFILL }}, |
4590 | 15 | { &hf_s7comm_szl_0131_0007_funkt_0_6, |
4591 | 15 | { "Reserved", "s7comm.szl.0131.0007.funkt_0.bit6_res", FT_BOOLEAN, 8, NULL, 0x40, |
4592 | 15 | "Bit 6: Reserved", HFILL }}, |
4593 | 15 | { &hf_s7comm_szl_0131_0007_funkt_0_7, |
4594 | 15 | { "Reserved", "s7comm.szl.0131.0007.funkt_0.bit7_res", FT_BOOLEAN, 8, NULL, 0x80, |
4595 | 15 | "Bit 7: Reserved", HFILL }}, |
4596 | 15 | { &hf_s7comm_szl_0131_0007_funkt_1, |
4597 | 15 | { "funkt_1 (Reserved)", "s7comm.szl.0131.0007.funkt_1", FT_UINT8, BASE_HEX, NULL, 0x0, |
4598 | 15 | NULL, HFILL }}, |
4599 | 15 | { &hf_s7comm_szl_0131_0007_obj_0, |
4600 | 15 | { "obj_0 (Addressable objects)", "s7comm.szl.0131.0007.obj_0", FT_UINT8, BASE_HEX, NULL, 0x0, |
4601 | 15 | NULL, HFILL }}, |
4602 | 15 | { &hf_s7comm_szl_0131_0007_obj_0_0, |
4603 | 15 | { "M", "s7comm.szl.0131.0007.obj_0.m", FT_BOOLEAN, 8, NULL, 0x01, |
4604 | 15 | "Bit 0: M", HFILL }}, |
4605 | 15 | { &hf_s7comm_szl_0131_0007_obj_0_1, |
4606 | 15 | { "PII", "s7comm.szl.0131.0007.obj_0.pii", FT_BOOLEAN, 8, NULL, 0x02, |
4607 | 15 | "Bit 1: PII", HFILL }}, |
4608 | 15 | { &hf_s7comm_szl_0131_0007_obj_0_2, |
4609 | 15 | { "PIQ", "s7comm.szl.0131.0007.obj_0.piq", FT_BOOLEAN, 8, NULL, 0x04, |
4610 | 15 | "Bit 2: PIQ", HFILL }}, |
4611 | 15 | { &hf_s7comm_szl_0131_0007_obj_0_3, |
4612 | 15 | { "T", "s7comm.szl.0131.0007.obj_0.t", FT_BOOLEAN, 8, NULL, 0x08, |
4613 | 15 | "Bit 3: T", HFILL }}, |
4614 | 15 | { &hf_s7comm_szl_0131_0007_obj_0_4, |
4615 | 15 | { "C", "s7comm.szl.0131.0007.obj_0.c", FT_BOOLEAN, 8, NULL, 0x10, |
4616 | 15 | "Bit 4: C", HFILL }}, |
4617 | 15 | { &hf_s7comm_szl_0131_0007_obj_0_5, |
4618 | 15 | { "DB", "s7comm.szl.0131.0007.obj_0.db", FT_BOOLEAN, 8, NULL, 0x20, |
4619 | 15 | "Bit 5: DB", HFILL }}, |
4620 | 15 | { &hf_s7comm_szl_0131_0007_obj_0_6, |
4621 | 15 | { "Reserved", "s7comm.szl.0131.0007.obj_0.bit6_res", FT_BOOLEAN, 8, NULL, 0x40, |
4622 | 15 | "Bit 6: Reserved", HFILL }}, |
4623 | 15 | { &hf_s7comm_szl_0131_0007_obj_0_7, |
4624 | 15 | { "Reserved", "s7comm.szl.0131.0007.obj_0.bit7_res", FT_BOOLEAN, 8, NULL, 0x80, |
4625 | 15 | "Bit 7: Reserved", HFILL }}, |
4626 | 15 | { &hf_s7comm_szl_0131_0007_obj_1, |
4627 | 15 | { "obj_1 (Reserved)", "s7comm.szl.0131.0007.obj_1", FT_UINT8, BASE_HEX, NULL, 0x0, |
4628 | 15 | NULL, HFILL }}, |
4629 | 15 | { &hf_s7comm_szl_0131_0007_kons, |
4630 | 15 | { "kons (Consistent length in bytes)", "s7comm.szl.0131.0007.kons", FT_UINT8, BASE_DEC, NULL, 0x0, |
4631 | 15 | NULL, HFILL }}, |
4632 | 15 | { &hf_s7comm_szl_0131_0007_sen, |
4633 | 15 | { "sen (Minimum scan rate for sending)", "s7comm.szl.0131.0007.sen", FT_UINT8, BASE_DEC, NULL, 0x0, |
4634 | 15 | NULL, HFILL }}, |
4635 | 15 | { &hf_s7comm_szl_0131_0007_rec, |
4636 | 15 | { "rec (Minimum scan rate for receiving)", "s7comm.szl.0131.0007.rec", FT_UINT8, BASE_DEC, NULL, 0x0, |
4637 | 15 | NULL, HFILL }}, |
4638 | 15 | { &hf_s7comm_szl_0131_0007_time, |
4639 | 15 | { "time (Time monitoring when receiving yes/no)", "s7comm.szl.0131.0007.time", FT_UINT8, BASE_DEC, NULL, 0x0, |
4640 | 15 | NULL, HFILL }}, |
4641 | 15 | { &hf_s7comm_szl_0131_0007_proj, |
4642 | 15 | { "proj (Re-configuration possible in RUN yes/no)", "s7comm.szl.0131.0007.proj", FT_UINT8, BASE_DEC, NULL, 0x0, |
4643 | 15 | NULL, HFILL }}, |
4644 | 15 | { &hf_s7comm_szl_0131_0007_alarm, |
4645 | 15 | { "alarm (Communication interrupt yes/no)", "s7comm.szl.0131.0007.alarm", FT_UINT8, BASE_DEC, NULL, 0x0, |
4646 | 15 | NULL, HFILL }}, |
4647 | 15 | { &hf_s7comm_szl_0131_0007_mode, |
4648 | 15 | { "mode", "s7comm.szl.0131.0007.mode", FT_UINT8, BASE_HEX, NULL, 0x0, |
4649 | 15 | "mode: Party line/MPI, communication bus", HFILL }}, |
4650 | 15 | { &hf_s7comm_szl_0131_0007_mode_0, |
4651 | 15 | { "Party line/MPI", "s7comm.szl.0131.0007.mode.pl_mpi", FT_BOOLEAN, 8, NULL, 0x01, |
4652 | 15 | "Bit 0: Party line/MPI", HFILL }}, |
4653 | 15 | { &hf_s7comm_szl_0131_0007_mode_1, |
4654 | 15 | { "Communication bus", "s7comm.szl.0131.0007.mode.comm_bus", FT_BOOLEAN, 8, NULL, 0x02, |
4655 | 15 | "Bit 1: Communication bus", HFILL }}, |
4656 | 15 | { &hf_s7comm_szl_0131_0007_kreis, |
4657 | 15 | { "kreis (Maximum number of GD groups of the CPU)", "s7comm.szl.0131.0007.kreis", FT_UINT8, BASE_DEC, NULL, 0x0, |
4658 | 15 | NULL, HFILL }}, |
4659 | 15 | { &hf_s7comm_szl_0131_0007_sk_1, |
4660 | 15 | { "sk_1 (Maximum number of GD packets to be sent per GD circle of the CPU)", "s7comm.szl.0131.0007.sk_1", FT_UINT8, BASE_DEC, NULL, 0x0, |
4661 | 15 | NULL, HFILL }}, |
4662 | 15 | { &hf_s7comm_szl_0131_0007_sk_2, |
4663 | 15 | { "sk_2 (Maximum number of GD packets to be sent for all GD circles of the CPU)", "s7comm.szl.0131.0007.sk_2", FT_UINT8, BASE_DEC, NULL, 0x0, |
4664 | 15 | NULL, HFILL }}, |
4665 | 15 | { &hf_s7comm_szl_0131_0007_ek_1, |
4666 | 15 | { "ek_1 (Maximum number of GD packets to be received per GD circle of the CPU)", "s7comm.szl.0131.0007.ek_1", FT_UINT8, BASE_DEC, NULL, 0x0, |
4667 | 15 | NULL, HFILL }}, |
4668 | 15 | { &hf_s7comm_szl_0131_0007_ek_2, |
4669 | 15 | { "ek_2 (Maximum number of GD packets to be received for all GD circles of the CPU)", "s7comm.szl.0131.0007.ek_2", FT_UINT8, BASE_DEC, NULL, 0x0, |
4670 | 15 | NULL, HFILL }}, |
4671 | 15 | { &hf_s7comm_szl_0131_0007_len_1, |
4672 | 15 | { "len_1 (Maximum length of a GD packet)", "s7comm.szl.0131.0007.len_1", FT_UINT8, BASE_DEC, NULL, 0x0, |
4673 | 15 | NULL, HFILL }}, |
4674 | 15 | { &hf_s7comm_szl_0131_0007_len_2, |
4675 | 15 | { "len_2 (Maximum length of a GD packet header)", "s7comm.szl.0131.0007.len_2", FT_UINT8, BASE_DEC, NULL, 0x0, |
4676 | 15 | NULL, HFILL }}, |
4677 | 15 | { &hf_s7comm_szl_0131_0007_len_3, |
4678 | 15 | { "len_3 (Length of the object description header)", "s7comm.szl.0131.0007.len_3", FT_UINT8, BASE_DEC, NULL, 0x0, |
4679 | 15 | NULL, HFILL }}, |
4680 | 15 | { &hf_s7comm_szl_0131_0007_res, |
4681 | 15 | { "res (Reserved)", "s7comm.szl.0131.0007.res", FT_BYTES, BASE_NONE, NULL, 0x0, |
4682 | 15 | NULL, HFILL }} |
4683 | 15 | }; |
4684 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
4685 | 15 | } |
4686 | | |
4687 | | /*----------------------------------------------------------------------------------------------------*/ |
4688 | | static uint32_t |
4689 | | s7comm_decode_szl_id_0131_idx_0007(tvbuff_t *tvb, |
4690 | | proto_tree *tree, |
4691 | | uint32_t offset) |
4692 | 0 | { |
4693 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0007_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
4694 | 0 | offset += 2; |
4695 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0007_funkt_0, |
4696 | 0 | ett_s7comm_szl_0131_0007_funkt_0, s7comm_szl_0131_0007_funkt_0_fields, ENC_BIG_ENDIAN); |
4697 | 0 | offset += 1; |
4698 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0007_funkt_1, tvb, offset, 1, ENC_BIG_ENDIAN); |
4699 | 0 | offset += 1; |
4700 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0007_obj_0, |
4701 | 0 | ett_s7comm_szl_0131_0007_obj_0, s7comm_szl_0131_0007_obj_0_fields, ENC_BIG_ENDIAN); |
4702 | 0 | offset += 1; |
4703 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0007_obj_1, tvb, offset, 1, ENC_BIG_ENDIAN); |
4704 | 0 | offset += 1; |
4705 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0007_kons, tvb, offset, 1, ENC_BIG_ENDIAN); |
4706 | 0 | offset += 1; |
4707 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0007_sen, tvb, offset, 1, ENC_BIG_ENDIAN); |
4708 | 0 | offset += 1; |
4709 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0007_rec, tvb, offset, 1, ENC_BIG_ENDIAN); |
4710 | 0 | offset += 1; |
4711 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0007_time, tvb, offset, 1, ENC_BIG_ENDIAN); |
4712 | 0 | offset += 1; |
4713 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0007_proj, tvb, offset, 1, ENC_BIG_ENDIAN); |
4714 | 0 | offset += 1; |
4715 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0007_alarm, tvb, offset, 1, ENC_BIG_ENDIAN); |
4716 | 0 | offset += 1; |
4717 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0007_mode, |
4718 | 0 | ett_s7comm_szl_0131_0007_mode, s7comm_szl_0131_0007_mode_fields, ENC_BIG_ENDIAN); |
4719 | 0 | offset += 1; |
4720 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0007_kreis, tvb, offset, 1, ENC_BIG_ENDIAN); |
4721 | 0 | offset += 1; |
4722 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0007_sk_1, tvb, offset, 1, ENC_BIG_ENDIAN); |
4723 | 0 | offset += 1; |
4724 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0007_sk_2, tvb, offset, 1, ENC_BIG_ENDIAN); |
4725 | 0 | offset += 1; |
4726 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0007_ek_1, tvb, offset, 1, ENC_BIG_ENDIAN); |
4727 | 0 | offset += 1; |
4728 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0007_ek_2, tvb, offset, 1, ENC_BIG_ENDIAN); |
4729 | 0 | offset += 1; |
4730 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0007_len_1, tvb, offset, 1, ENC_BIG_ENDIAN); |
4731 | 0 | offset += 1; |
4732 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0007_len_2, tvb, offset, 1, ENC_BIG_ENDIAN); |
4733 | 0 | offset += 1; |
4734 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0007_len_3, tvb, offset, 1, ENC_BIG_ENDIAN); |
4735 | 0 | offset += 1; |
4736 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0007_res, tvb, offset, 19, ENC_NA); |
4737 | 0 | offset += 19; |
4738 | |
|
4739 | 0 | return offset; |
4740 | 0 | } |
4741 | | |
4742 | | /******************************************************************************************************* |
4743 | | * |
4744 | | * SZL-ID: 0x0131 |
4745 | | * Index: 0x0008 |
4746 | | * Content: |
4747 | | * The partial list extract with SZL-ID W#16#0131 and the index W#16#0008 |
4748 | | * contains information about the time required for test and installation |
4749 | | * functions. |
4750 | | * |
4751 | | *******************************************************************************************************/ |
4752 | | static void |
4753 | | s7comm_szl_0131_0008_register(int proto) |
4754 | 15 | { |
4755 | 15 | static hf_register_info hf[] = { |
4756 | 15 | { &hf_s7comm_szl_0131_0008_index, |
4757 | 15 | { "Index", "s7comm.szl.0131.0008.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
4758 | 15 | "W#16#0008 Test and installation function time information", HFILL }}, |
4759 | | /* Time format: |
4760 | | * - Bit 0 to bit 11 contains the time value |
4761 | | * - Bit 12 to bit 15 contains the time base: 0=10e-10 sec, 1=10e-9 sec, 0xa = 10e0 sec, 0xf=10e5 sec |
4762 | | */ |
4763 | 15 | { &hf_s7comm_szl_0131_0008_last_1, |
4764 | 15 | { "last_1 (Basic overhead for status block) time value", "s7comm.szl.0131.0008.last_1", FT_UINT16, BASE_DEC, NULL, 0x0fff, |
4765 | 15 | NULL, HFILL }}, |
4766 | 15 | { &hf_s7comm_szl_0131_0008_last_1_tb, |
4767 | 15 | { "last_1 (Basic overhead for status block) time base", "s7comm.szl.0131.0008.last_1_tb", FT_UINT16, BASE_HEX, VALS(s7comm_szl_0131_0008_timebase_names), 0xf000, |
4768 | 15 | NULL, HFILL }}, |
4769 | 15 | { &hf_s7comm_szl_0131_0008_last_2, |
4770 | 15 | { "last_2 (Basic overhead for monitor variables) time value", "s7comm.szl.0131.0008.last_2", FT_UINT16, BASE_DEC, NULL, 0x0fff, |
4771 | 15 | NULL, HFILL }}, |
4772 | 15 | { &hf_s7comm_szl_0131_0008_last_2_tb, |
4773 | 15 | { "last_2 (Basic overhead for monitor variables) time base", "s7comm.szl.0131.0008.last_2_tb", FT_UINT16, BASE_HEX, VALS(s7comm_szl_0131_0008_timebase_names), 0xf000, |
4774 | 15 | NULL, HFILL }}, |
4775 | 15 | { &hf_s7comm_szl_0131_0008_last_3, |
4776 | 15 | { "last_3 (Basic overhead for modify variables) time value", "s7comm.szl.0131.0008.last_3", FT_UINT16, BASE_DEC, NULL, 0x0fff, |
4777 | 15 | NULL, HFILL }}, |
4778 | 15 | { &hf_s7comm_szl_0131_0008_last_3_tb, |
4779 | 15 | { "last_3 (Basic overhead for modify variables) time base", "s7comm.szl.0131.0008.last_3_tb", FT_UINT16, BASE_HEX, VALS(s7comm_szl_0131_0008_timebase_names), 0xf000, |
4780 | 15 | NULL, HFILL }}, |
4781 | 15 | { &hf_s7comm_szl_0131_0008_merker, |
4782 | 15 | { "merker (Time for one variable address 'memory bit') time value", "s7comm.szl.0131.0008.merker", FT_UINT16, BASE_DEC, NULL, 0x0fff, |
4783 | 15 | NULL, HFILL }}, |
4784 | 15 | { &hf_s7comm_szl_0131_0008_merker_tb, |
4785 | 15 | { "merker (Time for one variable address 'memory bit') time base", "s7comm.szl.0131.0008.merker_tb", FT_UINT16, BASE_HEX, VALS(s7comm_szl_0131_0008_timebase_names), 0xf000, |
4786 | 15 | NULL, HFILL }}, |
4787 | 15 | { &hf_s7comm_szl_0131_0008_ea, |
4788 | 15 | { "ea (Time for one variable address 'input' or 'output') time value", "s7comm.szl.0131.0008.ea", FT_UINT16, BASE_DEC, NULL, 0x0fff, |
4789 | 15 | NULL, HFILL }}, |
4790 | 15 | { &hf_s7comm_szl_0131_0008_ea_tb, |
4791 | 15 | { "ea (Time for one variable address 'input' or 'output') time base", "s7comm.szl.0131.0008.ea_tb", FT_UINT16, BASE_HEX, VALS(s7comm_szl_0131_0008_timebase_names), 0xf000, |
4792 | 15 | NULL, HFILL }}, |
4793 | 15 | { &hf_s7comm_szl_0131_0008_tz, |
4794 | 15 | { "tz (Time for one variable address 'timer' or 'counter') time value", "s7comm.szl.0131.0008.tz", FT_UINT16, BASE_DEC, NULL, 0x0fff, |
4795 | 15 | NULL, HFILL }}, |
4796 | 15 | { &hf_s7comm_szl_0131_0008_tz_tb, |
4797 | 15 | { "tz (Time for one variable address 'timer' or 'counter') time base", "s7comm.szl.0131.0008.tz_tb", FT_UINT16, BASE_HEX, VALS(s7comm_szl_0131_0008_timebase_names), 0xf000, |
4798 | 15 | NULL, HFILL }}, |
4799 | 15 | { &hf_s7comm_szl_0131_0008_db, |
4800 | 15 | { "db (Time for one variable address 'data block DB') time value", "s7comm.szl.0131.0008.db", FT_UINT16, BASE_DEC, NULL, 0x0fff, |
4801 | 15 | NULL, HFILL }}, |
4802 | 15 | { &hf_s7comm_szl_0131_0008_db_tb, |
4803 | 15 | { "db (Time for one variable address 'data block DB') time base", "s7comm.szl.0131.0008.db_tb", FT_UINT16, BASE_HEX, VALS(s7comm_szl_0131_0008_timebase_names), 0xf000, |
4804 | 15 | NULL, HFILL }}, |
4805 | 15 | { &hf_s7comm_szl_0131_0008_ld, |
4806 | 15 | { "ld (Time for one variable address 'ADB' or 'local data') time value", "s7comm.szl.0131.0008.ld", FT_UINT16, BASE_DEC, NULL, 0x0fff, |
4807 | 15 | NULL, HFILL }}, |
4808 | 15 | { &hf_s7comm_szl_0131_0008_ld_tb, |
4809 | 15 | { "ld (Time for one variable address 'ADB' or 'local data') time base", "s7comm.szl.0131.0008.ld_tb", FT_UINT16, BASE_HEX, VALS(s7comm_szl_0131_0008_timebase_names), 0xf000, |
4810 | 15 | NULL, HFILL }}, |
4811 | 15 | { &hf_s7comm_szl_0131_0008_reg, |
4812 | 15 | { "reg (Time for one variable address 'register') time value", "s7comm.szl.0131.0008.reg", FT_UINT16, BASE_DEC, NULL, 0x0fff, |
4813 | 15 | NULL, HFILL }}, |
4814 | 15 | { &hf_s7comm_szl_0131_0008_reg_tb, |
4815 | 15 | { "reg (Time for one variable address 'register') time base", "s7comm.szl.0131.0008.reg_tb", FT_UINT16, BASE_HEX, VALS(s7comm_szl_0131_0008_timebase_names), 0xf000, |
4816 | 15 | NULL, HFILL }}, |
4817 | 15 | { &hf_s7comm_szl_0131_0008_ba_stali1, |
4818 | 15 | { "ba_stali1 (Basic time for a status list ID of group 1) time value", "s7comm.szl.0131.0008.ba_stali1", FT_UINT16, BASE_DEC, NULL, 0x0fff, |
4819 | 15 | NULL, HFILL }}, |
4820 | 15 | { &hf_s7comm_szl_0131_0008_ba_stali1_tb, |
4821 | 15 | { "ba_stali1 (Basic time for a status list ID of group 1) time base", "s7comm.szl.0131.0008.ba_stali1_tb", FT_UINT16, BASE_HEX, VALS(s7comm_szl_0131_0008_timebase_names), 0xf000, |
4822 | 15 | NULL, HFILL }}, |
4823 | 15 | { &hf_s7comm_szl_0131_0008_ba_stali2, |
4824 | 15 | { "ba_stali2 (Basic time for a status list ID of group 2) time value", "s7comm.szl.0131.0008.ba_stali2", FT_UINT16, BASE_DEC, NULL, 0x0fff, |
4825 | 15 | NULL, HFILL }}, |
4826 | 15 | { &hf_s7comm_szl_0131_0008_ba_stali2_tb, |
4827 | 15 | { "ba_stali2 (Basic time for a status list ID of group 2) time base", "s7comm.szl.0131.0008.ba_stali2_tb", FT_UINT16, BASE_HEX, VALS(s7comm_szl_0131_0008_timebase_names), 0xf000, |
4828 | 15 | NULL, HFILL }}, |
4829 | 15 | { &hf_s7comm_szl_0131_0008_ba_stali3, |
4830 | 15 | { "ba_stali3 (Basic time for a status list ID of group 3) time value", "s7comm.szl.0131.0008.ba_stali3", FT_UINT16, BASE_DEC, NULL, 0x0fff, |
4831 | 15 | NULL, HFILL }}, |
4832 | 15 | { &hf_s7comm_szl_0131_0008_ba_stali3_tb, |
4833 | 15 | { "ba_stali3 (Basic time for a status list ID of group 3) time base", "s7comm.szl.0131.0008.ba_stali3_tb", FT_UINT16, BASE_HEX, VALS(s7comm_szl_0131_0008_timebase_names), 0xf000, |
4834 | 15 | NULL, HFILL }}, |
4835 | 15 | { &hf_s7comm_szl_0131_0008_akku, |
4836 | 15 | { "akku (Accumulators added to basic time when ACCU 1, 2 addressed) time value", "s7comm.szl.0131.0008.akku", FT_UINT16, BASE_DEC, NULL, 0x0fff, |
4837 | 15 | NULL, HFILL }}, |
4838 | 15 | { &hf_s7comm_szl_0131_0008_akku_tb, |
4839 | 15 | { "akku (Accumulators added to basic time when ACCU 1, 2 addressed) time base", "s7comm.szl.0131.0008.akku_tb", FT_UINT16, BASE_HEX, VALS(s7comm_szl_0131_0008_timebase_names), 0xf000, |
4840 | 15 | NULL, HFILL }}, |
4841 | 15 | { &hf_s7comm_szl_0131_0008_address, |
4842 | 15 | { "address (Address register added to basic time when AR 1 or AR 2 addressed) time value", "s7comm.szl.0131.0008.address", FT_UINT16, BASE_DEC, NULL, 0x0fff, |
4843 | 15 | NULL, HFILL }}, |
4844 | 15 | { &hf_s7comm_szl_0131_0008_address_tb, |
4845 | 15 | { "address (Address register added to basic time when AR 1 or AR 2 addressed) time base", "s7comm.szl.0131.0008.address_tb", FT_UINT16, BASE_HEX, VALS(s7comm_szl_0131_0008_timebase_names), 0xf000, |
4846 | 15 | NULL, HFILL }}, |
4847 | 15 | { &hf_s7comm_szl_0131_0008_dbreg, |
4848 | 15 | { "dbreg (DB register added to basic time when DB register addressed) time value", "s7comm.szl.0131.0008.dbreg", FT_UINT16, BASE_DEC, NULL, 0x0fff, |
4849 | 15 | NULL, HFILL }}, |
4850 | 15 | { &hf_s7comm_szl_0131_0008_dbreg_tb, |
4851 | 15 | { "dbreg (DB register added to basic time when DB register addressed) time base", "s7comm.szl.0131.0008.dbreg_tb", FT_UINT16, BASE_HEX, VALS(s7comm_szl_0131_0008_timebase_names), 0xf000, |
4852 | 15 | NULL, HFILL }}, |
4853 | 15 | { &hf_s7comm_szl_0131_0008_res, |
4854 | 15 | { "res (Reserved)", "s7comm.szl.0131.0008.res", FT_BYTES, BASE_NONE, NULL, 0x0, |
4855 | 15 | NULL, HFILL }} |
4856 | 15 | }; |
4857 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
4858 | 15 | } |
4859 | | |
4860 | | /*----------------------------------------------------------------------------------------------------*/ |
4861 | | static uint32_t |
4862 | | s7comm_decode_szl_id_0131_idx_0008(tvbuff_t *tvb, |
4863 | | proto_tree *tree, |
4864 | | uint32_t offset) |
4865 | 0 | { |
4866 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
4867 | 0 | offset += 2; |
4868 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_last_1, tvb, offset, 2, ENC_BIG_ENDIAN); |
4869 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_last_1_tb, tvb, offset, 2, ENC_BIG_ENDIAN); |
4870 | 0 | offset += 2; |
4871 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_last_2, tvb, offset, 2, ENC_BIG_ENDIAN); |
4872 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_last_2_tb, tvb, offset, 2, ENC_BIG_ENDIAN); |
4873 | 0 | offset += 2; |
4874 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_last_3, tvb, offset, 2, ENC_BIG_ENDIAN); |
4875 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_last_3_tb, tvb, offset, 2, ENC_BIG_ENDIAN); |
4876 | 0 | offset += 2; |
4877 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_merker, tvb, offset, 2, ENC_BIG_ENDIAN); |
4878 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_merker_tb, tvb, offset, 2, ENC_BIG_ENDIAN); |
4879 | 0 | offset += 2; |
4880 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_ea, tvb, offset, 2, ENC_BIG_ENDIAN); |
4881 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_ea_tb, tvb, offset, 2, ENC_BIG_ENDIAN); |
4882 | 0 | offset += 2; |
4883 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_tz, tvb, offset, 2, ENC_BIG_ENDIAN); |
4884 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_tz_tb, tvb, offset, 2, ENC_BIG_ENDIAN); |
4885 | 0 | offset += 2; |
4886 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_db, tvb, offset, 2, ENC_BIG_ENDIAN); |
4887 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_db_tb, tvb, offset, 2, ENC_BIG_ENDIAN); |
4888 | 0 | offset += 2; |
4889 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_ld, tvb, offset, 2, ENC_BIG_ENDIAN); |
4890 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_ld_tb, tvb, offset, 2, ENC_BIG_ENDIAN); |
4891 | 0 | offset += 2; |
4892 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_reg, tvb, offset, 2, ENC_BIG_ENDIAN); |
4893 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_reg_tb, tvb, offset, 2, ENC_BIG_ENDIAN); |
4894 | 0 | offset += 2; |
4895 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_ba_stali1, tvb, offset, 2, ENC_BIG_ENDIAN); |
4896 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_ba_stali1_tb, tvb, offset, 2, ENC_BIG_ENDIAN); |
4897 | 0 | offset += 2; |
4898 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_ba_stali2, tvb, offset, 2, ENC_BIG_ENDIAN); |
4899 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_ba_stali2_tb, tvb, offset, 2, ENC_BIG_ENDIAN); |
4900 | 0 | offset += 2; |
4901 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_ba_stali3, tvb, offset, 2, ENC_BIG_ENDIAN); |
4902 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_ba_stali3_tb, tvb, offset, 2, ENC_BIG_ENDIAN); |
4903 | 0 | offset += 2; |
4904 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_akku, tvb, offset, 2, ENC_BIG_ENDIAN); |
4905 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_akku_tb, tvb, offset, 2, ENC_BIG_ENDIAN); |
4906 | 0 | offset += 2; |
4907 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_address, tvb, offset, 2, ENC_BIG_ENDIAN); |
4908 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_address_tb, tvb, offset, 2, ENC_BIG_ENDIAN); |
4909 | 0 | offset += 2; |
4910 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_dbreg, tvb, offset, 2, ENC_BIG_ENDIAN); |
4911 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_dbreg_tb, tvb, offset, 2, ENC_BIG_ENDIAN); |
4912 | 0 | offset += 2; |
4913 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0008_res, tvb, offset, 8, ENC_NA); |
4914 | 0 | offset += 8; |
4915 | |
|
4916 | 0 | return offset; |
4917 | 0 | } |
4918 | | |
4919 | | /******************************************************************************************************* |
4920 | | * |
4921 | | * SZL-ID: 0x0131 |
4922 | | * Index: 0x0009 |
4923 | | * Content: |
4924 | | * The partial list extract with SZL-ID W#16#0131 and the index W#16#0009 |
4925 | | * contains time-of-day capability parameters. |
4926 | | * |
4927 | | *******************************************************************************************************/ |
4928 | | static void |
4929 | | s7comm_szl_0131_0009_register(int proto) |
4930 | 15 | { |
4931 | 15 | static hf_register_info hf[] = { |
4932 | 15 | { &hf_s7comm_szl_0131_0009_index, |
4933 | 15 | { "Index", "s7comm.szl.0131.0009.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
4934 | 15 | "W#16#0009 Time-of-day capability", HFILL }}, |
4935 | 15 | { &hf_s7comm_szl_0131_0009_sync_k, |
4936 | 15 | { "sync_k (Time synchronization C bus)", "s7comm.szl.0131.0009.sync_k", FT_UINT8, BASE_HEX, NULL, 0x0, |
4937 | 15 | NULL, HFILL }}, |
4938 | 15 | { &hf_s7comm_szl_0131_0009_sync_k_0, |
4939 | 15 | { "Time-of-day synchronization neutral", "s7comm.szl.0131.0009.sync_k.neutral", FT_BOOLEAN, 8, NULL, 0x01, |
4940 | 15 | "Bit 0: Time-of-day synchronization neutral", HFILL }}, |
4941 | 15 | { &hf_s7comm_szl_0131_0009_sync_k_1, |
4942 | 15 | { "Capable of being slave for time-of-day synchronization", "s7comm.szl.0131.0009.sync_k.slave", FT_BOOLEAN, 8, NULL, 0x02, |
4943 | 15 | "Bit 1: Capable of being slave for time-of-day synchronization", HFILL }}, |
4944 | 15 | { &hf_s7comm_szl_0131_0009_sync_k_2, |
4945 | 15 | { "Capable of being master for time-of-day synchronization", "s7comm.szl.0131.0009.sync_k.master", FT_BOOLEAN, 8, NULL, 0x04, |
4946 | 15 | "Bit 2: Capable of being master for time-of-day synchronization", HFILL }}, |
4947 | 15 | { &hf_s7comm_szl_0131_0009_sync_mpi, |
4948 | 15 | { "sync_mpi (Time synchronization via MPI)", "s7comm.szl.0131.0009.sync_mpi", FT_UINT8, BASE_HEX, NULL, 0x0, |
4949 | 15 | NULL, HFILL }}, |
4950 | 15 | { &hf_s7comm_szl_0131_0009_sync_mpi_0, |
4951 | 15 | { "Time-of-day synchronization neutral", "s7comm.szl.0131.0009.sync_mpi.neutral", FT_BOOLEAN, 8, NULL, 0x01, |
4952 | 15 | "Bit 0: Time-of-day synchronization neutral", HFILL }}, |
4953 | 15 | { &hf_s7comm_szl_0131_0009_sync_mpi_1, |
4954 | 15 | { "Capable of being slave for time-of-day synchronization", "s7comm.szl.0131.0009.sync_mpi.slave", FT_BOOLEAN, 8, NULL, 0x02, |
4955 | 15 | "Bit 1: Capable of being slave for time-of-day synchronization", HFILL }}, |
4956 | 15 | { &hf_s7comm_szl_0131_0009_sync_mpi_2, |
4957 | 15 | { "Capable of being master for time-of-day synchronization", "s7comm.szl.0131.0009.sync_mpi.master", FT_BOOLEAN, 8, NULL, 0x04, |
4958 | 15 | "Bit 2: Capable of being master for time-of-day synchronization", HFILL }}, |
4959 | 15 | { &hf_s7comm_szl_0131_0009_sync_mfi, |
4960 | 15 | { "sync_k (Time synchronization via MFI)", "s7comm.szl.0131.0009.sync_mfi", FT_UINT8, BASE_HEX, NULL, 0x0, |
4961 | 15 | NULL, HFILL }}, |
4962 | 15 | { &hf_s7comm_szl_0131_0009_sync_mfi_0, |
4963 | 15 | { "Time-of-day synchronization neutral", "s7comm.szl.0131.0009.sync_mfi.neutral", FT_BOOLEAN, 8, NULL, 0x01, |
4964 | 15 | "Bit 0: Time-of-day synchronization neutral", HFILL }}, |
4965 | 15 | { &hf_s7comm_szl_0131_0009_sync_mfi_1, |
4966 | 15 | { "Capable of being slave for time-of-day synchronization", "s7comm.szl.0131.0009.sync_mfi.slave", FT_BOOLEAN, 8, NULL, 0x02, |
4967 | 15 | "Bit 1: Capable of being slave for time-of-day synchronization", HFILL }}, |
4968 | 15 | { &hf_s7comm_szl_0131_0009_sync_mfi_2, |
4969 | 15 | { "Capable of being master for time-of-day synchronization", "s7comm.szl.0131.0009.sync_mfi.master", FT_BOOLEAN, 8, NULL, 0x04, |
4970 | 15 | "Bit 2: Capable of being master for time-of-day synchronization", HFILL }}, |
4971 | 15 | { &hf_s7comm_szl_0131_0009_res1, |
4972 | 15 | { "res1 (Reserved)", "s7comm.szl.0131.0009.res1", FT_UINT8, BASE_HEX, NULL, 0x0, |
4973 | 15 | NULL, HFILL }}, |
4974 | 15 | { &hf_s7comm_szl_0131_0009_abw_puf, |
4975 | 15 | { "abw_puf (Clock deviation in ms/day when backed up)", "s7comm.szl.0131.0009.abw_puf", FT_UINT16, BASE_DEC, NULL, 0x0, |
4976 | 15 | NULL, HFILL }}, |
4977 | 15 | { &hf_s7comm_szl_0131_0009_abw_5v, |
4978 | 15 | { "abw_5v (Clock deviation in ms/day in 5V operation)", "s7comm.szl.0131.0009.abw_5v", FT_UINT16, BASE_DEC, NULL, 0x0, |
4979 | 15 | NULL, HFILL }}, |
4980 | 15 | { &hf_s7comm_szl_0131_0009_anz_bsz, |
4981 | 15 | { "anz_bsz (Number of run-time meters)", "s7comm.szl.0131.0009.anz_bsz", FT_UINT16, BASE_DEC, NULL, 0x0, |
4982 | 15 | NULL, HFILL }}, |
4983 | 15 | { &hf_s7comm_szl_0131_0009_res2, |
4984 | 15 | { "res2 (Reserved)", "s7comm.szl.0131.0009.res2", FT_BYTES, BASE_NONE, NULL, 0x0, |
4985 | 15 | NULL, HFILL }} |
4986 | 15 | }; |
4987 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
4988 | 15 | } |
4989 | | |
4990 | | /*----------------------------------------------------------------------------------------------------*/ |
4991 | | static uint32_t |
4992 | | s7comm_decode_szl_id_0131_idx_0009(tvbuff_t *tvb, |
4993 | | proto_tree *tree, |
4994 | | uint32_t offset) |
4995 | 0 | { |
4996 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0009_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
4997 | 0 | offset += 2; |
4998 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0009_sync_k, |
4999 | 0 | ett_s7comm_szl_0131_0009_sync_k, s7comm_szl_0131_0009_sync_k_fields, ENC_BIG_ENDIAN); |
5000 | 0 | offset += 1; |
5001 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0009_sync_mpi, |
5002 | 0 | ett_s7comm_szl_0131_0009_sync_mpi, s7comm_szl_0131_0009_sync_mpi_fields, ENC_BIG_ENDIAN); |
5003 | 0 | offset += 1; |
5004 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0009_sync_mfi, |
5005 | 0 | ett_s7comm_szl_0131_0009_sync_mfi, s7comm_szl_0131_0009_sync_mfi_fields, ENC_BIG_ENDIAN); |
5006 | 0 | offset += 1; |
5007 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0009_res1, tvb, offset, 1, ENC_BIG_ENDIAN); |
5008 | 0 | offset += 1; |
5009 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0009_abw_puf, tvb, offset, 2, ENC_BIG_ENDIAN); |
5010 | 0 | offset += 2; |
5011 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0009_abw_5v, tvb, offset, 2, ENC_BIG_ENDIAN); |
5012 | 0 | offset += 2; |
5013 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0009_anz_bsz, tvb, offset, 2, ENC_BIG_ENDIAN); |
5014 | 0 | offset += 2; |
5015 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0009_res2, tvb, offset, 28, ENC_NA); |
5016 | 0 | offset += 28; |
5017 | |
|
5018 | 0 | return offset; |
5019 | 0 | } |
5020 | | |
5021 | | /******************************************************************************************************* |
5022 | | * |
5023 | | * SZL-ID: 0x0131 |
5024 | | * Index: 0x0010 |
5025 | | * Content: |
5026 | | * The partial list extract with SZL-ID W#16#0131 and index W#16#0010 |
5027 | | * contains message parameters. |
5028 | | * |
5029 | | *******************************************************************************************************/ |
5030 | | static void |
5031 | | s7comm_szl_0131_0010_register(int proto) |
5032 | 15 | { |
5033 | 15 | static hf_register_info hf[] = { |
5034 | 15 | { &hf_s7comm_szl_0131_0010_index, |
5035 | 15 | { "Index", "s7comm.szl.0131.0010.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
5036 | 15 | "W#16#0010 Message parameter", HFILL }}, |
5037 | 15 | { &hf_s7comm_szl_0131_0010_funk_1, |
5038 | 15 | { "funk_1", "s7comm.szl.0131.0010.funk_1", FT_UINT8, BASE_HEX, NULL, 0x0, |
5039 | 15 | "Block types available for data exchange with communication SFBs for configured connections", HFILL }}, |
5040 | 15 | { &hf_s7comm_szl_0131_0010_funk_1_0, |
5041 | 15 | { "Bit 0: Group status messages exist", "s7comm.szl.0131.0010.funk_1.grp_status_msg", FT_BOOLEAN, 8, NULL, 0x01, |
5042 | 15 | NULL, HFILL }}, |
5043 | 15 | { &hf_s7comm_szl_0131_0010_funk_1_1, |
5044 | 15 | { "Bit 1: Scan possible", "s7comm.szl.0131.0010.funk_1.scan_possible", FT_BOOLEAN, 8, NULL, 0x02, |
5045 | 15 | NULL, HFILL }}, |
5046 | 15 | { &hf_s7comm_szl_0131_0010_funk_1_2, |
5047 | 15 | { "Bit 2: NOTIFY, ALARM, ALARM_8P, ALARM_8, (multicast) possible", "s7comm.szl.0131.0010.funk_1.notify_alarm", FT_BOOLEAN, 8, NULL, 0x04, |
5048 | 15 | NULL, HFILL }}, |
5049 | 15 | { &hf_s7comm_szl_0131_0010_funk_1_3, |
5050 | 15 | { "Bit 3: Sending archive data possible", "s7comm.szl.0131.0010.funk_1.send_arc", FT_BOOLEAN, 8, NULL, 0x08, |
5051 | 15 | NULL, HFILL }}, |
5052 | 15 | { &hf_s7comm_szl_0131_0010_funk_1_4, |
5053 | 15 | { "Bit 4: Reserved", "s7comm.szl.0131.0010.funk_1.bit4_res", FT_BOOLEAN, 8, NULL, 0x10, |
5054 | 15 | NULL, HFILL }}, |
5055 | 15 | { &hf_s7comm_szl_0131_0010_funk_1_5, |
5056 | 15 | { "Bit 5: Reserved", "s7comm.szl.0131.0010.funk_1.bit5_res", FT_BOOLEAN, 8, NULL, 0x20, |
5057 | 15 | NULL, HFILL }}, |
5058 | 15 | { &hf_s7comm_szl_0131_0010_funk_1_6, |
5059 | 15 | { "Bit 6: Reserved", "s7comm.szl.0131.0010.funk_1.bit6_res", FT_BOOLEAN, 8, NULL, 0x40, |
5060 | 15 | NULL, HFILL }}, |
5061 | 15 | { &hf_s7comm_szl_0131_0010_funk_1_7, |
5062 | 15 | { "Bit 7: Reserved", "s7comm.szl.0131.0010.funk_1.bit7_res", FT_BOOLEAN, 8, NULL, 0x80, |
5063 | 15 | NULL, HFILL }}, |
5064 | 15 | { &hf_s7comm_szl_0131_0010_funk_2, |
5065 | 15 | { "funk_2", "s7comm.szl.0131.0010.funk_2", FT_UINT8, BASE_HEX, NULL, 0x0, |
5066 | 15 | "Reserved", HFILL }}, |
5067 | 15 | { &hf_s7comm_szl_0131_0010_ber_meld_1, |
5068 | 15 | { "ber_meld_1", "s7comm.szl.0131.0010.ber_meld_1", FT_UINT8, BASE_HEX, NULL, 0x0, |
5069 | 15 | "Permitted address areas for messages (SCAN)", HFILL }}, |
5070 | 15 | { &hf_s7comm_szl_0131_0010_ber_meld_1_0, |
5071 | 15 | { "Bit 0: PII", "s7comm.szl.0131.0010.ber_meld_1.pii", FT_BOOLEAN, 8, NULL, 0x01, |
5072 | 15 | NULL, HFILL }}, |
5073 | 15 | { &hf_s7comm_szl_0131_0010_ber_meld_1_1, |
5074 | 15 | { "Bit 1: PIQ", "s7comm.szl.0131.0010.ber_meld_1.piq", FT_BOOLEAN, 8, NULL, 0x02, |
5075 | 15 | NULL, HFILL }}, |
5076 | 15 | { &hf_s7comm_szl_0131_0010_ber_meld_1_2, |
5077 | 15 | { "Bit 2: M", "s7comm.szl.0131.0010.ber_meld_1.m", FT_BOOLEAN, 8, NULL, 0x04, |
5078 | 15 | NULL, HFILL }}, |
5079 | 15 | { &hf_s7comm_szl_0131_0010_ber_meld_1_3, |
5080 | 15 | { "Bit 3: DB", "s7comm.szl.0131.0010.ber_meld_1.db", FT_BOOLEAN, 8, NULL, 0x08, |
5081 | 15 | NULL, HFILL }}, |
5082 | 15 | { &hf_s7comm_szl_0131_0010_ber_meld_1_4, |
5083 | 15 | { "Bit 4: Reserved", "s7comm.szl.0131.0010.ber_meld_1.bit4_res", FT_BOOLEAN, 8, NULL, 0x10, |
5084 | 15 | NULL, HFILL }}, |
5085 | 15 | { &hf_s7comm_szl_0131_0010_ber_meld_1_5, |
5086 | 15 | { "Bit 5: Reserved", "s7comm.szl.0131.0010.ber_meld_1.bit5_res", FT_BOOLEAN, 8, NULL, 0x20, |
5087 | 15 | NULL, HFILL }}, |
5088 | 15 | { &hf_s7comm_szl_0131_0010_ber_meld_1_6, |
5089 | 15 | { "Bit 6: Reserved", "s7comm.szl.0131.0010.ber_meld_1.bit6_res", FT_BOOLEAN, 8, NULL, 0x40, |
5090 | 15 | NULL, HFILL }}, |
5091 | 15 | { &hf_s7comm_szl_0131_0010_ber_meld_1_7, |
5092 | 15 | { "Bit 7: Reserved", "s7comm.szl.0131.0010.ber_meld_1.bit7_res", FT_BOOLEAN, 8, NULL, 0x80, |
5093 | 15 | NULL, HFILL }}, |
5094 | 15 | { &hf_s7comm_szl_0131_0010_ber_meld_2, |
5095 | 15 | { "ber_meld_2", "s7comm.szl.0131.0010.ber_meld_2", FT_UINT8, BASE_HEX, NULL, 0x0, |
5096 | 15 | "Reserved", HFILL }}, |
5097 | 15 | { &hf_s7comm_szl_0131_0010_ber_zus_1, |
5098 | 15 | { "ber_zus_1", "s7comm.szl.0131.0010.ber_zus_1", FT_UINT8, BASE_HEX, NULL, 0x0, |
5099 | 15 | "Permitted address areas for messages (SCAN)", HFILL }}, |
5100 | 15 | { &hf_s7comm_szl_0131_0010_ber_zus_1_0, |
5101 | 15 | { "Bit 0: PII", "s7comm.szl.0131.0010.ber_zus_1.pii", FT_BOOLEAN, 8, NULL, 0x01, |
5102 | 15 | NULL, HFILL }}, |
5103 | 15 | { &hf_s7comm_szl_0131_0010_ber_zus_1_1, |
5104 | 15 | { "Bit 1: PIQ", "s7comm.szl.0131.0010.ber_zus_1.piq", FT_BOOLEAN, 8, NULL, 0x02, |
5105 | 15 | NULL, HFILL }}, |
5106 | 15 | { &hf_s7comm_szl_0131_0010_ber_zus_1_2, |
5107 | 15 | { "Bit 2: M", "s7comm.szl.0131.0010.ber_zus_1.m", FT_BOOLEAN, 8, NULL, 0x04, |
5108 | 15 | NULL, HFILL }}, |
5109 | 15 | { &hf_s7comm_szl_0131_0010_ber_zus_1_3, |
5110 | 15 | { "Bit 3: DB", "s7comm.szl.0131.0010.ber_zus_1.db", FT_BOOLEAN, 8, NULL, 0x08, |
5111 | 15 | NULL, HFILL }}, |
5112 | 15 | { &hf_s7comm_szl_0131_0010_ber_zus_1_4, |
5113 | 15 | { "Bit 4: Reserved", "s7comm.szl.0131.0010.ber_zus_1.bit4_res", FT_BOOLEAN, 8, NULL, 0x10, |
5114 | 15 | NULL, HFILL }}, |
5115 | 15 | { &hf_s7comm_szl_0131_0010_ber_zus_1_5, |
5116 | 15 | { "Bit 5: Reserved", "s7comm.szl.0131.0010.ber_zus_1.bit5_res", FT_BOOLEAN, 8, NULL, 0x20, |
5117 | 15 | NULL, HFILL }}, |
5118 | 15 | { &hf_s7comm_szl_0131_0010_ber_zus_1_6, |
5119 | 15 | { "Bit 6: Reserved", "s7comm.szl.0131.0010.ber_zus_1.bit6_res", FT_BOOLEAN, 8, NULL, 0x40, |
5120 | 15 | NULL, HFILL }}, |
5121 | 15 | { &hf_s7comm_szl_0131_0010_ber_zus_1_7, |
5122 | 15 | { "Bit 7: Reserved", "s7comm.szl.0131.0010.ber_zus_1.bit7_res", FT_BOOLEAN, 8, NULL, 0x80, |
5123 | 15 | NULL, HFILL }}, |
5124 | 15 | { &hf_s7comm_szl_0131_0010_ber_zus_2, |
5125 | 15 | { "ber_zus_2", "s7comm.szl.0131.0010.ber_zus_2", FT_UINT8, BASE_HEX, NULL, 0x0, |
5126 | 15 | "Reserved", HFILL }}, |
5127 | 15 | { &hf_s7comm_szl_0131_0010_typ_zus_1, |
5128 | 15 | { "typ_zus_1", "s7comm.szl.0131.0010.typ_zus_1", FT_UINT8, BASE_HEX, NULL, 0x0, |
5129 | 15 | "Permitted data types for additional values (SCAN)", HFILL }}, |
5130 | 15 | { &hf_s7comm_szl_0131_0010_typ_zus_1_0, |
5131 | 15 | { "Bit 0: Bit", "s7comm.szl.0131.0010.typ_zus_1.bit", FT_BOOLEAN, 8, NULL, 0x01, |
5132 | 15 | NULL, HFILL }}, |
5133 | 15 | { &hf_s7comm_szl_0131_0010_typ_zus_1_1, |
5134 | 15 | { "Bit 1: Byte", "s7comm.szl.0131.0010.typ_zus_1.byte", FT_BOOLEAN, 8, NULL, 0x02, |
5135 | 15 | NULL, HFILL }}, |
5136 | 15 | { &hf_s7comm_szl_0131_0010_typ_zus_1_2, |
5137 | 15 | { "Bit 2: Word", "s7comm.szl.0131.0010.typ_zus_1.word", FT_BOOLEAN, 8, NULL, 0x04, |
5138 | 15 | NULL, HFILL }}, |
5139 | 15 | { &hf_s7comm_szl_0131_0010_typ_zus_1_3, |
5140 | 15 | { "Bit 3: DWord", "s7comm.szl.0131.0010.typ_zus_1.dword", FT_BOOLEAN, 8, NULL, 0x08, |
5141 | 15 | NULL, HFILL }}, |
5142 | 15 | { &hf_s7comm_szl_0131_0010_typ_zus_1_4, |
5143 | 15 | { "Bit 4: Timer", "s7comm.szl.0131.0010.typ_zus_1.timer", FT_BOOLEAN, 8, NULL, 0x10, |
5144 | 15 | NULL, HFILL }}, |
5145 | 15 | { &hf_s7comm_szl_0131_0010_typ_zus_1_5, |
5146 | 15 | { "Bit 5: Counter", "s7comm.szl.0131.0010.typ_zus_1.counter", FT_BOOLEAN, 8, NULL, 0x20, |
5147 | 15 | NULL, HFILL }}, |
5148 | 15 | { &hf_s7comm_szl_0131_0010_typ_zus_1_6, |
5149 | 15 | { "Bit 6: Array of char[16]", "s7comm.szl.0131.0010.typ_zus_1.array_char", FT_BOOLEAN, 8, NULL, 0x40, |
5150 | 15 | NULL, HFILL }}, |
5151 | 15 | { &hf_s7comm_szl_0131_0010_typ_zus_1_7, |
5152 | 15 | { "Bit 7: Reserved", "s7comm.szl.0131.0010.typ_zus_1.bit7_res", FT_BOOLEAN, 8, NULL, 0x80, |
5153 | 15 | NULL, HFILL }}, |
5154 | 15 | { &hf_s7comm_szl_0131_0010_typ_zus_2, |
5155 | 15 | { "typ_zus_2", "s7comm.szl.0131.0010.typ_zus_2", FT_UINT8, BASE_HEX, NULL, 0x0, |
5156 | 15 | "Reserved", HFILL }}, |
5157 | 15 | { &hf_s7comm_szl_0131_0010_maxanz_arch, |
5158 | 15 | { "maxanz_arch (Maximum number of archives for 'Send Archive')", "s7comm.szl.0132.0010.maxanz_arch", FT_UINT16, BASE_DEC, NULL, 0x0, |
5159 | 15 | NULL, HFILL }}, |
5160 | 15 | { &hf_s7comm_szl_0131_0010_res, |
5161 | 15 | { "res (Reserved)", "s7comm.szl.0131.0010.res", FT_BYTES, BASE_NONE, NULL, 0x0, |
5162 | 15 | NULL, HFILL }} |
5163 | 15 | }; |
5164 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
5165 | 15 | } |
5166 | | |
5167 | | /*----------------------------------------------------------------------------------------------------*/ |
5168 | | static uint32_t |
5169 | | s7comm_decode_szl_id_0131_idx_0010(tvbuff_t *tvb, |
5170 | | proto_tree *tree, |
5171 | | uint32_t offset) |
5172 | 0 | { |
5173 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0010_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
5174 | 0 | offset += 2; |
5175 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0010_funk_1, |
5176 | 0 | ett_s7comm_szl_0131_0010_funk_1, s7comm_szl_0131_0010_funk_1_fields, ENC_BIG_ENDIAN); |
5177 | 0 | offset += 1; |
5178 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0010_funk_2, tvb, offset, 1, ENC_BIG_ENDIAN); |
5179 | 0 | offset += 1; |
5180 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0010_ber_meld_1, |
5181 | 0 | ett_s7comm_szl_0131_0010_ber_meld_1, s7comm_szl_0131_0010_ber_meld_1_fields, ENC_BIG_ENDIAN); |
5182 | 0 | offset += 1; |
5183 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0010_ber_meld_2, tvb, offset, 1, ENC_BIG_ENDIAN); |
5184 | 0 | offset += 1; |
5185 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0010_ber_zus_1, |
5186 | 0 | ett_s7comm_szl_0131_0010_ber_zus_1, s7comm_szl_0131_0010_ber_zus_1_fields, ENC_BIG_ENDIAN); |
5187 | 0 | offset += 1; |
5188 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0010_ber_zus_2, tvb, offset, 1, ENC_BIG_ENDIAN); |
5189 | 0 | offset += 1; |
5190 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0131_0010_typ_zus_1, |
5191 | 0 | ett_s7comm_szl_0131_0010_typ_zus_1, s7comm_szl_0131_0010_typ_zus_1_fields, ENC_BIG_ENDIAN); |
5192 | 0 | offset += 1; |
5193 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0010_typ_zus_2, tvb, offset, 1, ENC_BIG_ENDIAN); |
5194 | 0 | offset += 1; |
5195 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0010_maxanz_arch, tvb, offset, 2, ENC_BIG_ENDIAN); |
5196 | 0 | offset += 2; |
5197 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0010_res, tvb, offset, 28, ENC_NA); |
5198 | 0 | offset += 28; |
5199 | |
|
5200 | 0 | return offset; |
5201 | 0 | } |
5202 | | |
5203 | | /******************************************************************************************************* |
5204 | | * |
5205 | | * SZL-ID: 0x0132 |
5206 | | * Index: 0x0001 |
5207 | | * Content: |
5208 | | * The partial list extract with SZL-ID W#16#0132 and index W#16#0001 |
5209 | | * contains general communication status data. |
5210 | | * |
5211 | | *******************************************************************************************************/ |
5212 | | static void |
5213 | | s7comm_szl_0132_0001_register(int proto) |
5214 | 15 | { |
5215 | 15 | static hf_register_info hf[] = { |
5216 | 15 | { &hf_s7comm_szl_0132_0001_index, |
5217 | 15 | { "Index", "s7comm.szl.0132.0001.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
5218 | 15 | "W#16#0001: General status data for communication", HFILL }}, |
5219 | 15 | { &hf_s7comm_szl_0132_0001_res_pg, |
5220 | 15 | { "res pg (Guaranteed number of PG connections)", "s7comm.szl.0132.0001.res_pg", FT_UINT16, BASE_DEC, NULL, 0x0, |
5221 | 15 | NULL, HFILL }}, |
5222 | 15 | { &hf_s7comm_szl_0132_0001_res_os, |
5223 | 15 | { "res os (Guaranteed number of OS connections)", "s7comm.szl.0132.0001.res_os", FT_UINT16, BASE_DEC, NULL, 0x0, |
5224 | 15 | NULL, HFILL }}, |
5225 | 15 | { &hf_s7comm_szl_0132_0001_u_pg, |
5226 | 15 | { "u pg (Current number of PG connections)", "s7comm.szl.0132.0001.u_pg", FT_UINT16, BASE_DEC, NULL, 0x0, |
5227 | 15 | NULL, HFILL }}, |
5228 | 15 | { &hf_s7comm_szl_0132_0001_u_os, |
5229 | 15 | { "u os (Current number of OS connections)", "s7comm.szl.0132.0001.u_os", FT_UINT16, BASE_DEC, NULL, 0x0, |
5230 | 15 | NULL, HFILL }}, |
5231 | 15 | { &hf_s7comm_szl_0132_0001_proj, |
5232 | 15 | { "proj (Current number of configured connections)", "s7comm.szl.0132.0001.proj", FT_UINT16, BASE_DEC, NULL, 0x0, |
5233 | 15 | NULL, HFILL }}, |
5234 | 15 | { &hf_s7comm_szl_0132_0001_auf, |
5235 | 15 | { "auf (Current number of connections established by proj)", "s7comm.szl.0132.0001.auf", FT_UINT16, BASE_DEC, NULL, 0x0, |
5236 | 15 | NULL, HFILL }}, |
5237 | 15 | { &hf_s7comm_szl_0132_0001_free, |
5238 | 15 | { "free (Number of free connections)", "s7comm.szl.0132.0001.free", FT_UINT16, BASE_DEC, NULL, 0x0, |
5239 | 15 | NULL, HFILL }}, |
5240 | 15 | { &hf_s7comm_szl_0132_0001_used, |
5241 | 15 | { "used (Number of free connections used)", "s7comm.szl.0132.0001.used", FT_UINT16, BASE_DEC, NULL, 0x0, |
5242 | 15 | NULL, HFILL }}, |
5243 | 15 | { &hf_s7comm_szl_0132_0001_last, |
5244 | 15 | { "last (Maximum selected communication load of the CPU in %)", "s7comm.szl.0132.0001.last", FT_UINT16, BASE_DEC, NULL, 0x0, |
5245 | 15 | NULL, HFILL }}, |
5246 | 15 | { &hf_s7comm_szl_0132_0001_res, |
5247 | 15 | { "res (Reserved)", "s7comm.szl.0132.0001.res", FT_BYTES, BASE_NONE, NULL, 0x0, |
5248 | 15 | NULL, HFILL }} |
5249 | 15 | }; |
5250 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
5251 | 15 | } |
5252 | | |
5253 | | /*----------------------------------------------------------------------------------------------------*/ |
5254 | | static uint32_t |
5255 | | s7comm_decode_szl_id_0132_idx_0001(tvbuff_t *tvb, |
5256 | | proto_tree *tree, |
5257 | | uint32_t offset) |
5258 | 0 | { |
5259 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0001_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
5260 | 0 | offset += 2; |
5261 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0001_res_pg, tvb, offset, 2, ENC_BIG_ENDIAN); |
5262 | 0 | offset += 2; |
5263 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0001_res_os, tvb, offset, 2, ENC_BIG_ENDIAN); |
5264 | 0 | offset += 2; |
5265 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0001_u_pg, tvb, offset, 2, ENC_BIG_ENDIAN); |
5266 | 0 | offset += 2; |
5267 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0001_u_os, tvb, offset, 2, ENC_BIG_ENDIAN); |
5268 | 0 | offset += 2; |
5269 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0001_proj, tvb, offset, 2, ENC_BIG_ENDIAN); |
5270 | 0 | offset += 2; |
5271 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0001_auf, tvb, offset, 2, ENC_BIG_ENDIAN); |
5272 | 0 | offset += 2; |
5273 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0001_free, tvb, offset, 2, ENC_BIG_ENDIAN); |
5274 | 0 | offset += 2; |
5275 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0001_used, tvb, offset, 2, ENC_BIG_ENDIAN); |
5276 | 0 | offset += 2; |
5277 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0001_last, tvb, offset, 2, ENC_BIG_ENDIAN); |
5278 | 0 | offset += 2; |
5279 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0001_res, tvb, offset, 20, ENC_NA); |
5280 | 0 | offset += 20; |
5281 | |
|
5282 | 0 | return offset; |
5283 | 0 | } |
5284 | | |
5285 | | /******************************************************************************************************* |
5286 | | * |
5287 | | * SZL-ID: 0x0132 |
5288 | | * Index: 0x0002 |
5289 | | * Content: |
5290 | | * The partial list extract with SZL-ID W#16#0132 and the index W#16#0002 |
5291 | | * contains information about the test and installation function status of the module. |
5292 | | * |
5293 | | *******************************************************************************************************/ |
5294 | | static void |
5295 | | s7comm_szl_0132_0002_register(int proto) |
5296 | 15 | { |
5297 | 15 | static hf_register_info hf[] = { |
5298 | 15 | { &hf_s7comm_szl_0132_0002_index, |
5299 | 15 | { "Index", "s7comm.szl.0132.0002.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
5300 | 15 | "W#16#0002: Test and installation status", HFILL }}, |
5301 | 15 | { &hf_s7comm_szl_0132_0002_anz, |
5302 | 15 | { "anz (Number of initialized test and installation jobs)", "s7comm.szl.0132.0002.anz", FT_UINT16, BASE_DEC, NULL, 0x0, |
5303 | 15 | NULL, HFILL }}, |
5304 | 15 | { &hf_s7comm_szl_0132_0002_res, |
5305 | 15 | { "res (Reserved)", "s7comm.szl.0132.0002.res", FT_BYTES, BASE_NONE, NULL, 0x0, |
5306 | 15 | NULL, HFILL }} |
5307 | 15 | }; |
5308 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
5309 | 15 | } |
5310 | | |
5311 | | /*----------------------------------------------------------------------------------------------------*/ |
5312 | | static uint32_t |
5313 | | s7comm_decode_szl_id_0132_idx_0002(tvbuff_t *tvb, |
5314 | | proto_tree *tree, |
5315 | | uint32_t offset) |
5316 | 0 | { |
5317 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0002_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
5318 | 0 | offset += 2; |
5319 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0002_anz, tvb, offset, 2, ENC_BIG_ENDIAN); |
5320 | 0 | offset += 2; |
5321 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0002_res, tvb, offset, 36, ENC_NA); |
5322 | 0 | offset += 36; |
5323 | |
|
5324 | 0 | return offset; |
5325 | 0 | } |
5326 | | |
5327 | | /******************************************************************************************************* |
5328 | | * |
5329 | | * SZL-ID: 0x0132 |
5330 | | * Index: 0x0004 |
5331 | | * Content: |
5332 | | * The partial list extract with SZL-ID W#16#0132 and the index W#16#0004 |
5333 | | * contains information about the protection level of the module. |
5334 | | * |
5335 | | *******************************************************************************************************/ |
5336 | | static void |
5337 | | s7comm_szl_0132_0004_register(int proto) |
5338 | 15 | { |
5339 | 15 | static hf_register_info hf[] = { |
5340 | 15 | { &hf_s7comm_szl_0132_0004_index, |
5341 | 15 | { "Index", "s7comm.szl.0132.0004.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
5342 | 15 | "W#16#0004 Protection status data", HFILL }}, |
5343 | 15 | { &hf_s7comm_szl_0132_0004_key, |
5344 | 15 | { "key (Protection level for the key switch, possible values: 1,2 or 3)", "s7comm.szl.0132.0004.key", FT_UINT16, BASE_DEC, NULL, 0x0, |
5345 | 15 | NULL, HFILL }}, |
5346 | 15 | { &hf_s7comm_szl_0132_0004_param, |
5347 | 15 | { "param (Assigned protection level, possible values: 0, 1, 2 or 3)", "s7comm.szl.0132.0004.param", FT_UINT16, BASE_DEC, NULL, 0x0, |
5348 | 15 | "param (Assigned protection level (possible values: 0, 1, 2 or 3;0 means: no password assigned, assigned protection level is not valid)", HFILL }}, |
5349 | 15 | { &hf_s7comm_szl_0132_0004_real, |
5350 | 15 | { "real (Valid protection level of the CPU, possible values: 1, 2 or 3)", "s7comm.szl.0132.0004.real", FT_UINT16, BASE_DEC, NULL, 0x0, |
5351 | 15 | NULL, HFILL }}, |
5352 | 15 | { &hf_s7comm_szl_0132_0004_bart_sch, |
5353 | 15 | { "bart_sch (Position of the mode switch)", "s7comm.szl.0132.0004.bart_sch", FT_UINT16, BASE_DEC, VALS(szl_bart_sch_names), 0x0, |
5354 | 15 | NULL, HFILL }}, |
5355 | 15 | { &hf_s7comm_szl_0132_0004_crst_wrst, |
5356 | 15 | { "crst_wrst (Setting of the CRST/WRST switch)", "s7comm.szl.0132.0004.crst_wrst", FT_UINT16, BASE_DEC, VALS(szl_crst_wrst_names), 0x0, |
5357 | 15 | NULL, HFILL }}, |
5358 | 15 | { &hf_s7comm_szl_0132_0004_ken_f, |
5359 | 15 | { "ken_f (Reserved)", "s7comm.szl.0132.0004.ken_f", FT_UINT16, BASE_HEX, NULL, 0x0, |
5360 | 15 | NULL, HFILL }}, |
5361 | 15 | { &hf_s7comm_szl_0132_0004_ken_rel, |
5362 | 15 | { "ken_rel (ID for valid version identifications/checksums)", "s7comm.szl.0132.0004.ken_rel", FT_UINT16, BASE_HEX, NULL, 0x0, |
5363 | 15 | "ken_rel (ID for valid version identifications/checksums) 0=invalid", HFILL }}, |
5364 | 15 | { &hf_s7comm_szl_0132_0004_ken_ver1_hw, |
5365 | 15 | { "ken_ver1_hw (Version ID/checksum 1 of the hardware configuration)", "s7comm.szl.0132.0004.ken_ver1_hw", FT_UINT16, BASE_HEX, NULL, 0x0, |
5366 | 15 | "ken_ver1_hw: Version ID/checksum 1 of the hardware configuration: XOR over the length of all SDBs", HFILL }}, |
5367 | 15 | { &hf_s7comm_szl_0132_0004_ken_ver2_hw, |
5368 | 15 | { "ken_ver2_hw (Version ID/checksum 2 of the hardware configuration)", "s7comm.szl.0132.0004.ken_ver2_hw", FT_UINT16, BASE_HEX, NULL, 0x0, |
5369 | 15 | "ken_ver2_hw: Version ID/checksum 2 of the hardware configuration: XOR over the checksums of all SDBs", HFILL }}, |
5370 | 15 | { &hf_s7comm_szl_0132_0004_ken_ver1_awp, |
5371 | 15 | { "ken_ver1_awp (Version ID/checksum 1 of the user program)", "s7comm.szl.0132.0004.ken_ver1_awp", FT_UINT16, BASE_HEX, NULL, 0x0, |
5372 | 15 | "ken_ver1_awp: Version ID/checksum 1 of the user program): XOR over the length of all OBs, DBs, FBs, FCs", HFILL }}, |
5373 | 15 | { &hf_s7comm_szl_0132_0004_ken_ver2_awp, |
5374 | 15 | { "ken_ver2_awp (Version ID/checksum 2 of the user program)", "s7comm.szl.0132.0004.ken_ver2_awp", FT_UINT16, BASE_HEX, NULL, 0x0, |
5375 | 15 | "ken_ver2_awp: Version ID/checksum 2 of the user program): XOR over the checksums of all OBs, DBs, FBs, FCs", HFILL }}, |
5376 | 15 | { &hf_s7comm_szl_0132_0004_res, |
5377 | 15 | { "res (Reserved)", "s7comm.szl.0132.0004.res", FT_BYTES, BASE_NONE, NULL, 0x0, |
5378 | 15 | NULL, HFILL }} |
5379 | 15 | }; |
5380 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
5381 | 15 | } |
5382 | | |
5383 | | /*----------------------------------------------------------------------------------------------------*/ |
5384 | | static uint32_t |
5385 | | s7comm_decode_szl_id_0132_idx_0004(tvbuff_t *tvb, |
5386 | | proto_tree *tree, |
5387 | | uint32_t offset) |
5388 | 0 | { |
5389 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0004_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
5390 | 0 | offset += 2; |
5391 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0004_key, tvb, offset, 2, ENC_BIG_ENDIAN); |
5392 | 0 | offset += 2; |
5393 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0004_param, tvb, offset, 2, ENC_BIG_ENDIAN); |
5394 | 0 | offset += 2; |
5395 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0004_real, tvb, offset, 2, ENC_BIG_ENDIAN); |
5396 | 0 | offset += 2; |
5397 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0004_bart_sch, tvb, offset, 2, ENC_BIG_ENDIAN); |
5398 | 0 | offset += 2; |
5399 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0004_crst_wrst, tvb, offset, 2, ENC_BIG_ENDIAN); |
5400 | 0 | offset += 2; |
5401 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0004_ken_f, tvb, offset, 2, ENC_BIG_ENDIAN); |
5402 | 0 | offset += 2; |
5403 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0004_ken_rel, tvb, offset, 2, ENC_BIG_ENDIAN); |
5404 | 0 | offset += 2; |
5405 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0004_ken_ver1_hw, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
5406 | 0 | offset += 2; |
5407 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0004_ken_ver2_hw, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
5408 | 0 | offset += 2; |
5409 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0004_ken_ver1_awp, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
5410 | 0 | offset += 2; |
5411 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0004_ken_ver2_awp, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
5412 | 0 | offset += 2; |
5413 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0004_res, tvb, offset, 16, ENC_NA); |
5414 | 0 | offset += 16; |
5415 | |
|
5416 | 0 | return offset; |
5417 | 0 | } |
5418 | | |
5419 | | /******************************************************************************************************* |
5420 | | * |
5421 | | * SZL-ID: 0x0132 |
5422 | | * Index: 0x0005 |
5423 | | * Content: |
5424 | | * The partial list extract with SZL-ID W#16#0132 and index W#16#0005 |
5425 | | * contains information about the status of the diagnostics on the module. |
5426 | | * |
5427 | | *******************************************************************************************************/ |
5428 | | static void |
5429 | | s7comm_szl_0132_0005_register(int proto) |
5430 | 15 | { |
5431 | 15 | static hf_register_info hf[] = { |
5432 | 15 | { &hf_s7comm_szl_0132_0005_index, |
5433 | 15 | { "Index", "s7comm.szl.0132.0005.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
5434 | 15 | "W#16#0005: Diagnostics", HFILL }}, |
5435 | 15 | { &hf_s7comm_szl_0132_0005_erw, |
5436 | 15 | { "erw (Extended functions)", "s7comm.szl.0132.0005.erw", FT_UINT16, BASE_DEC, VALS(szl_0132_0005_func_exist_names), 0x0, |
5437 | 15 | NULL, HFILL }}, |
5438 | 15 | { &hf_s7comm_szl_0132_0005_send, |
5439 | 15 | { "send (Automatic sending)", "s7comm.szl.0132.0005.send", FT_UINT16, BASE_DEC, VALS(szl_0132_0005_func_exist_names), 0x0, |
5440 | 15 | NULL, HFILL }}, |
5441 | 15 | { &hf_s7comm_szl_0132_0005_moeg, |
5442 | 15 | { "moeg (Sending user-defined diagnostic messages currently possible)", "s7comm.szl.0132.0005.moeg", FT_UINT16, BASE_DEC, VALS(szl_0132_0005_func_exist_names), 0x0, |
5443 | 15 | NULL, HFILL }}, |
5444 | 15 | { &hf_s7comm_szl_0132_0005_ltmerz, |
5445 | 15 | { "ltmerz (Generation of status message active)", "s7comm.szl.0132.0005.ltmerz", FT_UINT16, BASE_DEC, VALS(szl_0132_0005_func_exist_names), 0x0, |
5446 | 15 | NULL, HFILL }}, |
5447 | 15 | { &hf_s7comm_szl_0132_0005_res, |
5448 | 15 | { "res (Reserved)", "s7comm.szl.0132.0005.res", FT_BYTES, BASE_NONE, NULL, 0x0, |
5449 | 15 | NULL, HFILL }} |
5450 | 15 | }; |
5451 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
5452 | 15 | } |
5453 | | |
5454 | | /*----------------------------------------------------------------------------------------------------*/ |
5455 | | static uint32_t |
5456 | | s7comm_decode_szl_id_0132_idx_0005(tvbuff_t *tvb, |
5457 | | proto_tree *tree, |
5458 | | uint32_t offset) |
5459 | 0 | { |
5460 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0005_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
5461 | 0 | offset += 2; |
5462 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0005_erw, tvb, offset, 2, ENC_BIG_ENDIAN); |
5463 | 0 | offset += 2; |
5464 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0005_send, tvb, offset, 2, ENC_BIG_ENDIAN); |
5465 | 0 | offset += 2; |
5466 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0005_moeg, tvb, offset, 2, ENC_BIG_ENDIAN); |
5467 | 0 | offset += 2; |
5468 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0005_ltmerz, tvb, offset, 2, ENC_BIG_ENDIAN); |
5469 | 0 | offset += 2; |
5470 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0005_res, tvb, offset, 30, ENC_NA); |
5471 | 0 | offset += 30; |
5472 | |
|
5473 | 0 | return offset; |
5474 | 0 | } |
5475 | | |
5476 | | /******************************************************************************************************* |
5477 | | * |
5478 | | * SZL-ID: 0x0132 |
5479 | | * Index: 0x0006 |
5480 | | * Content: |
5481 | | * The partial list extract with SZL-ID W#16#0132 and index W#16#0006 |
5482 | | * contains status data about data exchange with communication SFBs for |
5483 | | * configured connections. |
5484 | | * |
5485 | | *******************************************************************************************************/ |
5486 | | static void |
5487 | | s7comm_szl_0132_0006_register(int proto) |
5488 | 15 | { |
5489 | 15 | static hf_register_info hf[] = { |
5490 | 15 | { &hf_s7comm_szl_0132_0006_index, |
5491 | 15 | { "Index", "s7comm.szl.0132.0006.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
5492 | 15 | "W#16#0006: Data exchange with communication SFBs for configured connections", HFILL }}, |
5493 | 15 | { &hf_s7comm_szl_0132_0006_used_0, |
5494 | 15 | { "used_0 (Blocks used)", "s7comm.szl.0132.0006.used_0", FT_BYTES, BASE_NONE, NULL, 0x0, |
5495 | 15 | NULL, HFILL }}, |
5496 | 15 | { &hf_s7comm_szl_0132_0006_used_1, |
5497 | 15 | { "used_1 (Blocks used)", "s7comm.szl.0132.0006.used_1", FT_BYTES, BASE_NONE, NULL, 0x0, |
5498 | 15 | NULL, HFILL }}, |
5499 | 15 | { &hf_s7comm_szl_0132_0006_used_2, |
5500 | 15 | { "used_2 (Blocks used)", "s7comm.szl.0132.0006.used_2", FT_BYTES, BASE_NONE, NULL, 0x0, |
5501 | 15 | NULL, HFILL }}, |
5502 | 15 | { &hf_s7comm_szl_0132_0006_used_3, |
5503 | 15 | { "used_3 (Blocks used)", "s7comm.szl.0132.0006.used_3", FT_BYTES, BASE_NONE, NULL, 0x0, |
5504 | 15 | NULL, HFILL }}, |
5505 | 15 | { &hf_s7comm_szl_0132_0006_used_4, |
5506 | 15 | { "used_4 (Blocks used)", "s7comm.szl.0132.0006.used_4", FT_BYTES, BASE_NONE, NULL, 0x0, |
5507 | 15 | NULL, HFILL }}, |
5508 | 15 | { &hf_s7comm_szl_0132_0006_used_5, |
5509 | 15 | { "used_5 (Blocks used)", "s7comm.szl.0132.0006.used_5", FT_BYTES, BASE_NONE, NULL, 0x0, |
5510 | 15 | NULL, HFILL }}, |
5511 | 15 | { &hf_s7comm_szl_0132_0006_used_6, |
5512 | 15 | { "used_6 (Blocks used)", "s7comm.szl.0132.0006.used_6", FT_BYTES, BASE_NONE, NULL, 0x0, |
5513 | 15 | NULL, HFILL }}, |
5514 | 15 | { &hf_s7comm_szl_0132_0006_used_7, |
5515 | 15 | { "used_7 (Blocks used)", "s7comm.szl.0132.0006.used_7", FT_BYTES, BASE_NONE, NULL, 0x0, |
5516 | 15 | NULL, HFILL }}, |
5517 | 15 | { &hf_s7comm_szl_0132_0006_anz_schnell, |
5518 | 15 | { "anz_schnell (Reserved)", "s7comm.szl.0132.0006.anz_schnell", FT_UINT16, BASE_DEC, NULL, 0x0, |
5519 | 15 | NULL, HFILL }}, |
5520 | 15 | { &hf_s7comm_szl_0132_0006_anz_inst, |
5521 | 15 | { "anz_inst (Number of loaded SFB instances)", "s7comm.szl.0132.0006.anz_inst", FT_UINT16, BASE_DEC, NULL, 0x0, |
5522 | 15 | NULL, HFILL }}, |
5523 | 15 | { &hf_s7comm_szl_0132_0006_anz_multicast, |
5524 | 15 | { "anz_multicast (Number of blocks used for multicast)", "s7comm.szl.0132.0006.anz_multicast", FT_UINT16, BASE_DEC, NULL, 0x0, |
5525 | 15 | NULL, HFILL }}, |
5526 | 15 | { &hf_s7comm_szl_0132_0006_res, |
5527 | 15 | { "res (Reserved)", "s7comm.szl.0132.0006.res", FT_BYTES, BASE_NONE, NULL, 0x0, |
5528 | 15 | NULL, HFILL }} |
5529 | 15 | }; |
5530 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
5531 | 15 | } |
5532 | | |
5533 | | /*----------------------------------------------------------------------------------------------------*/ |
5534 | | static uint32_t |
5535 | | s7comm_decode_szl_id_0132_idx_0006(tvbuff_t *tvb, |
5536 | | proto_tree *tree, |
5537 | | uint32_t offset) |
5538 | 0 | { |
5539 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0006_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
5540 | 0 | offset += 2; |
5541 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0006_used_0, tvb, offset, 1, ENC_NA); |
5542 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_0_0, tvb, offset, 1, ENC_BIG_ENDIAN); |
5543 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_0_1, tvb, offset, 1, ENC_BIG_ENDIAN); |
5544 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_0_2, tvb, offset, 1, ENC_BIG_ENDIAN); |
5545 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_0_3, tvb, offset, 1, ENC_BIG_ENDIAN); |
5546 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_0_4, tvb, offset, 1, ENC_BIG_ENDIAN); |
5547 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_0_5, tvb, offset, 1, ENC_BIG_ENDIAN); |
5548 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_0_6, tvb, offset, 1, ENC_BIG_ENDIAN); |
5549 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_0_7, tvb, offset, 1, ENC_BIG_ENDIAN); |
5550 | 0 | offset += 1; |
5551 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0006_used_1, tvb, offset, 1, ENC_NA); |
5552 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_1_0, tvb, offset, 1, ENC_BIG_ENDIAN); |
5553 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_1_1, tvb, offset, 1, ENC_BIG_ENDIAN); |
5554 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_1_2, tvb, offset, 1, ENC_BIG_ENDIAN); |
5555 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_1_3, tvb, offset, 1, ENC_BIG_ENDIAN); |
5556 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_1_4, tvb, offset, 1, ENC_BIG_ENDIAN); |
5557 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_1_5, tvb, offset, 1, ENC_BIG_ENDIAN); |
5558 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_1_6, tvb, offset, 1, ENC_BIG_ENDIAN); |
5559 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_1_7, tvb, offset, 1, ENC_BIG_ENDIAN); |
5560 | 0 | offset += 1; |
5561 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0006_used_2, tvb, offset, 1, ENC_NA); |
5562 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_2_0, tvb, offset, 1, ENC_BIG_ENDIAN); |
5563 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_2_1, tvb, offset, 1, ENC_BIG_ENDIAN); |
5564 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_2_2, tvb, offset, 1, ENC_BIG_ENDIAN); |
5565 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_2_3, tvb, offset, 1, ENC_BIG_ENDIAN); |
5566 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_2_4, tvb, offset, 1, ENC_BIG_ENDIAN); |
5567 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_2_5, tvb, offset, 1, ENC_BIG_ENDIAN); |
5568 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_2_6, tvb, offset, 1, ENC_BIG_ENDIAN); |
5569 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_2_7, tvb, offset, 1, ENC_BIG_ENDIAN); |
5570 | 0 | offset += 1; |
5571 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0006_used_3, tvb, offset, 1, ENC_NA); |
5572 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_3_0, tvb, offset, 1, ENC_BIG_ENDIAN); |
5573 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_3_1, tvb, offset, 1, ENC_BIG_ENDIAN); |
5574 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_3_2, tvb, offset, 1, ENC_BIG_ENDIAN); |
5575 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_3_3, tvb, offset, 1, ENC_BIG_ENDIAN); |
5576 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_3_4, tvb, offset, 1, ENC_BIG_ENDIAN); |
5577 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_3_5, tvb, offset, 1, ENC_BIG_ENDIAN); |
5578 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_3_6, tvb, offset, 1, ENC_BIG_ENDIAN); |
5579 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_3_7, tvb, offset, 1, ENC_BIG_ENDIAN); |
5580 | 0 | offset += 1; |
5581 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0006_used_4, tvb, offset, 1, ENC_NA); |
5582 | 0 | offset += 1; |
5583 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0006_used_5, tvb, offset, 1, ENC_NA); |
5584 | 0 | offset += 1; |
5585 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0006_used_6, tvb, offset, 1, ENC_NA); |
5586 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_6_0, tvb, offset, 1, ENC_BIG_ENDIAN); |
5587 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_6_1, tvb, offset, 1, ENC_BIG_ENDIAN); |
5588 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_6_2, tvb, offset, 1, ENC_BIG_ENDIAN); |
5589 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_6_3, tvb, offset, 1, ENC_BIG_ENDIAN); |
5590 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_6_4, tvb, offset, 1, ENC_BIG_ENDIAN); |
5591 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_6_5, tvb, offset, 1, ENC_BIG_ENDIAN); |
5592 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_6_6, tvb, offset, 1, ENC_BIG_ENDIAN); |
5593 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_6_7, tvb, offset, 1, ENC_BIG_ENDIAN); |
5594 | 0 | offset += 1; |
5595 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0006_used_7, tvb, offset, 1, ENC_NA); |
5596 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_7_0, tvb, offset, 1, ENC_BIG_ENDIAN); |
5597 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_7_1, tvb, offset, 1, ENC_BIG_ENDIAN); |
5598 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_7_2, tvb, offset, 1, ENC_BIG_ENDIAN); |
5599 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_7_3, tvb, offset, 1, ENC_BIG_ENDIAN); |
5600 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_7_4, tvb, offset, 1, ENC_BIG_ENDIAN); |
5601 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_7_5, tvb, offset, 1, ENC_BIG_ENDIAN); |
5602 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_7_6, tvb, offset, 1, ENC_BIG_ENDIAN); |
5603 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0131_0006_funkt_7_7, tvb, offset, 1, ENC_BIG_ENDIAN); |
5604 | 0 | offset += 1; |
5605 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0006_anz_schnell, tvb, offset, 1, ENC_BIG_ENDIAN); |
5606 | 0 | offset += 1; |
5607 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0006_anz_inst, tvb, offset, 2, ENC_BIG_ENDIAN); |
5608 | 0 | offset += 2; |
5609 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0006_anz_multicast, tvb, offset, 2, ENC_BIG_ENDIAN); |
5610 | 0 | offset += 2; |
5611 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0006_res, tvb, offset, 25, ENC_NA); |
5612 | 0 | offset += 25; |
5613 | |
|
5614 | 0 | return offset; |
5615 | 0 | } |
5616 | | |
5617 | | /******************************************************************************************************* |
5618 | | * |
5619 | | * SZL-ID: 0x0132 |
5620 | | * Index: 0x0008 |
5621 | | * Content: |
5622 | | * The partial list extract with SZL-ID W#16#0132 and index W#16#0008 |
5623 | | * contains information on the status of the modules time system. |
5624 | | * |
5625 | | *******************************************************************************************************/ |
5626 | | static void |
5627 | | s7comm_szl_0132_0008_register(int proto) |
5628 | 15 | { |
5629 | 15 | static hf_register_info hf[] = { |
5630 | 15 | { &hf_s7comm_szl_0132_0008_index, |
5631 | 15 | { "Index", "s7comm.szl.0132.0008.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
5632 | 15 | "W#16#0008: Time system status", HFILL }}, |
5633 | 15 | { &hf_s7comm_szl_0132_0008_zykl, |
5634 | 15 | { "zykl (Cycle time of the synchronization frames)", "s7comm.szl.0132.0008.zykl", FT_UINT16, BASE_DEC, NULL, 0x0, |
5635 | 15 | NULL, HFILL }}, |
5636 | 15 | { &hf_s7comm_szl_0132_0008_korr, |
5637 | 15 | { "korr (Correction factor for time-of-day)", "s7comm.szl.0132.0008.korr", FT_UINT16, BASE_DEC, NULL, 0x0, |
5638 | 15 | NULL, HFILL }}, |
5639 | 15 | { &hf_s7comm_szl_0132_0008_clock0, |
5640 | 15 | { "clock 0 (Run-time meter 0: Time in hours)", "s7comm.szl.0132.0008.clock0", FT_UINT16, BASE_DEC, NULL, 0x0, |
5641 | 15 | NULL, HFILL }}, |
5642 | 15 | { &hf_s7comm_szl_0132_0008_clock1, |
5643 | 15 | { "clock 1 (Run-time meter 1: Time in hours)", "s7comm.szl.0132.0008.clock1", FT_UINT16, BASE_DEC, NULL, 0x0, |
5644 | 15 | NULL, HFILL }}, |
5645 | 15 | { &hf_s7comm_szl_0132_0008_clock2, |
5646 | 15 | { "clock 2 (Run-time meter 2: Time in hours)", "s7comm.szl.0132.0008.clock2", FT_UINT16, BASE_DEC, NULL, 0x0, |
5647 | 15 | NULL, HFILL }}, |
5648 | 15 | { &hf_s7comm_szl_0132_0008_clock3, |
5649 | 15 | { "clock 3 (Run-time meter 3: Time in hours)", "s7comm.szl.0132.0008.clock3", FT_UINT16, BASE_DEC, NULL, 0x0, |
5650 | 15 | NULL, HFILL }}, |
5651 | 15 | { &hf_s7comm_szl_0132_0008_clock4, |
5652 | 15 | { "clock 4 (Run-time meter 4: Time in hours)", "s7comm.szl.0132.0008.clock4", FT_UINT16, BASE_DEC, NULL, 0x0, |
5653 | 15 | NULL, HFILL }}, |
5654 | 15 | { &hf_s7comm_szl_0132_0008_clock5, |
5655 | 15 | { "clock 5 (Run-time meter 5: Time in hours)", "s7comm.szl.0132.0008.clock5", FT_UINT16, BASE_DEC, NULL, 0x0, |
5656 | 15 | NULL, HFILL }}, |
5657 | 15 | { &hf_s7comm_szl_0132_0008_clock6, |
5658 | 15 | { "clock 6 (Run-time meter 6: Time in hours)", "s7comm.szl.0132.0008.clock6", FT_UINT16, BASE_DEC, NULL, 0x0, |
5659 | 15 | NULL, HFILL }}, |
5660 | 15 | { &hf_s7comm_szl_0132_0008_clock7, |
5661 | 15 | { "clock 7 (Run-time meter 7: Time in hours)", "s7comm.szl.0132.0008.clock7", FT_UINT16, BASE_DEC, NULL, 0x0, |
5662 | 15 | NULL, HFILL }}, |
5663 | 15 | { &hf_s7comm_szl_0132_0008_time, |
5664 | 15 | { "time (Current date and time)", "s7comm.szl.0132.0008.time", FT_BYTES, BASE_NONE, NULL, 0x0, |
5665 | 15 | "time (Current date and time) format: date_and_time", HFILL }}, |
5666 | 15 | { &hf_s7comm_szl_0132_0008_res, |
5667 | 15 | { "res (Reserved)", "s7comm.szl.0132.0008.res", FT_BYTES, BASE_NONE, NULL, 0x0, |
5668 | 15 | NULL, HFILL }} |
5669 | 15 | }; |
5670 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
5671 | 15 | } |
5672 | | |
5673 | | /*----------------------------------------------------------------------------------------------------*/ |
5674 | | static uint32_t |
5675 | | s7comm_decode_szl_id_0132_idx_0008(tvbuff_t *tvb, |
5676 | | proto_tree *tree, |
5677 | | uint32_t offset) |
5678 | 0 | { |
5679 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0008_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
5680 | 0 | offset += 2; |
5681 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0008_zykl, tvb, offset, 2, ENC_BIG_ENDIAN); |
5682 | 0 | offset += 2; |
5683 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0008_korr, tvb, offset, 2, ENC_BIG_ENDIAN); |
5684 | 0 | offset += 2; |
5685 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0008_clock0, tvb, offset, 2, ENC_BIG_ENDIAN); |
5686 | 0 | offset += 2; |
5687 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0008_clock1, tvb, offset, 2, ENC_BIG_ENDIAN); |
5688 | 0 | offset += 2; |
5689 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0008_clock2, tvb, offset, 2, ENC_BIG_ENDIAN); |
5690 | 0 | offset += 2; |
5691 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0008_clock3, tvb, offset, 2, ENC_BIG_ENDIAN); |
5692 | 0 | offset += 2; |
5693 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0008_clock4, tvb, offset, 2, ENC_BIG_ENDIAN); |
5694 | 0 | offset += 2; |
5695 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0008_clock5, tvb, offset, 2, ENC_BIG_ENDIAN); |
5696 | 0 | offset += 2; |
5697 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0008_clock6, tvb, offset, 2, ENC_BIG_ENDIAN); |
5698 | 0 | offset += 2; |
5699 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0008_clock7, tvb, offset, 2, ENC_BIG_ENDIAN); |
5700 | 0 | offset += 2; |
5701 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0008_time, tvb, offset, 8, ENC_NA); |
5702 | 0 | offset += 8; |
5703 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_0008_res, tvb, offset, 10, ENC_NA); |
5704 | 0 | offset += 10; |
5705 | |
|
5706 | 0 | return offset; |
5707 | 0 | } |
5708 | | |
5709 | | /******************************************************************************************************* |
5710 | | * |
5711 | | * SZL-ID: 0x0132 |
5712 | | * Index: 0x000b |
5713 | | * Content: |
5714 | | * The partial list extract with SZL-ID W#16#0132 and index W#16#000B |
5715 | | * contains information about the status of the 32-bit run-time meters 0..7 of the module. |
5716 | | * |
5717 | | *******************************************************************************************************/ |
5718 | | static void |
5719 | | s7comm_szl_0132_000b_register(int proto) |
5720 | 15 | { |
5721 | 15 | static hf_register_info hf[] = { |
5722 | 15 | { &hf_s7comm_szl_0132_000b_index, |
5723 | 15 | { "Index", "s7comm.szl.0132.000b.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
5724 | 15 | "W#16#000B: Time system status", HFILL }}, |
5725 | 15 | { &hf_s7comm_szl_0132_000b_bszl_0, |
5726 | 15 | { "bszl_0 (Status of run-time meter)", "s7comm.szl.0132.000b.bszl_0", FT_UINT8, BASE_HEX, NULL, 0x0, |
5727 | 15 | "bszl_0 (Status of run-time meter): Bit = 1: run-time meter is busy" , HFILL }}, |
5728 | 15 | { &hf_s7comm_szl_0132_000b_bszl_1, |
5729 | 15 | { "bszl_1 (Reserved)", "s7comm.szl.0132.000b.bszl_1", FT_UINT8, BASE_HEX, NULL, 0x0, |
5730 | 15 | NULL, HFILL }}, |
5731 | 15 | { &hf_s7comm_szl_0132_000b_bszu_0, |
5732 | 15 | { "bszu_0 (Overflow of run-time meter)", "s7comm.szl.0132.000b.bszu_0", FT_UINT8, BASE_HEX, NULL, 0x0, |
5733 | 15 | "bszu_0 (Overflow of run-time meter): Bit = 1: overflow", HFILL }}, |
5734 | 15 | { &hf_s7comm_szl_0132_000b_bszu_1, |
5735 | 15 | { "bszu_1 (Reserved)", "s7comm.szl.0132.000b.bszu_1", FT_UINT8, BASE_HEX, NULL, 0x0, |
5736 | 15 | NULL, HFILL }}, |
5737 | 15 | { &hf_s7comm_szl_0132_000b_clock0, |
5738 | 15 | { "clock 0 (Run-time meter 0: Time in hours)", "s7comm.szl.0132.000b.clock0", FT_UINT32, BASE_DEC, NULL, 0x0, |
5739 | 15 | NULL, HFILL }}, |
5740 | 15 | { &hf_s7comm_szl_0132_000b_clock1, |
5741 | 15 | { "clock 1 (Run-time meter 1: Time in hours)", "s7comm.szl.0132.000b.clock1", FT_UINT32, BASE_DEC, NULL, 0x0, |
5742 | 15 | NULL, HFILL }}, |
5743 | 15 | { &hf_s7comm_szl_0132_000b_clock2, |
5744 | 15 | { "clock 2 (Run-time meter 2: Time in hours)", "s7comm.szl.0132.000b.clock2", FT_UINT32, BASE_DEC, NULL, 0x0, |
5745 | 15 | NULL, HFILL }}, |
5746 | 15 | { &hf_s7comm_szl_0132_000b_clock3, |
5747 | 15 | { "clock 3 (Run-time meter 3: Time in hours)", "s7comm.szl.0132.000b.clock3", FT_UINT32, BASE_DEC, NULL, 0x0, |
5748 | 15 | NULL, HFILL }}, |
5749 | 15 | { &hf_s7comm_szl_0132_000b_clock4, |
5750 | 15 | { "clock 4 (Run-time meter 4: Time in hours)", "s7comm.szl.0132.000b.clock4", FT_UINT32, BASE_DEC, NULL, 0x0, |
5751 | 15 | NULL, HFILL }}, |
5752 | 15 | { &hf_s7comm_szl_0132_000b_clock5, |
5753 | 15 | { "clock 5 (Run-time meter 5: Time in hours)", "s7comm.szl.0132.000b.clock5", FT_UINT32, BASE_DEC, NULL, 0x0, |
5754 | 15 | NULL, HFILL }}, |
5755 | 15 | { &hf_s7comm_szl_0132_000b_clock6, |
5756 | 15 | { "clock 6 (Run-time meter 6: Time in hours)", "s7comm.szl.0132.000b.clock6", FT_UINT32, BASE_DEC, NULL, 0x0, |
5757 | 15 | NULL, HFILL }}, |
5758 | 15 | { &hf_s7comm_szl_0132_000b_clock7, |
5759 | 15 | { "clock 7 (Run-time meter 7: Time in hours)", "s7comm.szl.0132.000b.clock7", FT_UINT32, BASE_DEC, NULL, 0x0, |
5760 | 15 | NULL, HFILL }}, |
5761 | 15 | { &hf_s7comm_szl_0132_000b_res, |
5762 | 15 | { "res (Reserved)", "s7comm.szl.0132.000b.res", FT_BYTES, BASE_NONE, NULL, 0x0, |
5763 | 15 | NULL, HFILL }} |
5764 | 15 | }; |
5765 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
5766 | 15 | } |
5767 | | /*----------------------------------------------------------------------------------------------------*/ |
5768 | | static uint32_t |
5769 | | s7comm_decode_szl_id_0132_idx_000b(tvbuff_t *tvb, |
5770 | | proto_tree *tree, |
5771 | | uint32_t offset) |
5772 | 0 | { |
5773 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000b_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
5774 | 0 | offset += 2; |
5775 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000b_bszl_0, tvb, offset, 1, ENC_BIG_ENDIAN); |
5776 | 0 | offset += 1; |
5777 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000b_bszl_1, tvb, offset, 1, ENC_BIG_ENDIAN); |
5778 | 0 | offset += 1; |
5779 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000b_bszu_0, tvb, offset, 1, ENC_BIG_ENDIAN); |
5780 | 0 | offset += 1; |
5781 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000b_bszu_1, tvb, offset, 1, ENC_BIG_ENDIAN); |
5782 | 0 | offset += 1; |
5783 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000b_clock0, tvb, offset, 4, ENC_BIG_ENDIAN); |
5784 | 0 | offset += 4; |
5785 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000b_clock1, tvb, offset, 4, ENC_BIG_ENDIAN); |
5786 | 0 | offset += 4; |
5787 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000b_clock2, tvb, offset, 4, ENC_BIG_ENDIAN); |
5788 | 0 | offset += 4; |
5789 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000b_clock3, tvb, offset, 4, ENC_BIG_ENDIAN); |
5790 | 0 | offset += 4; |
5791 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000b_clock4, tvb, offset, 4, ENC_BIG_ENDIAN); |
5792 | 0 | offset += 4; |
5793 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000b_clock5, tvb, offset, 4, ENC_BIG_ENDIAN); |
5794 | 0 | offset += 4; |
5795 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000b_clock6, tvb, offset, 4, ENC_BIG_ENDIAN); |
5796 | 0 | offset += 4; |
5797 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000b_clock7, tvb, offset, 4, ENC_BIG_ENDIAN); |
5798 | 0 | offset += 4; |
5799 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000b_res, tvb, offset, 2, ENC_NA); |
5800 | 0 | offset += 2; |
5801 | |
|
5802 | 0 | return offset; |
5803 | 0 | } |
5804 | | |
5805 | | /******************************************************************************************************* |
5806 | | * |
5807 | | * SZL-ID: 0x0132 |
5808 | | * Index: 0x000c |
5809 | | * Content: |
5810 | | * The partial list extract with SZL-ID W#16#0132 and index W#16#000C |
5811 | | * contains information about the status of the 32-bit run-time meters 8..15 of the module. |
5812 | | * |
5813 | | *******************************************************************************************************/ |
5814 | | static void |
5815 | | s7comm_szl_0132_000c_register(int proto) |
5816 | 15 | { |
5817 | 15 | static hf_register_info hf[] = { |
5818 | 15 | { &hf_s7comm_szl_0132_000c_index, |
5819 | 15 | { "Index", "s7comm.szl.0132.000c.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
5820 | 15 | "W#16#000C: Time system status", HFILL }}, |
5821 | 15 | { &hf_s7comm_szl_0132_000c_bszl_0, |
5822 | 15 | { "bszl_0 (Status of run-time meter)", "s7comm.szl.0132.000c.bszl_0", FT_UINT8, BASE_HEX, NULL, 0x0, |
5823 | 15 | "bszl_0 (Status of run-time meter): Bit = 1: run-time meter is busy" , HFILL }}, |
5824 | 15 | { &hf_s7comm_szl_0132_000c_bszl_1, |
5825 | 15 | { "bszl_1 (Reserved)", "s7comm.szl.0132.000c.bszl_1", FT_UINT8, BASE_HEX, NULL, 0x0, |
5826 | 15 | NULL, HFILL }}, |
5827 | 15 | { &hf_s7comm_szl_0132_000c_bszu_0, |
5828 | 15 | { "bszu_0 (Overflow of run-time meter)", "s7comm.szl.0132.000c.bszu_0", FT_UINT8, BASE_HEX, NULL, 0x0, |
5829 | 15 | "bszu_0 (Overflow of run-time meter): Bit = 1: overflow", HFILL }}, |
5830 | 15 | { &hf_s7comm_szl_0132_000c_bszu_1, |
5831 | 15 | { "bszu_1 (Reserved)", "s7comm.szl.0132.000c.bszu_1", FT_UINT8, BASE_HEX, NULL, 0x0, |
5832 | 15 | NULL, HFILL }}, |
5833 | 15 | { &hf_s7comm_szl_0132_000c_clock8, |
5834 | 15 | { "clock 8 (Run-time meter 8: Time in hours)", "s7comm.szl.0132.000c.clock8", FT_UINT32, BASE_DEC, NULL, 0x0, |
5835 | 15 | NULL, HFILL }}, |
5836 | 15 | { &hf_s7comm_szl_0132_000c_clock9, |
5837 | 15 | { "clock 9 (Run-time meter 9: Time in hours)", "s7comm.szl.0132.000c.clock9", FT_UINT32, BASE_DEC, NULL, 0x0, |
5838 | 15 | NULL, HFILL }}, |
5839 | 15 | { &hf_s7comm_szl_0132_000c_clock10, |
5840 | 15 | { "clock 10 (Run-time meter 10: Time in hours)", "s7comm.szl.0132.000c.clock10", FT_UINT32, BASE_DEC, NULL, 0x0, |
5841 | 15 | NULL, HFILL }}, |
5842 | 15 | { &hf_s7comm_szl_0132_000c_clock11, |
5843 | 15 | { "clock 11 (Run-time meter 11: Time in hours)", "s7comm.szl.0132.000c.clock11", FT_UINT32, BASE_DEC, NULL, 0x0, |
5844 | 15 | NULL, HFILL }}, |
5845 | 15 | { &hf_s7comm_szl_0132_000c_clock12, |
5846 | 15 | { "clock 12 (Run-time meter 12: Time in hours)", "s7comm.szl.0132.000c.clock12", FT_UINT32, BASE_DEC, NULL, 0x0, |
5847 | 15 | NULL, HFILL }}, |
5848 | 15 | { &hf_s7comm_szl_0132_000c_clock13, |
5849 | 15 | { "clock 13 (Run-time meter 13: Time in hours)", "s7comm.szl.0132.000c.clock13", FT_UINT32, BASE_DEC, NULL, 0x0, |
5850 | 15 | NULL, HFILL }}, |
5851 | 15 | { &hf_s7comm_szl_0132_000c_clock14, |
5852 | 15 | { "clock 14 (Run-time meter 14: Time in hours)", "s7comm.szl.0132.000c.clock14", FT_UINT32, BASE_DEC, NULL, 0x0, |
5853 | 15 | NULL, HFILL }}, |
5854 | 15 | { &hf_s7comm_szl_0132_000c_clock15, |
5855 | 15 | { "clock 15 (Run-time meter 15: Time in hours)", "s7comm.szl.0132.000c.clock15", FT_UINT32, BASE_DEC, NULL, 0x0, |
5856 | 15 | NULL, HFILL }}, |
5857 | 15 | { &hf_s7comm_szl_0132_000c_res, |
5858 | 15 | { "res (Reserved)", "s7comm.szl.0132.000c.res", FT_BYTES, BASE_NONE, NULL, 0x0, |
5859 | 15 | NULL, HFILL }} |
5860 | 15 | }; |
5861 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
5862 | 15 | } |
5863 | | |
5864 | | /*----------------------------------------------------------------------------------------------------*/ |
5865 | | static uint32_t |
5866 | | s7comm_decode_szl_id_0132_idx_000c(tvbuff_t *tvb, |
5867 | | proto_tree *tree, |
5868 | | uint32_t offset) |
5869 | 0 | { |
5870 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000c_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
5871 | 0 | offset += 2; |
5872 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000c_bszl_0, tvb, offset, 1, ENC_BIG_ENDIAN); |
5873 | 0 | offset += 1; |
5874 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000c_bszl_1, tvb, offset, 1, ENC_BIG_ENDIAN); |
5875 | 0 | offset += 1; |
5876 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000c_bszu_0, tvb, offset, 1, ENC_BIG_ENDIAN); |
5877 | 0 | offset += 1; |
5878 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000c_bszu_1, tvb, offset, 1, ENC_BIG_ENDIAN); |
5879 | 0 | offset += 1; |
5880 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000c_clock8, tvb, offset, 4, ENC_BIG_ENDIAN); |
5881 | 0 | offset += 4; |
5882 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000c_clock9, tvb, offset, 4, ENC_BIG_ENDIAN); |
5883 | 0 | offset += 4; |
5884 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000c_clock10, tvb, offset, 4, ENC_BIG_ENDIAN); |
5885 | 0 | offset += 4; |
5886 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000c_clock11, tvb, offset, 4, ENC_BIG_ENDIAN); |
5887 | 0 | offset += 4; |
5888 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000c_clock12, tvb, offset, 4, ENC_BIG_ENDIAN); |
5889 | 0 | offset += 4; |
5890 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000c_clock13, tvb, offset, 4, ENC_BIG_ENDIAN); |
5891 | 0 | offset += 4; |
5892 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000c_clock14, tvb, offset, 4, ENC_BIG_ENDIAN); |
5893 | 0 | offset += 4; |
5894 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000c_clock15, tvb, offset, 4, ENC_BIG_ENDIAN); |
5895 | 0 | offset += 4; |
5896 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0132_000c_res, tvb, offset, 2, ENC_NA); |
5897 | 0 | offset += 2; |
5898 | |
|
5899 | 0 | return offset; |
5900 | 0 | } |
5901 | | |
5902 | | /******************************************************************************************************* |
5903 | | * |
5904 | | * SZL-ID: 0xxy74 |
5905 | | * Index: 0x0000 |
5906 | | * Content: |
5907 | | * If you read the partial list SSL-ID W#16#xy74, with standard CPUs (if present) and |
5908 | | * with the H CPUs, you obtain the status of the module LEDs. |
5909 | | * |
5910 | | *******************************************************************************************************/ |
5911 | | static void |
5912 | | s7comm_szl_xy74_0000_register(int proto) |
5913 | 15 | { |
5914 | 15 | static hf_register_info hf[] = { |
5915 | 15 | { &hf_s7comm_szl_xy74_0000_cpu_led_id, |
5916 | 15 | { "cpu_led_id", "s7comm.szl.xy74.0000.cpu_led_id", FT_UINT16, BASE_HEX, NULL, 0x0, |
5917 | 15 | NULL, HFILL }}, |
5918 | 15 | { &hf_s7comm_szl_xy74_0000_cpu_led_id_rackno, |
5919 | 15 | { "Bits 0, 1, 2: Rack number", "s7comm.szl.xy74.0000.cpu_led_id.rackno", FT_UINT16, BASE_DEC, NULL, 0x0700, |
5920 | 15 | NULL, HFILL }}, |
5921 | 15 | { &hf_s7comm_szl_xy74_0000_cpu_led_id_cputype, |
5922 | 15 | { "Bit 3: CPU Type (0=Standby, 1=Master)", "s7comm.szl.xy74.0000.cpu_led_id.cputype", FT_UINT16, BASE_DEC, NULL, 0x0800, |
5923 | 15 | NULL, HFILL }}, |
5924 | 15 | { &hf_s7comm_szl_xy74_0000_cpu_led_id_id, |
5925 | 15 | { "Byte 1: LED ID", "s7comm.szl.xy74.0000.cpu_led_id.id", FT_UINT16, BASE_DEC, VALS(szl_0119_0174_ledid_index_names), 0x00ff, |
5926 | 15 | NULL, HFILL }}, |
5927 | 15 | { &hf_s7comm_szl_xy74_0000_led_on, |
5928 | 15 | { "Status of the LED", "s7comm.szl.xy74.0000.led_on", FT_UINT8, BASE_DEC, VALS(szl_xy74_0000_led_on_names), 0x00, |
5929 | 15 | NULL, HFILL }}, |
5930 | 15 | { &hf_s7comm_szl_xy74_0000_led_blink, |
5931 | 15 | { "Flashing status of the LED", "s7comm.szl.xy74.0000.led_blink", FT_UINT8, BASE_DEC, VALS(szl_xy74_0000_led_blink_names), 0x00, |
5932 | 15 | NULL, HFILL }} |
5933 | 15 | }; |
5934 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
5935 | 15 | } |
5936 | | |
5937 | | /*----------------------------------------------------------------------------------------------------*/ |
5938 | | static uint32_t |
5939 | | s7comm_decode_szl_id_xy74_idx_0000(tvbuff_t *tvb, |
5940 | | proto_tree *tree, |
5941 | | uint32_t offset) |
5942 | 0 | { |
5943 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy74_0000_cpu_led_id, tvb, offset, 2, ENC_BIG_ENDIAN); |
5944 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy74_0000_cpu_led_id_rackno, tvb, offset, 2, ENC_BIG_ENDIAN); |
5945 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy74_0000_cpu_led_id_cputype, tvb, offset, 2, ENC_BIG_ENDIAN); |
5946 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy74_0000_cpu_led_id_id, tvb, offset, 2, ENC_BIG_ENDIAN); |
5947 | 0 | offset += 2; |
5948 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy74_0000_led_on, tvb, offset, 1, ENC_BIG_ENDIAN); |
5949 | 0 | offset += 1; |
5950 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy74_0000_led_blink, tvb, offset, 1, ENC_BIG_ENDIAN); |
5951 | 0 | offset += 1; |
5952 | |
|
5953 | 0 | return offset; |
5954 | 0 | } |
5955 | | |
5956 | | /******************************************************************************************************* |
5957 | | * |
5958 | | * SZL-ID: 0xxy76 |
5959 | | * Index: 0x0000 |
5960 | | * Content: |
5961 | | * If you read the partial list SSL-ID W#16#xy76, you obtain the DNN-Id of the top DNN node. |
5962 | | * |
5963 | | *******************************************************************************************************/ |
5964 | | static void |
5965 | | s7comm_szl_xy76_0000_register(int proto) |
5966 | 15 | { |
5967 | 15 | static hf_register_info hf[] = { |
5968 | 15 | { &hf_s7comm_szl_xy76_0000_version, |
5969 | 15 | { "Version", "s7comm.szl.xy76.0000.version", FT_UINT16, BASE_DEC, NULL, 0x0, |
5970 | 15 | NULL, HFILL }}, |
5971 | 15 | { &hf_s7comm_szl_xy76_0000_top_dnn_id, |
5972 | 15 | { "Top DNN Id", "s7comm.szl.xy76.0000.top_dnn_id", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
5973 | 15 | NULL, HFILL }} |
5974 | 15 | }; |
5975 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
5976 | 15 | } |
5977 | | |
5978 | | /******************************************************************************************************* |
5979 | | * |
5980 | | * SZL-ID: 0xxy77 |
5981 | | * Index: 0xxxxx |
5982 | | * Content: |
5983 | | * If you read the partial list SSL-ID W#16#xy77, you obtain the relations of a DNN node. |
5984 | | * |
5985 | | *******************************************************************************************************/ |
5986 | | static void |
5987 | | s7comm_szl_xy77_xxxx_register(int proto) |
5988 | 15 | { |
5989 | 15 | static hf_register_info hf[] = { |
5990 | 15 | { &hf_s7comm_szl_xy77_xxxx_version, |
5991 | 15 | { "Version", "s7comm.szl.xy77.xxxx.version", FT_UINT16, BASE_DEC, NULL, 0x0, |
5992 | 15 | NULL, HFILL }}, |
5993 | 15 | { &hf_s7comm_szl_xy77_xxxx_num_parent, |
5994 | 15 | { "Number of parent objects", "s7comm.szl.xy77.xxxx.num_parent", FT_UINT16, BASE_DEC, NULL, 0x0, |
5995 | 15 | NULL, HFILL }}, |
5996 | 15 | { &hf_s7comm_szl_xy77_xxxx_obj_parent, |
5997 | 15 | { "Parent object", "s7comm.szl.xy77.xxxx.obj_parent", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
5998 | 15 | NULL, HFILL }}, |
5999 | 15 | { &hf_s7comm_szl_xy77_xxxx_num_child, |
6000 | 15 | { "Number of child objects", "s7comm.szl.xy77.xxxx.num_child", FT_UINT16, BASE_DEC, NULL, 0x0, |
6001 | 15 | NULL, HFILL }}, |
6002 | 15 | { &hf_s7comm_szl_xy77_xxxx_obj_child, |
6003 | 15 | { "Child object", "s7comm.szl.xy77.xxxx.obj_child", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
6004 | 15 | NULL, HFILL }}, |
6005 | 15 | { &hf_s7comm_szl_xy77_xxxx_num_redundancy_links, |
6006 | 15 | { "Number of redundancy links", "s7comm.szl.xy77.xxxx.num_red_links", FT_UINT16, BASE_DEC, NULL, 0x0, |
6007 | 15 | NULL, HFILL }}, |
6008 | 15 | { &hf_s7comm_szl_xy77_xxxx_obj_redundancy, |
6009 | 15 | { "Redundancy object", "s7comm.szl.xy77.xxxx.obj_red", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
6010 | 15 | NULL, HFILL }}, |
6011 | 15 | { &hf_s7comm_szl_xy77_xxxx_num_iodevice_agent_links, |
6012 | 15 | { "Number of redundancy links", "s7comm.szl.xy77.xxxx.num_red_links", FT_UINT16, BASE_DEC, NULL, 0x0, |
6013 | 15 | NULL, HFILL }}, |
6014 | 15 | { &hf_s7comm_szl_xy77_xxxx_obj_iodevice_agent, |
6015 | 15 | { "IO-Device agent object", "s7comm.szl.xy77.xxxx.obj_agent", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
6016 | 15 | NULL, HFILL }} |
6017 | 15 | }; |
6018 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
6019 | 15 | } |
6020 | | |
6021 | | /******************************************************************************************************* |
6022 | | * |
6023 | | * SZL-ID: 0xxy78 |
6024 | | * Index: 0xxxxx |
6025 | | * Content: |
6026 | | * If you read the partial list SSL-ID W#16#xy78, you obtain the diagnostic data of a DNN node. |
6027 | | * |
6028 | | *******************************************************************************************************/ |
6029 | | static void |
6030 | | s7comm_szl_xy78_xxxx_register(int proto) |
6031 | 15 | { |
6032 | 15 | static hf_register_info hf[] = { |
6033 | 15 | { &hf_s7comm_szl_xy78_xxxx_version, |
6034 | 15 | { "Version", "s7comm.szl.xy78.xxxx.version", FT_UINT16, BASE_DEC, NULL, 0x0, |
6035 | 15 | NULL, HFILL }}, |
6036 | 15 | { &hf_s7comm_szl_xy78_xxxx_unknown_version_data, |
6037 | 15 | { "Unknown versioned data", "s7comm.szl.xy78.xxxx.unknown_version_data", FT_BYTES, BASE_NONE, NULL, 0x0, |
6038 | 15 | NULL, HFILL }}, |
6039 | 15 | { &hf_s7comm_szl_xy78_xxxx_geo_addr, |
6040 | 15 | { "GEO. addr", "s7comm.szl.xy78.xxxx.geo", FT_NONE, BASE_NONE, NULL, 0x0, |
6041 | 15 | NULL, HFILL }}, |
6042 | 15 | { &hf_s7comm_szl_xy78_xxxx_geo_addr_subsys, |
6043 | 15 | { "Subsystem", "s7comm.szl.xy78.xxxx.geo.subsys", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
6044 | 15 | NULL, HFILL }}, |
6045 | 15 | { &hf_s7comm_szl_xy78_xxxx_geo_addr_station, |
6046 | 15 | { "Station", "s7comm.szl.xy78.xxxx.geo.station", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
6047 | 15 | NULL, HFILL }}, |
6048 | 15 | { &hf_s7comm_szl_xy78_xxxx_geo_addr_rack, |
6049 | 15 | { "Rack", "s7comm.szl.xy78.xxxx.geo.rack", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
6050 | 15 | NULL, HFILL }}, |
6051 | 15 | { &hf_s7comm_szl_xy78_xxxx_geo_addr_slot, |
6052 | 15 | { "Slot", "s7comm.szl.xy78.xxxx.geo.slot", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
6053 | 15 | NULL, HFILL }}, |
6054 | 15 | { &hf_s7comm_szl_xy78_xxxx_geo_addr_subslot, |
6055 | 15 | { "Subslot", "s7comm.szl.xy78.xxxx.geo.subslot", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
6056 | 15 | NULL, HFILL }}, |
6057 | 15 | { &hf_s7comm_szl_xy78_xxxx_name, |
6058 | 15 | { "Name", "s7comm.szl.xy78.xxxx.name", FT_STRING, BASE_NONE, NULL, 0x0, |
6059 | 15 | NULL, HFILL }}, |
6060 | 15 | { &hf_s7comm_szl_xy78_xxxx_short_name, |
6061 | 15 | { "Short name", "s7comm.szl.xy78.xxxx.short_name", FT_STRING, BASE_NONE, NULL, 0x0, |
6062 | 15 | NULL, HFILL }}, |
6063 | 15 | { &hf_s7comm_szl_xy78_xxxx_dnn_mode, |
6064 | 15 | { "DNN mode", "s7comm.szl.xy78.xxxx.dnn_mode", FT_UINT16, BASE_HEX, NULL, 0x0, |
6065 | 15 | NULL, HFILL }}, |
6066 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis, |
6067 | 15 | { "DIS", "s7comm.szl.xy78.xxxx.dis", FT_NONE, BASE_NONE, NULL, 0x0, |
6068 | 15 | NULL, HFILL }}, |
6069 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_num_cdiag, |
6070 | 15 | { "Number of component diags", "s7comm.szl.xy78.xxxx.dis.num_cdiag", FT_UINT16, BASE_HEX, NULL, 0x0, |
6071 | 15 | NULL, HFILL }}, |
6072 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_cdiags, |
6073 | 15 | { "Component diagnostics", "s7comm.szl.xy78.xxxx.dis.cdiag", FT_NONE, BASE_NONE, NULL, 0x0, |
6074 | 15 | NULL, HFILL }}, |
6075 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry, |
6076 | 15 | { "Diagnostic entry", "s7comm.szl.xy78.xxxx.dis.cdiag.entry", FT_NONE, BASE_NONE, NULL, 0x0, |
6077 | 15 | NULL, HFILL }}, |
6078 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_ch_nr, |
6079 | 15 | { "Channel number", "s7comm.szl.xy78.xxxx.dis.cdiag.entry.ch_nr", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
6080 | 15 | NULL, HFILL }}, |
6081 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_ch_prop, |
6082 | 15 | { "Channel properties", "s7comm.szl.xy78.xxxx.dis.cdiag.entry.ch_prop", FT_UINT16, BASE_HEX, NULL, 0x0, |
6083 | 15 | NULL, HFILL }}, |
6084 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_alcat, |
6085 | 15 | { "Alarm category", "s7comm.szl.xy78.xxxx.dis.cdiag.entry.alcat", FT_UINT16, BASE_DEC_HEX | BASE_EXT_STRING, |
6086 | 15 | &s7comm_szl_xy78_xxxx_dis_cdiag_entry_alcat_names_ext, 0x00, |
6087 | 15 | NULL, HFILL }}, |
6088 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_res, |
6089 | 15 | { "Reserved", "s7comm.szl.xy78.xxxx.dis.cdiag.entry.res", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
6090 | 15 | NULL, HFILL }}, |
6091 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_qualifier, |
6092 | 15 | { "Qualifier", "s7comm.szl.xy78.xxxx.dis.cdiag.entry.qual", FT_UINT32, BASE_HEX, NULL, 0x0, |
6093 | 15 | NULL, HFILL }}, |
6094 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_text_list_chet, |
6095 | 15 | { "TextList - CHET", "s7comm.szl.xy78.xxxx.dis.cdiag.entry.text_chet", FT_UINT16, BASE_DEC_HEX | BASE_EXT_STRING, |
6096 | 15 | &s7comm_szl_xy78_xxxx_dis_cdiag_entry_text_list_names_ext, 0x00, |
6097 | 15 | NULL, HFILL }}, |
6098 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_chet, |
6099 | 15 | { "CHET", "s7comm.szl.xy78.xxxx.dis.cdiag.chet", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
6100 | 15 | NULL, HFILL }}, |
6101 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_chet_text_list_8, |
6102 | 15 | { "Text", "s7comm.szl.xy78.xxxx.dis.cdiag.text_chet.l8.chet", FT_UINT16, BASE_DEC_HEX | BASE_EXT_STRING, |
6103 | 15 | &s7comm_szl_xy78_xxxx_dis_cdiag_entry_chet_text_list_8_names_ext, 0x00, |
6104 | 15 | NULL, HFILL }}, |
6105 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_text_list_echet, |
6106 | 15 | { "TextList - ECHET", "s7comm.szl.xy78.xxxx.dis.cdiag.entry.text_echet", FT_UINT16, BASE_DEC_HEX | BASE_EXT_STRING, |
6107 | 15 | &s7comm_szl_xy78_xxxx_dis_cdiag_entry_text_list_names_ext, 0x00, |
6108 | 15 | NULL, HFILL }}, |
6109 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_echet, |
6110 | 15 | { "ECHET", "s7comm.szl.xy78.xxxx.dis.cdiag.entry.echet", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
6111 | 15 | NULL, HFILL }}, |
6112 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_add_val, |
6113 | 15 | { "AddVal", "s7comm.szl.xy78.xxxx.dis.cdiag.entry.adval", FT_NONE, BASE_NONE, NULL, 0x0, |
6114 | 15 | NULL, HFILL }}, |
6115 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_add_val_0, |
6116 | 15 | { "W0", "s7comm.szl.xy78.xxxx.dis.cdiag.entry.adval.w0", FT_UINT16, BASE_HEX, NULL, 0x0, |
6117 | 15 | NULL, HFILL }}, |
6118 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_add_val_1, |
6119 | 15 | { "W1", "s7comm.szl.xy78.xxxx.dis.cdiag.entry.adval.w1", FT_UINT16, BASE_HEX, NULL, 0x0, |
6120 | 15 | NULL, HFILL }}, |
6121 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_add_val_2, |
6122 | 15 | { "W2", "s7comm.szl.xy78.xxxx.dis.cdiag.entry.adval.w2", FT_UINT16, BASE_HEX, NULL, 0x0, |
6123 | 15 | NULL, HFILL }}, |
6124 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_add_val_3, |
6125 | 15 | { "W3", "s7comm.szl.xy78.xxxx.dis.cdiag.entry.adval.w3", FT_UINT16, BASE_HEX, NULL, 0x0, |
6126 | 15 | NULL, HFILL }}, |
6127 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail, |
6128 | 15 | { "Component state details", "s7comm.szl.xy78.xxxx.dis.comp_state", FT_UINT32, BASE_HEX, NULL, 0x0, |
6129 | 15 | NULL, HFILL }}, |
6130 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_0_2, |
6131 | 15 | { "Submodule State AddInfo", "s7comm.szl.xy78.xxxx.dis.comp_state.bit0_2", FT_BOOLEAN, 32, NULL, 0x00000007, |
6132 | 15 | "Bit 0-2: Submodule State AddInfo", HFILL }}, |
6133 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_3, |
6134 | 15 | { "Qualified Diagnosis", "s7comm.szl.xy78.xxxx.dis.comp_state.bit3", FT_BOOLEAN, 32, NULL, 0x00000008, |
6135 | 15 | "Bit 3: Qualified Diagnosis", HFILL }}, |
6136 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_4, |
6137 | 15 | { "Maintenance Required", "s7comm.szl.xy78.xxxx.dis.comp_state.bit4", FT_BOOLEAN, 32, NULL, 0x00000010, |
6138 | 15 | "Bit 4: Maintenance Required", HFILL }}, |
6139 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_5, |
6140 | 15 | { "Maintenance Demanded", "s7comm.szl.xy78.xxxx.dis.comp_state.bit5", FT_BOOLEAN, 32, NULL, 0x00000020, |
6141 | 15 | "Bit 5: Maintenance Demanded", HFILL }}, |
6142 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_6, |
6143 | 15 | { "Diagnostic Information", "s7comm.szl.xy78.xxxx.dis.comp_state.bit6", FT_BOOLEAN, 32, NULL, 0x00000040, |
6144 | 15 | "Bit 6: Diagnostic Information", HFILL }}, |
6145 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_7_10, |
6146 | 15 | { "AR Information", "s7comm.szl.xy78.xxxx.dis.comp_state.bit7_10", FT_BOOLEAN, 32, NULL, 0x00000780, |
6147 | 15 | "Bit 7-10: AR Information", HFILL }}, |
6148 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_11_14, |
6149 | 15 | { "Ident Information", "s7comm.szl.xy78.xxxx.dis.comp_state.bit11_14", FT_BOOLEAN, 32, NULL, 0x00007800, |
6150 | 15 | "Bit 11-14: Ident Information", HFILL }}, |
6151 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_15, |
6152 | 15 | { "Form Indicator", "s7comm.szl.xy78.xxxx.dis.comp_state.bit15", FT_BOOLEAN, 32, NULL, 0x00008000, |
6153 | 15 | "Bit 15: Form Indicator", HFILL } }, |
6154 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_16, |
6155 | 15 | { "Deactivated", "s7comm.szl.xy78.xxxx.dis.comp_state.bit16", FT_BOOLEAN, 32, NULL, 0x00010000, |
6156 | 15 | "Bit 16: Deactivated", HFILL } }, |
6157 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_17, |
6158 | 15 | { "CiR", "s7comm.szl.xy78.xxxx.dis.comp_state.bit17", FT_BOOLEAN, 32, NULL, 0x00020000, |
6159 | 15 | "Bit 17: CiR", HFILL } }, |
6160 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_18, |
6161 | 15 | { "Input not available", "s7comm.szl.xy78.xxxx.dis.comp_state.bit18", FT_BOOLEAN, 32, NULL, 0x00040000, |
6162 | 15 | "Bit 18: Input not available", HFILL } }, |
6163 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_19, |
6164 | 15 | { "Output not available", "s7comm.szl.xy78.xxxx.dis.comp_state.bit19", FT_BOOLEAN, 32, NULL, 0x00080000, |
6165 | 15 | "Bit 19: Output not available", HFILL } }, |
6166 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_20, |
6167 | 15 | { "AS-Log overflow", "s7comm.szl.xy78.xxxx.dis.comp_state.bit20", FT_BOOLEAN, 32, NULL, 0x00100000, |
6168 | 15 | "Bit 20: AS-Log overflow", HFILL } }, |
6169 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_21, |
6170 | 15 | { "Out of service", "s7comm.szl.xy78.xxxx.dis.comp_state.bit21", FT_BOOLEAN, 32, NULL, 0x00200000, |
6171 | 15 | "Bit 21: Out of service", HFILL } }, |
6172 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_22, |
6173 | 15 | { "Partial Failure", "s7comm.szl.xy78.xxxx.dis.comp_state.bit22", FT_BOOLEAN, 32, NULL, 0x00400000, |
6174 | 15 | "Bit 22: Partial Failure", HFILL } }, |
6175 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_23, |
6176 | 15 | { "H-Unknown", "s7comm.szl.xy78.xxxx.dis.comp_state.bit23", FT_BOOLEAN, 32, NULL, 0x00800000, |
6177 | 15 | "Bit 23: H-Unknown", HFILL } }, |
6178 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_24, |
6179 | 15 | { "Passivated", "s7comm.szl.xy78.xxxx.dis.comp_state.bit24", FT_BOOLEAN, 32, NULL, 0x01000000, |
6180 | 15 | "Bit 24: Passivated", HFILL } }, |
6181 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_25, |
6182 | 15 | { "Simulated", "s7comm.szl.xy78.xxxx.dis.comp_state.bit25", FT_BOOLEAN, 32, NULL, 0x02000000, |
6183 | 15 | "Bit 25: Simulated", HFILL } }, |
6184 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_26, |
6185 | 15 | { "Local Operation", "s7comm.szl.xy78.xxxx.dis.comp_state.bit26", FT_BOOLEAN, 32, NULL, 0x04000000, |
6186 | 15 | "Bit 26: Local Operation", HFILL } }, |
6187 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail_b_27_31, |
6188 | 15 | { "Reserved", "s7comm.szl.xy78.xxxx.dis.comp_state.bit27_31", FT_BOOLEAN, 32, NULL, 0xF8000000, |
6189 | 15 | "Bit 27-31: Reserved", HFILL } }, |
6190 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_io_state, |
6191 | 15 | { "IO state", "s7comm.szl.xy78.xxxx.dis.io_state", FT_UINT16, BASE_HEX, NULL, 0x0, |
6192 | 15 | NULL, HFILL }}, |
6193 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_io_state_0, |
6194 | 15 | { "Good", "s7comm.szl.xy78.xxxx.dis.io_state.bit0", FT_BOOLEAN, 16, NULL, 0x0001, |
6195 | 15 | "Bit 0: Good", HFILL }}, |
6196 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_io_state_1, |
6197 | 15 | { "Deactivated", "s7comm.szl.xy78.xxxx.dis.io_state.bit1", FT_BOOLEAN, 16, NULL, 0x0002, |
6198 | 15 | "Bit 1: Deactivated", HFILL }}, |
6199 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_io_state_2, |
6200 | 15 | { "Maint. Req.", "s7comm.szl.xy78.xxxx.dis.io_state.bit2", FT_BOOLEAN, 16, NULL, 0x0004, |
6201 | 15 | "Bit 2: Maint. Req.", HFILL }}, |
6202 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_io_state_3, |
6203 | 15 | { "Maint. Dem.", "s7comm.szl.xy78.xxxx.dis.io_state.bit3", FT_BOOLEAN, 16, NULL, 0x0008, |
6204 | 15 | "Bit 3: Maint. Dem.", HFILL }}, |
6205 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_io_state_4, |
6206 | 15 | { "Error", "s7comm.szl.xy78.xxxx.dis.io_state.bit4", FT_BOOLEAN, 16, NULL, 0x0010, |
6207 | 15 | "Bit 4: Error", HFILL }}, |
6208 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_io_state_5, |
6209 | 15 | { "Not reachable", "s7comm.szl.xy78.xxxx.dis.io_state.bit5", FT_BOOLEAN, 16, NULL, 0x0020, |
6210 | 15 | "Bit 5: Not reachable", HFILL } }, |
6211 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_io_state_6, |
6212 | 15 | { "Qualified", "s7comm.szl.xy78.xxxx.dis.io_state.bit6", FT_BOOLEAN, 16, NULL, 0x0040, |
6213 | 15 | "Bit 6: Qualified", HFILL } }, |
6214 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_io_state_7, |
6215 | 15 | { "Not available", "s7comm.szl.xy78.xxxx.dis.io_state.bit7", FT_BOOLEAN, 16, NULL, 0x0080, |
6216 | 15 | "Bit 7: Not available", HFILL } }, |
6217 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_io_state_8_14, |
6218 | 15 | { "Reserved", "s7comm.szl.xy78.xxxx.dis.io_state.bit8_14", FT_BOOLEAN, 16, NULL, 0x7F00, |
6219 | 15 | "Bit 8-14: Reserved", HFILL } }, |
6220 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_io_state_15, |
6221 | 15 | { "Hardware fault", "s7comm.szl.xy78.xxxx.dis.io_state.bit15_res", FT_BOOLEAN, 16, NULL, 0x8000, |
6222 | 15 | "Bit 15: Hardware fault", HFILL } }, |
6223 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_res, |
6224 | 15 | { "Reserved", "s7comm.szl.xy78.xxxx.dis.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, |
6225 | 15 | NULL, HFILL }}, |
6226 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_maint_state, |
6227 | 15 | { "Maintenance state", "s7comm.szl.xy78.xxxx.dis.maint", FT_UINT32, BASE_HEX, VALS(s7comm_szl_xy78_xxxx_dis_maint_state_names), 0x00, |
6228 | 15 | NULL, HFILL }}, |
6229 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_operating_state, |
6230 | 15 | { "Operating state", "s7comm.szl.xy78.xxxx.dis.operating_state", FT_UINT16, BASE_HEX, NULL, 0x0, |
6231 | 15 | NULL, HFILL }}, |
6232 | 15 | { &hf_s7comm_szl_xy78_xxxx_dis_own_state, |
6233 | 15 | { "Own state", "s7comm.szl.xy78.xxxx.dis.own_state", FT_UINT16, BASE_HEX, VALS(s7comm_szl_xy78_xxxx_dis_own_state_names), 0x00, |
6234 | 15 | NULL, HFILL }}, |
6235 | 15 | { &hf_s7comm_szl_xy78_xxxx_sub_ord_io_state, |
6236 | 15 | { "Subordinated io state", "s7comm.szl.xy78.xxxx.sub_io_state", FT_UINT16, BASE_HEX, NULL, 0x0, |
6237 | 15 | NULL, HFILL }}, |
6238 | 15 | { &hf_s7comm_szl_xy78_xxxx_sub_ord_state, |
6239 | 15 | { "Subordinated state", "s7comm.szl.xy78.xxxx.sub_state", FT_UINT16, BASE_HEX, VALS(s7comm_szl_xy78_xxxx_dis_own_state_names), 0x00, |
6240 | 15 | NULL, HFILL } }, |
6241 | 15 | { &hf_s7comm_szl_xy78_xxxx_disp_own_state, |
6242 | 15 | { "Displayed own state", "s7comm.szl.xy78.xxxx.disp_own_state", FT_UINT16, BASE_HEX, NULL, 0x0, |
6243 | 15 | NULL, HFILL } }, |
6244 | 15 | { &hf_s7comm_szl_xy78_xxxx_disp_sub_ord_state, |
6245 | 15 | { "Displayed sub. state", "s7comm.szl.xy78.xxxx.disp_sub_state", FT_UINT16, BASE_HEX, NULL, 0x0, |
6246 | 15 | NULL, HFILL } }, |
6247 | 15 | { &hf_s7comm_szl_xy78_xxxx_disp_mode, |
6248 | 15 | { "Display mode", "s7comm.szl.xy78.xxxx.disp_mode", FT_UINT16, BASE_HEX, NULL, 0x0, |
6249 | 15 | NULL, HFILL } }, |
6250 | 15 | { &hf_s7comm_szl_xy78_xxxx_vendor, |
6251 | 15 | { "Vendor-Id", "s7comm.szl.xy78.xxxx.vendor_high", FT_UINT16, BASE_HEX, NULL, 0x0, |
6252 | 15 | NULL, HFILL } }, |
6253 | 15 | { &hf_s7comm_szl_xy78_xxxx_order_id, |
6254 | 15 | { "Order-Id", "s7comm.szl.xy78.xxxx.order_id", FT_STRING, BASE_NONE, NULL, 0x0, |
6255 | 15 | NULL, HFILL } }, |
6256 | 15 | { &hf_s7comm_szl_xy78_xxxx_im1, |
6257 | 15 | { "I&M1", "s7comm.szl.xy78.xxxx.ium1", FT_NONE, BASE_NONE, NULL, 0x0, |
6258 | 15 | NULL, HFILL } }, |
6259 | 15 | { &hf_s7comm_szl_xy78_xxxx_iam1_function, |
6260 | 15 | { "Function", "s7comm.szl.xy78.xxxx.ium1.func", FT_STRING, BASE_NONE, NULL, 0x0, |
6261 | 15 | NULL, HFILL } }, |
6262 | 15 | { &hf_s7comm_szl_xy78_xxxx_iam1_location, |
6263 | 15 | { "Location", "s7comm.szl.xy78.xxxx.ium1.loc", FT_STRING, BASE_NONE, NULL, 0x0, |
6264 | 15 | NULL, HFILL } }, |
6265 | 15 | { &hf_s7comm_szl_xy78_xxxx_asset_id, |
6266 | 15 | { "Asset-Id", "s7comm.szl.xy78.xxxx.asset", FT_STRING, BASE_NONE, NULL, 0x0, |
6267 | 15 | NULL, HFILL } }, |
6268 | 15 | { &hf_s7comm_szl_xy78_xxxx_tlv, |
6269 | 15 | { "TLV", "s7comm.szl.xy78.xxxx.tlv", FT_NONE, BASE_NONE, NULL, 0x0, |
6270 | 15 | NULL, HFILL } }, |
6271 | 15 | { &hf_s7comm_szl_xy78_xxxx_tlv_num, |
6272 | 15 | { "Count", "s7comm.szl.xy78.xxxx.tlv.num", FT_UINT16, BASE_DEC, NULL, 0x0, |
6273 | 15 | NULL, HFILL } }, |
6274 | 15 | { &hf_s7comm_szl_xy78_xxxx_tlv_item, |
6275 | 15 | { "Item", "s7comm.szl.xy78.xxxx.tlv.item", FT_NONE, BASE_NONE, NULL, 0x0, |
6276 | 15 | NULL, HFILL } }, |
6277 | 15 | { &hf_s7comm_szl_xy78_xxxx_tlv_item_type, |
6278 | 15 | { "Type", "s7comm.szl.xy78.xxxx.tlv.item.type", FT_UINT8, BASE_DEC, VALS(szl_xy78_xxxx_tlv_item_type_names), 0x00, |
6279 | 15 | NULL, HFILL } }, |
6280 | 15 | { &hf_s7comm_szl_xy78_xxxx_tlv_item_len, |
6281 | 15 | { "Length", "s7comm.szl.xy78.xxxx.tlv.item.len", FT_UINT8, BASE_DEC, NULL, 0x0, |
6282 | 15 | NULL, HFILL } }, |
6283 | 15 | { &hf_s7comm_szl_xy78_xxxx_tlv_item_data, |
6284 | 15 | { "Data", "s7comm.szl.xy78.xxxx.tlv.item.data", FT_BYTES, BASE_NONE, NULL, 0x0, |
6285 | 15 | NULL, HFILL } }, |
6286 | 15 | { &hf_s7comm_szl_xy78_xxxx_tlv_item_dti_type, |
6287 | 15 | { "DTI-Type", "s7comm.szl.xy78.xxxx.tlv.item.dti", FT_UINT16, BASE_DEC, VALS(szl_xy78_xxxx_tlv_item_dti_type_name), 0x00, |
6288 | 15 | NULL, HFILL } }, |
6289 | 15 | }; |
6290 | | |
6291 | | /* Register Subtrees */ |
6292 | 15 | static int* ett[] = { |
6293 | 15 | &ett_s7comm_szl_xy78_xxxx_geo_addr, |
6294 | 15 | &ett_s7comm_szl_xy78_xxxx_dis, |
6295 | 15 | &ett_s7comm_szl_xy78_xxxx_dis_cdiags, |
6296 | 15 | &ett_s7comm_szl_xy78_xxxx_dis_cdiag_entry, |
6297 | 15 | &ett_s7comm_szl_xy78_xxxx_dis_cdiag_add_val, |
6298 | 15 | &ett_s7comm_szl_xy78_xxxx_iam1, |
6299 | 15 | &ett_s7comm_szl_xy78_xxxx_tlv, |
6300 | 15 | &ett_s7comm_szl_xy78_xxxx_tlv_item, |
6301 | 15 | &ett_s7comm_szl_xy78_xxxx_dis_io_state, |
6302 | 15 | &ett_s7comm_szl_xy78_xxxx_sub_ord_io_state, |
6303 | 15 | &ett_s7comm_szl_xy78_xxxx_dis_comp_state_detail |
6304 | 15 | }; |
6305 | | |
6306 | 15 | proto_register_subtree_array(ett, array_length(ett)); |
6307 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
6308 | 15 | } |
6309 | | |
6310 | | /******************************************************************************************************* |
6311 | | * |
6312 | | * SZL-ID: 0xxy76 |
6313 | | * Index: 0x0000 |
6314 | | * Content: |
6315 | | * If you read the partial list SSL-ID W#16#xy76, you obtain the DNN-Id of the top DNN node. |
6316 | | * |
6317 | | *******************************************************************************************************/ |
6318 | | static uint32_t |
6319 | | s7comm_decode_szl_id_xy76_idx_0000(tvbuff_t *tvb, |
6320 | | proto_tree *tree, |
6321 | | uint32_t offset) |
6322 | 0 | { |
6323 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy76_0000_version, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6324 | 0 | offset += 2; |
6325 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy76_0000_top_dnn_id, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6326 | 0 | offset += 2; |
6327 | |
|
6328 | 0 | return offset; |
6329 | 0 | } |
6330 | | |
6331 | | /******************************************************************************************************* |
6332 | | * |
6333 | | * SZL-ID: 0xxy77 |
6334 | | * Index: 0xxxxx |
6335 | | * Content: |
6336 | | * If you read the partial list SSL-ID W#16#xy77, you obtain the relations of the given DNN node. |
6337 | | * |
6338 | | *******************************************************************************************************/ |
6339 | | static uint32_t |
6340 | | s7comm_decode_szl_id_xy77_idx_xxxx(tvbuff_t *tvb, |
6341 | | proto_tree *tree, |
6342 | | uint32_t offset) |
6343 | 0 | { |
6344 | 0 | uint16_t num_parent; |
6345 | 0 | uint16_t num_child; |
6346 | 0 | uint16_t num_red; |
6347 | 0 | uint16_t num_agent; |
6348 | 0 | uint16_t i; |
6349 | |
|
6350 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy77_xxxx_version, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6351 | 0 | offset += 2; |
6352 | 0 | proto_tree_add_item_ret_uint16(tree, hf_s7comm_szl_xy77_xxxx_num_parent, tvb, offset, 2, ENC_LITTLE_ENDIAN, &num_parent); |
6353 | 0 | offset += 2; |
6354 | |
|
6355 | 0 | for (i = 0; i < num_parent; i++) { |
6356 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy77_xxxx_obj_parent, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6357 | 0 | offset += 2; |
6358 | 0 | } |
6359 | |
|
6360 | 0 | proto_tree_add_item_ret_uint16(tree, hf_s7comm_szl_xy77_xxxx_num_child, tvb, offset, 2, ENC_LITTLE_ENDIAN, &num_child); |
6361 | 0 | offset += 2; |
6362 | |
|
6363 | 0 | for (i = 0; i < num_child; i++) { |
6364 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy77_xxxx_obj_child, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6365 | 0 | offset += 2; |
6366 | 0 | } |
6367 | |
|
6368 | 0 | proto_tree_add_item_ret_uint16(tree, hf_s7comm_szl_xy77_xxxx_num_redundancy_links, tvb, offset, 2, ENC_LITTLE_ENDIAN, &num_red); |
6369 | 0 | offset += 2; |
6370 | |
|
6371 | 0 | for (i = 0; i < num_red; i++) { |
6372 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy77_xxxx_obj_redundancy, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6373 | 0 | offset += 2; |
6374 | 0 | } |
6375 | |
|
6376 | 0 | proto_tree_add_item_ret_uint16(tree, hf_s7comm_szl_xy77_xxxx_num_iodevice_agent_links, tvb, offset, 2, ENC_LITTLE_ENDIAN, &num_agent); |
6377 | 0 | offset += 2; |
6378 | |
|
6379 | 0 | for (i = 0; i < num_agent; i++) { |
6380 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy77_xxxx_obj_iodevice_agent, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6381 | 0 | offset += 2; |
6382 | 0 | } |
6383 | |
|
6384 | 0 | return offset; |
6385 | 0 | } |
6386 | | |
6387 | | /******************************************************************************************************* |
6388 | | * |
6389 | | * SZL-ID: 0xxy78 |
6390 | | * Index: 0xxxxx |
6391 | | * Content: |
6392 | | * If you read the partial list SSL-ID W#16#xy78, you obtain the diagnostic data of a DNN node. |
6393 | | * |
6394 | | *******************************************************************************************************/ |
6395 | | static uint32_t |
6396 | | s7comm_decode_szl_id_xy78_idx_xxxx(tvbuff_t *tvb, |
6397 | | packet_info *pinfo, |
6398 | | proto_tree *tree, |
6399 | | uint32_t offset) |
6400 | 0 | { |
6401 | 0 | proto_item *geo_addr_item = NULL; |
6402 | 0 | proto_tree *geo_addr_item_tree = NULL; |
6403 | 0 | proto_item *dis_item = NULL; |
6404 | 0 | proto_tree *dis_item_tree = NULL; |
6405 | 0 | proto_item *cdiags_item = NULL; |
6406 | 0 | proto_tree *cdiags_item_tree = NULL; |
6407 | 0 | proto_item *cdiag_entry_item = NULL; |
6408 | 0 | proto_tree *cdiag_entry_item_tree = NULL; |
6409 | 0 | proto_item *adval_item = NULL; |
6410 | 0 | proto_tree *adval_item_tree = NULL; |
6411 | 0 | proto_item *iam1_item = NULL; |
6412 | 0 | proto_tree *iam1_item_tree = NULL; |
6413 | 0 | proto_item *tlv_item = NULL; |
6414 | 0 | proto_tree *tlv_item_tree = NULL; |
6415 | 0 | proto_item *tlv_item_item = NULL; |
6416 | 0 | proto_tree *tlv_item_item_tree = NULL; |
6417 | 0 | proto_item* chet_item_gen = NULL; |
6418 | 0 | proto_item* echet_item_gen = NULL; |
6419 | |
|
6420 | 0 | uint16_t num_cdiag; |
6421 | 0 | int32_t dis_cdiag_total_len; |
6422 | 0 | int32_t dis_total_len; |
6423 | 0 | uint16_t i; |
6424 | 0 | int32_t remaining_bytes; |
6425 | 0 | uint8_t num_tlvs; |
6426 | 0 | uint8_t tlv_item_len; |
6427 | 0 | uint8_t tlv_type; |
6428 | 0 | uint16_t version; |
6429 | 0 | uint16_t text_list; |
6430 | 0 | uint16_t chet; |
6431 | 0 | uint16_t echet; |
6432 | 0 | int32_t chet_entry_count = 0; |
6433 | 0 | const uint16_t cdiag_entry_len = 28; |
6434 | 0 | const uint16_t supported_version = 0x0005; |
6435 | |
|
6436 | 0 | proto_tree_add_item_ret_uint16(tree, hf_s7comm_szl_xy78_xxxx_version, tvb, offset, 2, ENC_LITTLE_ENDIAN, &version); |
6437 | 0 | offset += 2; |
6438 | | |
6439 | | /*unknown version data*/ |
6440 | 0 | if (version != supported_version) { |
6441 | 0 | remaining_bytes = tvb_reported_length_remaining(tvb, offset); |
6442 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy78_xxxx_unknown_version_data, tvb, offset, remaining_bytes, ENC_NA); |
6443 | 0 | offset += remaining_bytes; |
6444 | 0 | return offset; |
6445 | 0 | } |
6446 | | |
6447 | | /*GEO address*/ |
6448 | 0 | geo_addr_item = proto_tree_add_item(tree, hf_s7comm_szl_xy78_xxxx_geo_addr, tvb, offset, 8, ENC_NA); |
6449 | 0 | geo_addr_item_tree = proto_item_add_subtree(geo_addr_item, ett_s7comm_szl_xy78_xxxx_geo_addr); |
6450 | 0 | proto_tree_add_item(geo_addr_item_tree, hf_s7comm_szl_xy78_xxxx_geo_addr_subsys, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6451 | 0 | offset += 2; |
6452 | 0 | proto_tree_add_item(geo_addr_item_tree, hf_s7comm_szl_xy78_xxxx_geo_addr_station, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6453 | 0 | offset += 2; |
6454 | 0 | proto_tree_add_item(geo_addr_item_tree, hf_s7comm_szl_xy78_xxxx_geo_addr_rack, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6455 | 0 | offset += 2; |
6456 | 0 | proto_tree_add_item(geo_addr_item_tree, hf_s7comm_szl_xy78_xxxx_geo_addr_slot, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6457 | 0 | offset += 2; |
6458 | 0 | proto_tree_add_item(geo_addr_item_tree, hf_s7comm_szl_xy78_xxxx_geo_addr_subslot, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6459 | 0 | offset += 2; |
6460 | | |
6461 | | /*Name data*/ |
6462 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy78_xxxx_name, tvb, offset, 32, ENC_ASCII); |
6463 | 0 | offset += 32; |
6464 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy78_xxxx_short_name, tvb, offset, 32, ENC_ASCII); |
6465 | 0 | offset += 32; |
6466 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy78_xxxx_dnn_mode, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6467 | 0 | offset += 2; |
6468 | | |
6469 | | /*DIS section*/ |
6470 | 0 | num_cdiag = tvb_get_letohs(tvb, offset); |
6471 | 0 | dis_cdiag_total_len = cdiag_entry_len * num_cdiag; |
6472 | 0 | dis_total_len = dis_cdiag_total_len + 18; |
6473 | 0 | dis_item = proto_tree_add_item(tree, hf_s7comm_szl_xy78_xxxx_dis, tvb, offset, dis_total_len, ENC_NA); |
6474 | 0 | dis_item_tree = proto_item_add_subtree(dis_item, ett_s7comm_szl_xy78_xxxx_dis); |
6475 | 0 | proto_tree_add_item(dis_item_tree, hf_s7comm_szl_xy78_xxxx_dis_num_cdiag, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6476 | 0 | offset += 2; |
6477 | | |
6478 | | /*DIS component diagnostic entry section*/ |
6479 | 0 | if (num_cdiag != 0) { |
6480 | 0 | cdiags_item = proto_tree_add_item(dis_item_tree, hf_s7comm_szl_xy78_xxxx_dis_cdiags, tvb, offset, dis_cdiag_total_len, ENC_NA); |
6481 | 0 | cdiags_item_tree = proto_item_add_subtree(cdiags_item, ett_s7comm_szl_xy78_xxxx_dis_cdiags); |
6482 | |
|
6483 | 0 | for (i = 0; i < num_cdiag; i++) { |
6484 | 0 | cdiag_entry_item = proto_tree_add_item(cdiags_item_tree, hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry, tvb, offset, cdiag_entry_len, ENC_NA); |
6485 | 0 | cdiag_entry_item_tree = proto_item_add_subtree(cdiag_entry_item, ett_s7comm_szl_xy78_xxxx_dis_cdiag_entry); |
6486 | 0 | proto_tree_add_item(cdiag_entry_item_tree, hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_ch_nr, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6487 | 0 | offset += 2; |
6488 | 0 | proto_tree_add_item(cdiag_entry_item_tree, hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_ch_prop, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6489 | 0 | offset += 2; |
6490 | 0 | proto_tree_add_item(cdiag_entry_item_tree, hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_alcat, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6491 | 0 | offset += 2; |
6492 | 0 | proto_tree_add_item(cdiag_entry_item_tree, hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_res, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6493 | 0 | offset += 2; |
6494 | 0 | proto_tree_add_item(cdiag_entry_item_tree, hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_qualifier, tvb, offset, 4, ENC_LITTLE_ENDIAN); |
6495 | 0 | offset += 4; |
6496 | | |
6497 | | /*evaluate channel error type (CHET)*/ |
6498 | 0 | chet = tvb_get_letohs(tvb, offset); |
6499 | 0 | proto_tree_add_item(cdiag_entry_item_tree, hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_chet, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6500 | 0 | offset += 2; |
6501 | 0 | text_list = tvb_get_letohs(tvb, offset); |
6502 | 0 | proto_tree_add_item(cdiag_entry_item_tree, hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_text_list_chet, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6503 | | |
6504 | | /*add corresponding text for TextList 8*/ |
6505 | 0 | if (text_list == 8 && chet != 0 && chet != 0xFFFF) { |
6506 | 0 | chet_item_gen = proto_tree_add_uint(cdiag_entry_item_tree, hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_chet_text_list_8, tvb, offset-2, 2, chet); |
6507 | 0 | PROTO_ITEM_SET_GENERATED(chet_item_gen); |
6508 | 0 | proto_item_append_text(cdiag_entry_item, " / %s", |
6509 | 0 | val_to_str_ext(pinfo->pool, chet, &s7comm_szl_xy78_xxxx_dis_cdiag_entry_chet_text_list_8_names_ext, "unknown 0x%04x")); |
6510 | 0 | } else { |
6511 | 0 | proto_item_append_text(cdiag_entry_item, " / CHET: 0x%04x", chet); |
6512 | 0 | } |
6513 | |
|
6514 | 0 | if (chet != 0 && chet != 0xFFFF) { |
6515 | 0 | chet_entry_count++; |
6516 | 0 | } |
6517 | 0 | offset += 2; |
6518 | | |
6519 | | /*evaluate ext. channel error type (ECHET)*/ |
6520 | 0 | proto_tree_add_item_ret_uint16(cdiag_entry_item_tree, hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_echet, tvb, offset, 2, ENC_LITTLE_ENDIAN, &echet); |
6521 | 0 | offset += 2; |
6522 | 0 | proto_tree_add_item_ret_uint16(cdiag_entry_item_tree, hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_text_list_echet, tvb, offset, 2, ENC_LITTLE_ENDIAN, &text_list); |
6523 | 0 | if (text_list == 8 && echet != 0) { |
6524 | 0 | echet_item_gen = proto_tree_add_uint(cdiag_entry_item_tree, hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_chet_text_list_8, tvb, offset - 2, 2, echet); |
6525 | 0 | PROTO_ITEM_SET_GENERATED(echet_item_gen); |
6526 | 0 | } |
6527 | 0 | offset += 2; |
6528 | | |
6529 | | /*Addvalue decoding*/ |
6530 | 0 | adval_item = proto_tree_add_item(cdiag_entry_item_tree, hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_add_val, tvb, offset, 8, ENC_NA); |
6531 | 0 | adval_item_tree = proto_item_add_subtree(adval_item, ett_s7comm_szl_xy78_xxxx_dis_cdiag_add_val); |
6532 | 0 | proto_tree_add_item(adval_item_tree, hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_add_val_0, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6533 | 0 | offset += 2; |
6534 | 0 | proto_tree_add_item(adval_item_tree, hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_add_val_1, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6535 | 0 | offset += 2; |
6536 | 0 | proto_tree_add_item(adval_item_tree, hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_add_val_2, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6537 | 0 | offset += 2; |
6538 | 0 | proto_tree_add_item(adval_item_tree, hf_s7comm_szl_xy78_xxxx_dis_cdiag_entry_add_val_3, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6539 | 0 | offset += 2; |
6540 | 0 | } |
6541 | 0 | } |
6542 | |
|
6543 | 0 | if (chet_entry_count != 0) { |
6544 | 0 | col_append_fstr(pinfo->cinfo, COL_INFO, " [%u CHET entry]", chet_entry_count); |
6545 | 0 | } |
6546 | |
|
6547 | 0 | proto_tree_add_bitmask(dis_item_tree, tvb, offset, hf_s7comm_szl_xy78_xxxx_dis_comp_state_detail, |
6548 | 0 | ett_s7comm_szl_xy78_xxxx_dis_comp_state_detail, s7comm_szl_xy78_xxxx_dis_comp_state_detail_fields, ENC_LITTLE_ENDIAN); |
6549 | 0 | offset += 4; |
6550 | 0 | proto_tree_add_bitmask(dis_item_tree, tvb, offset, hf_s7comm_szl_xy78_xxxx_dis_io_state, |
6551 | 0 | ett_s7comm_szl_xy78_xxxx_dis_io_state, s7comm_szl_xy78_xxxx_dis_io_state_fields, ENC_LITTLE_ENDIAN); |
6552 | 0 | offset += 2; |
6553 | 0 | proto_tree_add_item(dis_item_tree, hf_s7comm_szl_xy78_xxxx_dis_res, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6554 | 0 | offset += 2; |
6555 | 0 | proto_tree_add_item(dis_item_tree, hf_s7comm_szl_xy78_xxxx_dis_maint_state, tvb, offset, 4, ENC_LITTLE_ENDIAN); |
6556 | 0 | offset += 4; |
6557 | 0 | proto_tree_add_item(dis_item_tree, hf_s7comm_szl_xy78_xxxx_dis_operating_state, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6558 | 0 | offset += 2; |
6559 | 0 | proto_tree_add_item(dis_item_tree, hf_s7comm_szl_xy78_xxxx_dis_own_state, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6560 | 0 | offset += 2; |
6561 | | |
6562 | | /*Further state information*/ |
6563 | 0 | proto_tree_add_bitmask(dis_item_tree, tvb, offset, hf_s7comm_szl_xy78_xxxx_sub_ord_io_state, |
6564 | 0 | ett_s7comm_szl_xy78_xxxx_sub_ord_io_state, s7comm_szl_xy78_xxxx_sub_ord_io_state_fields, ENC_LITTLE_ENDIAN); |
6565 | 0 | offset += 2; |
6566 | 0 | proto_tree_add_item(dis_item_tree, hf_s7comm_szl_xy78_xxxx_sub_ord_state, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6567 | 0 | offset += 2; |
6568 | 0 | proto_tree_add_item(dis_item_tree, hf_s7comm_szl_xy78_xxxx_disp_own_state, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6569 | 0 | offset += 2; |
6570 | 0 | proto_tree_add_item(dis_item_tree, hf_s7comm_szl_xy78_xxxx_disp_sub_ord_state, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6571 | 0 | offset += 2; |
6572 | 0 | proto_tree_add_item(dis_item_tree, hf_s7comm_szl_xy78_xxxx_disp_mode, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6573 | 0 | offset += 2; |
6574 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy78_xxxx_vendor, tvb, offset, 2, ENC_BIG_ENDIAN); |
6575 | 0 | offset += 2; |
6576 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy78_xxxx_order_id, tvb, offset, 20, ENC_ASCII); |
6577 | 0 | offset += 20; |
6578 | | |
6579 | | /*I&M1 data*/ |
6580 | 0 | iam1_item = proto_tree_add_item(tree, hf_s7comm_szl_xy78_xxxx_im1, tvb, offset, 54, ENC_NA); |
6581 | 0 | iam1_item_tree = proto_item_add_subtree(iam1_item, ett_s7comm_szl_xy78_xxxx_iam1); |
6582 | 0 | proto_tree_add_item(iam1_item_tree, hf_s7comm_szl_xy78_xxxx_iam1_function, tvb, offset, 32, ENC_ASCII); |
6583 | 0 | offset += 32; |
6584 | 0 | proto_tree_add_item(iam1_item_tree, hf_s7comm_szl_xy78_xxxx_iam1_location, tvb, offset, 22, ENC_ASCII); |
6585 | 0 | offset += 22; |
6586 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_xy78_xxxx_asset_id, tvb, offset, 32, ENC_ASCII); |
6587 | 0 | offset += 32; |
6588 | | |
6589 | | /*check for TLVs*/ |
6590 | 0 | remaining_bytes = tvb_reported_length_remaining(tvb, offset); |
6591 | 0 | if (remaining_bytes == 0) { |
6592 | 0 | return offset; |
6593 | 0 | } |
6594 | | |
6595 | 0 | tlv_item = proto_tree_add_item(tree, hf_s7comm_szl_xy78_xxxx_tlv, tvb, offset, remaining_bytes, ENC_NA); |
6596 | 0 | tlv_item_tree = proto_item_add_subtree(tlv_item, ett_s7comm_szl_xy78_xxxx_tlv); |
6597 | 0 | num_tlvs = tvb_get_uint8(tvb, offset); |
6598 | 0 | proto_tree_add_item(tlv_item_tree, hf_s7comm_szl_xy78_xxxx_tlv_num, tvb, offset, 2, ENC_LITTLE_ENDIAN); |
6599 | 0 | offset += 2; |
6600 | | |
6601 | | /*iterate over TLVs*/ |
6602 | 0 | for (i = 0; i < num_tlvs; i++) { |
6603 | 0 | tlv_item_item = proto_tree_add_item(tlv_item_tree, hf_s7comm_szl_xy78_xxxx_tlv_item, tvb, offset, 2, ENC_NA); |
6604 | 0 | tlv_item_item_tree = proto_item_add_subtree(tlv_item_item, ett_s7comm_szl_xy78_xxxx_tlv_item); |
6605 | |
|
6606 | 0 | proto_tree_add_item_ret_uint8(tlv_item_item_tree, hf_s7comm_szl_xy78_xxxx_tlv_item_type, tvb, offset, 1, ENC_LITTLE_ENDIAN, &tlv_type); |
6607 | 0 | offset += 1; |
6608 | 0 | proto_tree_add_item_ret_uint8(tlv_item_item_tree, hf_s7comm_szl_xy78_xxxx_tlv_item_len, tvb, offset, 1, ENC_LITTLE_ENDIAN, &tlv_item_len); |
6609 | 0 | offset += 1; |
6610 | 0 | switch (tlv_type) { |
6611 | 0 | case 1: |
6612 | 0 | proto_tree_add_item(tlv_item_item_tree, hf_s7comm_szl_xy78_xxxx_tlv_item_dti_type, tvb, offset, tlv_item_len, ENC_LITTLE_ENDIAN); |
6613 | 0 | offset += tlv_item_len; |
6614 | 0 | break; |
6615 | 0 | default: |
6616 | 0 | proto_tree_add_item(tlv_item_item_tree, hf_s7comm_szl_xy78_xxxx_tlv_item_data, tvb, offset, tlv_item_len, ENC_NA); |
6617 | 0 | offset += tlv_item_len; |
6618 | 0 | break; |
6619 | 0 | } |
6620 | 0 | } |
6621 | | |
6622 | 0 | return offset; |
6623 | 0 | } |
6624 | | |
6625 | | /******************************************************************************************************* |
6626 | | * |
6627 | | * SZL-ID: 0xxy1c |
6628 | | * Index: 0x000x |
6629 | | * Content: |
6630 | | * If you read the partial list SSL-ID W#16#xy1c, you obtain the CPU or PLC identification. |
6631 | | * |
6632 | | *******************************************************************************************************/ |
6633 | | static void |
6634 | | s7comm_szl_xy1c_000x_register(int proto) |
6635 | 15 | { |
6636 | 15 | static hf_register_info hf[] = { |
6637 | 15 | { &hf_s7comm_szl_001c_000x_index, |
6638 | 15 | { "Index", "s7comm.szl.001c.000x.index", FT_UINT16, BASE_HEX, VALS(szl_xy1c_index_names), 0x0, |
6639 | 15 | NULL, HFILL }}, |
6640 | 15 | { &hf_s7comm_szl_001c_000x_res, |
6641 | 15 | { "Reserved", "s7comm.szl.001c.000x.res", FT_BYTES, BASE_NONE, NULL, 0x0, |
6642 | 15 | NULL, HFILL }}, |
6643 | 15 | { &hf_s7comm_szl_001c_0001_name, |
6644 | 15 | { "Name (Name of the PLC)", "s7comm.szl.001c.0001.name", FT_STRING, BASE_NONE, NULL, 0x0, |
6645 | 15 | NULL, HFILL }}, |
6646 | 15 | { &hf_s7comm_szl_001c_0002_name, |
6647 | 15 | { "Name (Name of the module)", "s7comm.szl.001c.0002.name", FT_STRING, BASE_NONE, NULL, 0x0, |
6648 | 15 | NULL, HFILL }}, |
6649 | 15 | { &hf_s7comm_szl_001c_0003_tag, |
6650 | 15 | { "Tag (Plant identification of the module)", "s7comm.szl.001c.0003.tag", FT_STRING, BASE_NONE, NULL, 0x0, |
6651 | 15 | NULL, HFILL }}, |
6652 | 15 | { &hf_s7comm_szl_001c_0004_copyright, |
6653 | 15 | { "Copyright", "s7comm.szl.001c.0004.copyright", FT_STRING, BASE_NONE, NULL, 0x0, |
6654 | 15 | NULL, HFILL }}, |
6655 | 15 | { &hf_s7comm_szl_001c_0005_serialn, |
6656 | 15 | { "Serialn (Serialnumber of the module)", "s7comm.szl.001c.0005.serialn", FT_STRING, BASE_NONE, NULL, 0x0, |
6657 | 15 | NULL, HFILL }}, |
6658 | 15 | { &hf_s7comm_szl_001c_0007_cputypname, |
6659 | 15 | { "Cputypname (Module type namee)", "s7comm.szl.001c.0007.cputypname", FT_STRING, BASE_NONE, NULL, 0x0, |
6660 | 15 | NULL, HFILL }}, |
6661 | 15 | { &hf_s7comm_szl_001c_0008_snmcmmc, |
6662 | 15 | { "Sn_mc/mmc (Serial number of the Memory Card/Micro Memory Card)", "s7comm.szl.001c.0008.snmcmmc", FT_STRING, BASE_NONE, NULL, 0x0, |
6663 | 15 | NULL, HFILL }}, |
6664 | 15 | { &hf_s7comm_szl_001c_0009_manufacturer_id, |
6665 | 15 | { "Manufacturer_id", "s7comm.szl.001c.0009.manufacturer_id", FT_UINT16, BASE_HEX, NULL, 0x0, |
6666 | 15 | "Manufacturer_id (PROFIBUS / PROFINET Identification & Maintenance)", HFILL }}, |
6667 | 15 | { &hf_s7comm_szl_001c_0009_profile_id, |
6668 | 15 | { "Profile_id", "s7comm.szl.001c.0009.profile_id", FT_UINT16, BASE_HEX, NULL, 0x0, |
6669 | 15 | "Profile_id (PROFIBUS / PROFINET Identification & Maintenance)", HFILL }}, |
6670 | 15 | { &hf_s7comm_szl_001c_0009_profile_spec_typ, |
6671 | 15 | { "Profile_spec_typ", "s7comm.szl.001c.0009.profile_spec_typ", FT_UINT16, BASE_HEX, NULL, 0x0, |
6672 | 15 | "Profile_spec_typ (PROFIBUS / PROFINET Identification & Maintenance)", HFILL }}, |
6673 | 15 | { &hf_s7comm_szl_001c_000a_oem_copyright_string, |
6674 | 15 | { "Oem_copyright_string (OEM Copyright ID)", "s7comm.szl.001c.000a.oem_copyright_string", FT_STRING, BASE_NONE, NULL, 0x0, |
6675 | 15 | NULL, HFILL }}, |
6676 | 15 | { &hf_s7comm_szl_001c_000a_oem_id, |
6677 | 15 | { "Oem_id (OEM ID)", "s7comm.szl.001c.000a.oem_id", FT_UINT16, BASE_HEX, NULL, 0x0, |
6678 | 15 | NULL, HFILL }}, |
6679 | 15 | { &hf_s7comm_szl_001c_000a_oem_add_id, |
6680 | 15 | { "Oem_add_id (OEM additional ID)", "s7comm.szl.001c.000a.oem_add_id", FT_UINT32, BASE_HEX, NULL, 0x0, |
6681 | 15 | NULL, HFILL }}, |
6682 | 15 | { &hf_s7comm_szl_001c_000b_loc_id, |
6683 | 15 | { "Loc_id (Location designation)", "s7comm.szl.001c.000b.loc_id", FT_STRING, BASE_NONE, NULL, 0x0, |
6684 | 15 | NULL, HFILL }} |
6685 | 15 | }; |
6686 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
6687 | 15 | } |
6688 | | |
6689 | | /*----------------------------------------------------------------------------------------------------*/ |
6690 | | static uint32_t |
6691 | | s7comm_decode_szl_id_xy1c_idx_000x(tvbuff_t *tvb, |
6692 | | proto_tree *tree, |
6693 | | uint32_t offset) |
6694 | 0 | { |
6695 | 0 | uint32_t idx; |
6696 | 0 | proto_tree_add_item_ret_uint(tree, hf_s7comm_szl_001c_000x_index, tvb, offset, 2, ENC_BIG_ENDIAN, &idx); |
6697 | 0 | offset += 2; |
6698 | | /* For redundant H-CPUs there may be some upper bits set to identify the CPU */ |
6699 | 0 | switch (idx & 0x000f) { |
6700 | 0 | case 0x0001: |
6701 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_0001_name, tvb, offset, 24, ENC_ASCII); |
6702 | 0 | offset += 24; |
6703 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_000x_res, tvb, offset, 8, ENC_NA); |
6704 | 0 | offset += 8; |
6705 | 0 | break; |
6706 | 0 | case 0x0002: |
6707 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_0002_name, tvb, offset, 24, ENC_ASCII); |
6708 | 0 | offset += 24; |
6709 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_000x_res, tvb, offset, 8, ENC_NA); |
6710 | 0 | offset += 8; |
6711 | 0 | break; |
6712 | 0 | case 0x0003: |
6713 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_0003_tag, tvb, offset, 32, ENC_ASCII); |
6714 | 0 | offset += 32; |
6715 | 0 | break; |
6716 | 0 | case 0x0004: |
6717 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_0004_copyright, tvb, offset, 26, ENC_ASCII); |
6718 | 0 | offset += 26; |
6719 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_000x_res, tvb, offset, 6, ENC_NA); |
6720 | 0 | offset += 6; |
6721 | 0 | break; |
6722 | 0 | case 0x0005: |
6723 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_0005_serialn, tvb, offset, 24, ENC_ASCII); |
6724 | 0 | offset += 24; |
6725 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_000x_res, tvb, offset, 8, ENC_NA); |
6726 | 0 | offset += 8; |
6727 | 0 | break; |
6728 | 0 | case 0x0007: |
6729 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_0007_cputypname, tvb, offset, 32, ENC_ASCII); |
6730 | 0 | offset += 32; |
6731 | 0 | break; |
6732 | 0 | case 0x0008: |
6733 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_0008_snmcmmc, tvb, offset, 32, ENC_ASCII); |
6734 | 0 | offset += 32; |
6735 | 0 | break; |
6736 | 0 | case 0x0009: |
6737 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_0009_manufacturer_id, tvb, offset, 2, ENC_BIG_ENDIAN); |
6738 | 0 | offset += 2; |
6739 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_0009_profile_id, tvb, offset, 2, ENC_BIG_ENDIAN); |
6740 | 0 | offset += 2; |
6741 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_0009_profile_spec_typ, tvb, offset, 2, ENC_BIG_ENDIAN); |
6742 | 0 | offset += 2; |
6743 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_000x_res, tvb, offset, 26, ENC_NA); |
6744 | 0 | offset += 26; |
6745 | 0 | break; |
6746 | 0 | case 0x000a: |
6747 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_000a_oem_copyright_string, tvb, offset, 26, ENC_ASCII); |
6748 | 0 | offset += 26; |
6749 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_000a_oem_id, tvb, offset, 2, ENC_BIG_ENDIAN); |
6750 | 0 | offset += 2; |
6751 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_000a_oem_add_id, tvb, offset, 4, ENC_BIG_ENDIAN); |
6752 | 0 | offset += 4; |
6753 | 0 | break; |
6754 | 0 | case 0x000b: |
6755 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_000b_loc_id, tvb, offset, 32, ENC_ASCII); |
6756 | 0 | offset += 32; |
6757 | 0 | break; |
6758 | 0 | default: |
6759 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_001c_000x_res, tvb, offset, 32, ENC_NA); |
6760 | 0 | offset += 32; |
6761 | 0 | break; |
6762 | 0 | } |
6763 | 0 | return offset; |
6764 | 0 | } |
6765 | | |
6766 | | /******************************************************************************************************* |
6767 | | * |
6768 | | * SZL-ID: 0xxy91 |
6769 | | * Index: 0x0000 |
6770 | | * Content: |
6771 | | * If you read the partial list SSL-ID W#16#xy91, you obtain the status information of modules assigned |
6772 | | * to the CPU. |
6773 | | * |
6774 | | *******************************************************************************************************/ |
6775 | | static void |
6776 | | s7comm_szl_xy91_0000_register(int proto) |
6777 | 15 | { |
6778 | 15 | static hf_register_info hf[] = { |
6779 | 15 | { &hf_s7comm_szl_0091_0000_adr1, |
6780 | 15 | { "Adr1", "s7comm.szl.0091.0000.adr1", FT_UINT16, BASE_HEX, NULL, 0x0, |
6781 | 15 | NULL, HFILL }}, |
6782 | 15 | { &hf_s7comm_szl_0091_0000_adr2, |
6783 | 15 | { "Adr2", "s7comm.szl.0091.0000.adr2", FT_UINT16, BASE_HEX, NULL, 0x0, |
6784 | 15 | NULL, HFILL }}, |
6785 | 15 | { &hf_s7comm_szl_0091_0000_logadr, |
6786 | 15 | { "Logadr", "s7comm.szl.0091.0000.logadr", FT_UINT16, BASE_DEC, NULL, 0x0, |
6787 | 15 | "Logadr (First assigned logical I/O address (base address))", HFILL }}, |
6788 | 15 | { &hf_s7comm_szl_0091_0000_solltyp, |
6789 | 15 | { "Expected type", "s7comm.szl.0091.0000.exptype", FT_UINT16, BASE_HEX, NULL, 0x0, |
6790 | 15 | "Solltyp (PROFINET IO: expected (configured) type, otherwise reserved)", HFILL }}, |
6791 | 15 | { &hf_s7comm_szl_0091_0000_isttyp, |
6792 | 15 | { "Actual type", "s7comm.szl.0091.0000.acttype", FT_UINT16, BASE_HEX, NULL, 0x0, |
6793 | 15 | "Isttyp (PROFINET IO: actual type, otherwise reserved)", HFILL }}, |
6794 | | /* Field depends on the first byte of the SZL-ID */ |
6795 | 15 | { &hf_s7comm_szl_0091_0000_res1, |
6796 | 15 | { "Reserved", "s7comm.szl.0091.0000.res1", FT_UINT16, BASE_HEX, NULL, 0x0, |
6797 | 15 | NULL, HFILL }}, |
6798 | 15 | { &hf_s7comm_szl_0091_0000_res1_0c_4c_4d, |
6799 | 15 | { "Reserved (number of actually existing interface modules)", "s7comm.szl.0091.0000.res1_0c_4c_4d", FT_UINT16, BASE_DEC, NULL, 0x0, |
6800 | 15 | NULL, HFILL }}, |
6801 | 15 | { &hf_s7comm_szl_0091_0000_res1_0d, |
6802 | 15 | { "Reserved (number of interface modules)", "s7comm.szl.0091.0000.res1_0d", FT_UINT16, BASE_DEC, NULL, 0x0, |
6803 | 15 | NULL, HFILL }}, |
6804 | 15 | { &hf_s7comm_szl_0091_0000_eastat, |
6805 | 15 | { "I/O status", "s7comm.szl.0091.0000.eastat", FT_UINT16, BASE_HEX, NULL, 0x0, |
6806 | 15 | NULL, HFILL }}, |
6807 | 15 | { &hf_s7comm_szl_0091_0000_eastat_0, |
6808 | 15 | { "Module error", "s7comm.szl.0091.0000.eastat.moderror", FT_BOOLEAN, 16, NULL, 0x0001, |
6809 | 15 | "Bit 0: Module error", HFILL }}, |
6810 | 15 | { &hf_s7comm_szl_0091_0000_eastat_1, |
6811 | 15 | { "Module exists", "s7comm.szl.0091.0000.eastat.modexists", FT_BOOLEAN, 16, NULL, 0x0002, |
6812 | 15 | "Bit 1: Module exists", HFILL }}, |
6813 | 15 | { &hf_s7comm_szl_0091_0000_eastat_2, |
6814 | 15 | { "Module not available", "s7comm.szl.0091.0000.eastat.modnotav", FT_BOOLEAN, 16, NULL, 0x0004, |
6815 | 15 | "Bit 2: Module not available", HFILL }}, |
6816 | 15 | { &hf_s7comm_szl_0091_0000_eastat_3, |
6817 | 15 | { "Module disabled", "s7comm.szl.0091.0000.eastat.moddisabl", FT_BOOLEAN, 16, NULL, 0x0008, |
6818 | 15 | "Bit 3: Module disabled", HFILL }}, |
6819 | 15 | { &hf_s7comm_szl_0091_0000_eastat_4, |
6820 | 15 | { "Station error", "s7comm.szl.0091.0000.eastat.staterr", FT_BOOLEAN, 16, NULL, 0x0010, |
6821 | 15 | "Bit 4: Station error", HFILL }}, |
6822 | 15 | { &hf_s7comm_szl_0091_0000_eastat_5, |
6823 | 15 | { "CiR event busy", "s7comm.szl.0091.0000.eastat.cirbusy", FT_BOOLEAN, 16, NULL, 0x0020, |
6824 | 15 | "Bit 5: A CiR event at this module/station is busy or not yet completed", HFILL }}, |
6825 | 15 | { &hf_s7comm_szl_0091_0000_eastat_6, |
6826 | 15 | { "Reserved", "s7comm.szl.0091.0000.eastat.res", FT_BOOLEAN, 16, NULL, 0x0040, |
6827 | 15 | "Bit 6: Reserved for S7-400", HFILL }}, |
6828 | 15 | { &hf_s7comm_szl_0091_0000_eastat_7, |
6829 | 15 | { "Module in local bus segment", "s7comm.szl.0091.0000.eastat.modlocseg", FT_BOOLEAN, 16, NULL, 0x0080, |
6830 | 15 | "Bit 7: Module in local bus segment", HFILL }}, |
6831 | 15 | { &hf_s7comm_szl_0091_0000_eastat_dataid, |
6832 | 15 | { "Data ID for logical address", "s7comm.szl.0091.0000.eastat.dataid", FT_UINT16, BASE_HEX, VALS(szl_0091_0000_eastat_dataid_names), 0xff00, |
6833 | 15 | "Bit 8 to 15: Data ID for logical address", HFILL }}, |
6834 | 15 | { &hf_s7comm_szl_0091_0000_berbgbr, |
6835 | 15 | { "Ber_bgbr (Area ID/module width)", "s7comm.szl.0091.0000.berbgbr", FT_UINT16, BASE_HEX, NULL, 0x0, |
6836 | 15 | NULL, HFILL }}, |
6837 | 15 | { &hf_s7comm_szl_0091_0000_berbgbr_0_2, |
6838 | 15 | { "Module width", "s7comm.szl.0091.0000.berbgbr.width", FT_UINT16, BASE_DEC, NULL, 0x0007, |
6839 | 15 | "Bit 0 to 2: Module width", HFILL }}, |
6840 | 15 | { &hf_s7comm_szl_0091_0000_berbgbr_3, |
6841 | 15 | { "Reserved", "s7comm.szl.0091.0000.berbgbr.bit3_res", FT_BOOLEAN, 16, NULL, 0x0008, |
6842 | 15 | "Bit 3: Reserved", HFILL }}, |
6843 | 15 | { &hf_s7comm_szl_0091_0000_berbgbr_areaid, |
6844 | 15 | { "Area ID", "s7comm.szl.0091.0000.berbgbr.areaid", FT_UINT16, BASE_DEC, VALS(szl_0091_0000_berbgbr_areaid_names), 0x0070, |
6845 | 15 | "Bit 4 to 6: Area ID", HFILL }}, |
6846 | 15 | { &hf_s7comm_szl_0091_0000_berbgbr_7, |
6847 | 15 | { "Reserved", "s7comm.szl.0091.0000.berbgbr.bit7_res", FT_BOOLEAN, 16, NULL, 0x0080, |
6848 | 15 | "Bit 7: Reserved", HFILL }} |
6849 | 15 | }; |
6850 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
6851 | 15 | } |
6852 | | |
6853 | | /*----------------------------------------------------------------------------------------------------*/ |
6854 | | static uint32_t |
6855 | | s7comm_decode_szl_id_xy91_idx_0000(tvbuff_t *tvb, |
6856 | | proto_tree *tree, |
6857 | | uint16_t id, |
6858 | | uint32_t offset) |
6859 | 0 | { |
6860 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0091_0000_adr1, tvb, offset, 2, ENC_BIG_ENDIAN); |
6861 | 0 | offset += 2; |
6862 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0091_0000_adr2, tvb, offset, 2, ENC_BIG_ENDIAN); |
6863 | 0 | offset += 2; |
6864 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0091_0000_logadr, tvb, offset, 2, ENC_BIG_ENDIAN); |
6865 | 0 | offset += 2; |
6866 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0091_0000_solltyp, tvb, offset, 2, ENC_BIG_ENDIAN); |
6867 | 0 | offset += 2; |
6868 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0091_0000_isttyp, tvb, offset, 2, ENC_BIG_ENDIAN); |
6869 | 0 | offset += 2; |
6870 | 0 | switch (id) { |
6871 | 0 | case 0x0c91: |
6872 | 0 | case 0x4c91: |
6873 | 0 | case 0x4d91: |
6874 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0091_0000_res1_0c_4c_4d, tvb, offset, 2, ENC_BIG_ENDIAN); |
6875 | 0 | break; |
6876 | 0 | case 0x0d91: |
6877 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0091_0000_res1_0d, tvb, offset, 2, ENC_BIG_ENDIAN); |
6878 | 0 | break; |
6879 | 0 | default: |
6880 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0091_0000_res1, tvb, offset, 2, ENC_BIG_ENDIAN); |
6881 | 0 | break; |
6882 | 0 | } |
6883 | 0 | offset += 2; |
6884 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0091_0000_eastat, |
6885 | 0 | ett_s7comm_szl_0091_0000_eastat, s7comm_szl_0091_0000_eastat_fields, ENC_BIG_ENDIAN); |
6886 | 0 | offset += 2; |
6887 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0091_0000_berbgbr, |
6888 | 0 | ett_s7comm_szl_0091_0000_berbgbr, s7comm_szl_0091_0000_berbgbr_fields, ENC_BIG_ENDIAN); |
6889 | 0 | offset += 2; |
6890 | |
|
6891 | 0 | return offset; |
6892 | 0 | } |
6893 | | |
6894 | | /******************************************************************************************************* |
6895 | | * |
6896 | | * SZL-ID: 0xxy92 |
6897 | | * Index: 0x0000 |
6898 | | * Content: |
6899 | | * If you read the partial list SSL-ID W#16#xy92, you obtain information about the expected and the |
6900 | | * current hardware configuration of centrally installed racks and stations of a DP master system. |
6901 | | * |
6902 | | *******************************************************************************************************/ |
6903 | | static void |
6904 | | s7comm_szl_xy92_xxxx_register(int proto) |
6905 | 15 | { |
6906 | 15 | static hf_register_info hf[] = { |
6907 | 15 | { &hf_s7comm_szl_0092_0xxx_status_0, |
6908 | 15 | { "status_0", "s7comm.szl.0092.xxxx.status_0", FT_UINT8, BASE_HEX, NULL, 0x0, |
6909 | 15 | "status_0: Status of station 1..8", HFILL }}, |
6910 | 15 | { &hf_s7comm_szl_0092_0xxx_status_1, |
6911 | 15 | { "status_1", "s7comm.szl.0092.xxxx.status_1", FT_UINT8, BASE_HEX, NULL, 0x0, |
6912 | 15 | "status_1: Status of station 9..16", HFILL }}, |
6913 | 15 | { &hf_s7comm_szl_0092_0xxx_status_2, |
6914 | 15 | { "status_2", "s7comm.szl.0092.xxxx.status_2", FT_UINT8, BASE_HEX, NULL, 0x0, |
6915 | 15 | "status_2: Status of station 17..24", HFILL }}, |
6916 | 15 | { &hf_s7comm_szl_0092_0xxx_status_3, |
6917 | 15 | { "status_3", "s7comm.szl.0092.xxxx.status_3", FT_UINT8, BASE_HEX, NULL, 0x0, |
6918 | 15 | "status_3: Status of station 25..32", HFILL }}, |
6919 | 15 | { &hf_s7comm_szl_0092_0xxx_status_4, |
6920 | 15 | { "status_4", "s7comm.szl.0092.xxxx.status_4", FT_UINT8, BASE_HEX, NULL, 0x0, |
6921 | 15 | "status_4: Status of station 33..40", HFILL }}, |
6922 | 15 | { &hf_s7comm_szl_0092_0xxx_status_5, |
6923 | 15 | { "status_5", "s7comm.szl.0092.xxxx.status_5", FT_UINT8, BASE_HEX, NULL, 0x0, |
6924 | 15 | "status_5: Status of station 41..48", HFILL }}, |
6925 | 15 | { &hf_s7comm_szl_0092_0xxx_status_6, |
6926 | 15 | { "status_6", "s7comm.szl.0092.xxxx.status_6", FT_UINT8, BASE_HEX, NULL, 0x0, |
6927 | 15 | "status_6: Status of station 49..56", HFILL }}, |
6928 | 15 | { &hf_s7comm_szl_0092_0xxx_status_7, |
6929 | 15 | { "status_7", "s7comm.szl.0092.xxxx.status_7", FT_UINT8, BASE_HEX, NULL, 0x0, |
6930 | 15 | "status_7: Status of station 57..64", HFILL }}, |
6931 | 15 | { &hf_s7comm_szl_0092_0xxx_status_8, |
6932 | 15 | { "status_8", "s7comm.szl.0092.xxxx.status_8", FT_UINT8, BASE_HEX, NULL, 0x0, |
6933 | 15 | "status_8: Status of station 65..72", HFILL }}, |
6934 | 15 | { &hf_s7comm_szl_0092_0xxx_status_9, |
6935 | 15 | { "status_9", "s7comm.szl.0092.xxxx.status_9", FT_UINT8, BASE_HEX, NULL, 0x0, |
6936 | 15 | "status_9: Status of station 73..80", HFILL }}, |
6937 | 15 | { &hf_s7comm_szl_0092_0xxx_status_10, |
6938 | 15 | { "status_10", "s7comm.szl.0092.xxxx.status_10", FT_UINT8, BASE_HEX, NULL, 0x0, |
6939 | 15 | "status_0: Status of station 81..88", HFILL }}, |
6940 | 15 | { &hf_s7comm_szl_0092_0xxx_status_11, |
6941 | 15 | { "status_11", "s7comm.szl.0092.xxxx.status_11", FT_UINT8, BASE_HEX, NULL, 0x0, |
6942 | 15 | "status_11: Status of station 89..96", HFILL }}, |
6943 | 15 | { &hf_s7comm_szl_0092_0xxx_status_12, |
6944 | 15 | { "status_12", "s7comm.szl.0092.xxxx.status_12", FT_UINT8, BASE_HEX, NULL, 0x0, |
6945 | 15 | "status_12: Status of station 97..104", HFILL }}, |
6946 | 15 | { &hf_s7comm_szl_0092_0xxx_status_13, |
6947 | 15 | { "status_13", "s7comm.szl.0092.xxxx.status_13", FT_UINT8, BASE_HEX, NULL, 0x0, |
6948 | 15 | "status_13: Status of station 105..112", HFILL }}, |
6949 | 15 | { &hf_s7comm_szl_0092_0xxx_status_14, |
6950 | 15 | { "status_14", "s7comm.szl.0092.xxxx.status_14", FT_UINT8, BASE_HEX, NULL, 0x0, |
6951 | 15 | "status_14: Status of station 113..120", HFILL }}, |
6952 | 15 | { &hf_s7comm_szl_0092_0xxx_status_15, |
6953 | 15 | { "status_15", "s7comm.szl.0092.xxxx.status_15", FT_UINT8, BASE_HEX, NULL, 0x0, |
6954 | 15 | "status_15: Status of station 121..128", HFILL }}, |
6955 | 15 | }; |
6956 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
6957 | 15 | } |
6958 | | |
6959 | | /*----------------------------------------------------------------------------------------------------*/ |
6960 | | static uint32_t |
6961 | | add_station_byte_with_bitinfo(tvbuff_t *tvb, |
6962 | | proto_tree *tree, |
6963 | | int hf, |
6964 | | const char *info_text, |
6965 | | uint32_t start, |
6966 | | uint32_t offset) |
6967 | 0 | { |
6968 | 0 | proto_item *pi = NULL; |
6969 | 0 | proto_item *pti = NULL; |
6970 | 0 | proto_tree *pt = NULL; |
6971 | 0 | uint32_t val; |
6972 | 0 | uint32_t i; |
6973 | 0 | pi = proto_tree_add_item_ret_uint(tree, hf, tvb, offset, 1, ENC_BIG_ENDIAN, &val); |
6974 | | /* Add the rack/station number when information bit is set */ |
6975 | 0 | if (val) { |
6976 | 0 | pt = proto_item_add_subtree(pi, ett_s7comm_szl_xx9x_station_info); |
6977 | 0 | for (i = 0; i < 8; i++) { |
6978 | 0 | if (val & 1) { |
6979 | 0 | pti = proto_tree_add_item(pt, hf_s7comm_szl_xx9x_station_info, tvb, offset, 1, ENC_NA); |
6980 | 0 | proto_item_set_text(pti, "%s: %d", info_text, start + i); |
6981 | 0 | } |
6982 | 0 | val >>= 1; |
6983 | 0 | } |
6984 | 0 | } |
6985 | 0 | return offset + 1; |
6986 | 0 | } |
6987 | | |
6988 | | static uint32_t |
6989 | | s7comm_decode_szl_id_xy92_idx_xxxx(tvbuff_t *tvb, |
6990 | | proto_tree *tree, |
6991 | | uint16_t id, |
6992 | | uint32_t offset) |
6993 | 0 | { |
6994 | 0 | char *txt; |
6995 | 0 | switch (id) { |
6996 | 0 | case 0x0092: |
6997 | 0 | txt = "Rack/Station configured"; |
6998 | 0 | break; |
6999 | 0 | case 0x4092: |
7000 | 0 | txt = "Station configured"; |
7001 | 0 | break; |
7002 | 0 | case 0x0192: |
7003 | 0 | txt = "Station configured and activated"; |
7004 | 0 | break; |
7005 | 0 | case 0x0292: |
7006 | 0 | txt = "Rack/Station exists, activated and not failed"; |
7007 | 0 | break; |
7008 | 0 | case 0x0492: |
7009 | 0 | txt = "Station exists, activated and not failed"; |
7010 | 0 | break; |
7011 | 0 | case 0x0692: |
7012 | 0 | txt = "Modules of a station in a expansion rack not OK or station deactivated"; |
7013 | 0 | break; |
7014 | 0 | case 0x4692: |
7015 | 0 | txt = "Modules of a station not OK or station deactivated"; |
7016 | 0 | break; |
7017 | 0 | default: |
7018 | 0 | txt = "Station info bit set"; |
7019 | 0 | break; |
7020 | 0 | } |
7021 | 0 | offset = add_station_byte_with_bitinfo(tvb, tree, hf_s7comm_szl_0092_0xxx_status_0, txt, 1, offset); |
7022 | 0 | offset = add_station_byte_with_bitinfo(tvb, tree, hf_s7comm_szl_0092_0xxx_status_1, txt, 9, offset); |
7023 | 0 | offset = add_station_byte_with_bitinfo(tvb, tree, hf_s7comm_szl_0092_0xxx_status_2, txt, 17, offset); |
7024 | 0 | offset = add_station_byte_with_bitinfo(tvb, tree, hf_s7comm_szl_0092_0xxx_status_3, txt, 25, offset); |
7025 | 0 | offset = add_station_byte_with_bitinfo(tvb, tree, hf_s7comm_szl_0092_0xxx_status_4, txt, 33, offset); |
7026 | 0 | offset = add_station_byte_with_bitinfo(tvb, tree, hf_s7comm_szl_0092_0xxx_status_5, txt, 41, offset); |
7027 | 0 | offset = add_station_byte_with_bitinfo(tvb, tree, hf_s7comm_szl_0092_0xxx_status_6, txt, 49, offset); |
7028 | 0 | offset = add_station_byte_with_bitinfo(tvb, tree, hf_s7comm_szl_0092_0xxx_status_7, txt, 57, offset); |
7029 | 0 | offset = add_station_byte_with_bitinfo(tvb, tree, hf_s7comm_szl_0092_0xxx_status_8, txt, 65, offset); |
7030 | 0 | offset = add_station_byte_with_bitinfo(tvb, tree, hf_s7comm_szl_0092_0xxx_status_9, txt, 73, offset); |
7031 | 0 | offset = add_station_byte_with_bitinfo(tvb, tree, hf_s7comm_szl_0092_0xxx_status_10, txt, 81, offset); |
7032 | 0 | offset = add_station_byte_with_bitinfo(tvb, tree, hf_s7comm_szl_0092_0xxx_status_11, txt, 89, offset); |
7033 | 0 | offset = add_station_byte_with_bitinfo(tvb, tree, hf_s7comm_szl_0092_0xxx_status_12, txt, 97, offset); |
7034 | 0 | offset = add_station_byte_with_bitinfo(tvb, tree, hf_s7comm_szl_0092_0xxx_status_13, txt, 105, offset); |
7035 | 0 | offset = add_station_byte_with_bitinfo(tvb, tree, hf_s7comm_szl_0092_0xxx_status_14, txt, 113, offset); |
7036 | 0 | offset = add_station_byte_with_bitinfo(tvb, tree, hf_s7comm_szl_0092_0xxx_status_15, txt, 121, offset); |
7037 | |
|
7038 | 0 | return offset; |
7039 | 0 | } |
7040 | | |
7041 | | /******************************************************************************************************* |
7042 | | * |
7043 | | * SZL-ID: 0x0x94 |
7044 | | * Index: 0x0000 |
7045 | | * Content: |
7046 | | * Partial list SSL-ID W#16#0x94 contains information about the expected and actual |
7047 | | * configuration of module racks in central configurations and stations of a |
7048 | | * PROFIBUS DP mastersystem/PROFINET IO controller system. |
7049 | | * |
7050 | | *******************************************************************************************************/ |
7051 | | static void |
7052 | | s7comm_szl_0x94_xxxx_register(int proto) |
7053 | 15 | { |
7054 | 15 | static hf_register_info hf[] = { |
7055 | 15 | { &hf_s7comm_szl_0094_xxxx_index, |
7056 | 15 | { "Index", "s7comm.szl.0094.xxxx.index", FT_UINT16, BASE_HEX, NULL, 0x0, |
7057 | 15 | "Index: 0=central module, 1-32=distributed module on PROFIBUS DP, 100-115=distributed module on PROFINET IO", HFILL }}, |
7058 | 15 | { &hf_s7comm_szl_0094_xxxx_status_0, |
7059 | 15 | { "status_0 (Group information)", "s7comm.szl.0094.xxxx.status_0", FT_BOOLEAN, 8, NULL, 0x01, |
7060 | 15 | "status_0 (Group information): 1=at least one of the following status bis has the value 1", HFILL }}, |
7061 | 15 | { &hf_s7comm_szl_0094_xxxx_status_1_2047, |
7062 | 15 | { "Status", "s7comm.szl.0094.xxxx.status_1_2047", FT_BYTES, BASE_NONE, NULL, 0x0, |
7063 | 15 | "Status of Station 1 to 2047", HFILL }}, |
7064 | 15 | }; |
7065 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
7066 | 15 | } |
7067 | | |
7068 | | /*----------------------------------------------------------------------------------------------------*/ |
7069 | | static uint32_t |
7070 | | s7comm_decode_szl_id_0x94_idx_xxxx(tvbuff_t *tvb, |
7071 | | proto_tree *tree, |
7072 | | uint16_t id, |
7073 | | uint32_t offset) |
7074 | 0 | { |
7075 | 0 | proto_item *pi = NULL; |
7076 | 0 | proto_item *pti = NULL; |
7077 | 0 | proto_tree *pt = NULL; |
7078 | 0 | uint8_t val; |
7079 | 0 | uint32_t i, j; |
7080 | 0 | uint32_t offset_tmp; |
7081 | 0 | uint32_t n; |
7082 | 0 | char *txt; |
7083 | |
|
7084 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0094_xxxx_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
7085 | 0 | offset += 2; |
7086 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0094_xxxx_status_0, tvb, offset, 1, ENC_BIG_ENDIAN); |
7087 | 0 | pi = proto_tree_add_item(tree, hf_s7comm_szl_0094_xxxx_status_1_2047, tvb, offset, 256, ENC_NA); |
7088 | 0 | offset_tmp = offset; |
7089 | 0 | val = tvb_get_uint8(tvb, offset_tmp); |
7090 | | /* If first bit is set, there is at least one station with active information */ |
7091 | 0 | if (val & 1) { |
7092 | 0 | switch (id) { |
7093 | 0 | case 0x0094: |
7094 | 0 | txt = "Rack/Station configured"; |
7095 | 0 | break; |
7096 | 0 | case 0x0194: |
7097 | 0 | txt = "Station configured and deactivated"; |
7098 | 0 | break; |
7099 | 0 | case 0x0294: |
7100 | 0 | txt = "Rack/Station exists, activated and not failed"; |
7101 | 0 | break; |
7102 | 0 | case 0x0694: |
7103 | 0 | txt = "Rack/Station with at least one module disrupted or deactivated"; |
7104 | 0 | break; |
7105 | 0 | case 0x0794: |
7106 | 0 | txt = "Rack/Station with problem and/or maintenance requirement/request"; |
7107 | 0 | break; |
7108 | 0 | default: |
7109 | 0 | txt = "Station info bit set"; |
7110 | 0 | break; |
7111 | 0 | } |
7112 | 0 | pt = proto_item_add_subtree(pi, ett_s7comm_szl_xx9x_station_info); |
7113 | 0 | n = 0; |
7114 | | /* Add the rack/station number when information bit is set */ |
7115 | 0 | for (i = 0; i < 256; i++) { |
7116 | 0 | val = tvb_get_uint8(tvb, offset_tmp); |
7117 | 0 | if (val) { |
7118 | 0 | for (j = 0; j < 8; j++) { |
7119 | 0 | if ((val & 1) && !(n == 0 && j == 0)) { /* skip group information bit */ |
7120 | 0 | pti = proto_tree_add_item(pt, hf_s7comm_szl_xx9x_station_info, tvb, offset_tmp, 1, ENC_NA); |
7121 | 0 | proto_item_set_text(pti, "%s: %d", txt, n + j); |
7122 | 0 | } |
7123 | 0 | val >>= 1; |
7124 | 0 | } |
7125 | 0 | } |
7126 | 0 | n += 8; |
7127 | 0 | offset_tmp += 1; |
7128 | 0 | } |
7129 | 0 | } |
7130 | 0 | return offset + 256; |
7131 | 0 | } |
7132 | | |
7133 | | /******************************************************************************************************* |
7134 | | * |
7135 | | * SZL-ID: 0xxy96 |
7136 | | * Index: 0xxxxx |
7137 | | * Content: |
7138 | | * The partial list SSL-ID W#16#xy96 contains status information on all the modules assigned to the CPU. |
7139 | | * |
7140 | | *******************************************************************************************************/ |
7141 | | static void |
7142 | | s7comm_szl_xy96_xxxx_register(int proto) |
7143 | 15 | { |
7144 | 15 | static hf_register_info hf[] = { |
7145 | 15 | { &hf_s7comm_szl_0096_xxxx_logadr_adr, |
7146 | 15 | { "logadr (Address of the module)", "s7comm.szl.xx96.xxxx.logadr.adr", FT_UINT16, BASE_HEX, NULL, 0x7fff, |
7147 | 15 | NULL, HFILL }}, |
7148 | 15 | { &hf_s7comm_szl_0096_xxxx_logadr_area, |
7149 | 15 | { "logadr (Area)", "s7comm.szl.xx96.xxxx.logadr.area", FT_BOOLEAN, 16, TFS(&tfs_szl_0096_xxx_logadr_area), 0x8000, |
7150 | 15 | NULL, HFILL }}, |
7151 | 15 | { &hf_s7comm_szl_0096_xxxx_system, |
7152 | 15 | { "System (Identifier for the central module/DP master system ID /PROFINET IO system ID)", "s7comm.szl.xx96.xxxx.system", FT_UINT16, BASE_DEC, NULL, 0x0, |
7153 | 15 | "System: 0=central module, 1-32=distributed module on PROFIBUS DP, 100-115=distributed module on PROFINET IO", HFILL }}, |
7154 | 15 | { &hf_s7comm_szl_0096_xxxx_api, |
7155 | 15 | { "API (Configured Application Profile)", "s7comm.szl.xx96.xxxx.api", FT_UINT32, BASE_HEX, NULL, 0x0, |
7156 | 15 | NULL, HFILL }}, |
7157 | 15 | { &hf_s7comm_szl_0096_xxxx_station, |
7158 | 15 | { "Station (Rack no./station number/device number)", "s7comm.szl.xx96.xxxx.station", FT_UINT16, BASE_DEC, NULL, 0x0, |
7159 | 15 | NULL, HFILL }}, |
7160 | 15 | { &hf_s7comm_szl_0096_xxxx_slot, |
7161 | 15 | { "Slot (Slot number)", "s7comm.szl.xx96.xxxx.slot", FT_UINT16, BASE_DEC, NULL, 0x0, |
7162 | 15 | NULL, HFILL }}, |
7163 | 15 | { &hf_s7comm_szl_0096_xxxx_subslot, |
7164 | 15 | { "Subslot (Interface module slot)", "s7comm.szl.xx96.xxxx.subslot", FT_UINT16, BASE_DEC, NULL, 0x0, |
7165 | 15 | NULL, HFILL }}, |
7166 | 15 | { &hf_s7comm_szl_0096_xxxx_offset, |
7167 | 15 | { "Offset (Offset in the user data address range of the associated module)", "s7comm.szl.xx96.xxxx.offset", FT_UINT16, BASE_DEC, NULL, 0x0, |
7168 | 15 | NULL, HFILL }}, |
7169 | 15 | { &hf_s7comm_szl_0096_xxxx_solltyp1, |
7170 | 15 | { "Solltyp1 (Expected Type: Manufacturer no. or profile identification)", "s7comm.szl.xx96.xxxx.solltyp1", FT_UINT16, BASE_HEX, NULL, 0x0, |
7171 | 15 | NULL, HFILL }}, |
7172 | 15 | { &hf_s7comm_szl_0096_xxxx_solltyp2, |
7173 | 15 | { "Solltyp2 (Device)", "s7comm.szl.xx96.xxxx.solltyp2", FT_UINT16, BASE_HEX, NULL, 0x0, |
7174 | 15 | NULL, HFILL }}, |
7175 | 15 | { &hf_s7comm_szl_0096_xxxx_solltyp3, |
7176 | 15 | { "Solltyp3 (Sequential number or profile index)", "s7comm.szl.xx96.xxxx.solltyp3", FT_UINT16, BASE_DEC, NULL, 0x0, |
7177 | 15 | NULL, HFILL }}, |
7178 | 15 | { &hf_s7comm_szl_0096_xxxx_solltyp4_5, |
7179 | 15 | { "Solltyp4_5 (Submodule identification)", "s7comm.szl.xx96.xxxx.solltyp4_5", FT_UINT32, BASE_HEX, NULL, 0x0, |
7180 | 15 | NULL, HFILL }}, |
7181 | 15 | { &hf_s7comm_szl_0096_xxxx_solltyp6_7, |
7182 | 15 | { "Solltyp6_7 (Interface module identification)", "s7comm.szl.xx96.xxxx.solltyp6_7", FT_UINT32, BASE_HEX, NULL, 0x0, |
7183 | 15 | NULL, HFILL }}, |
7184 | 15 | { &hf_s7comm_szl_0096_xxxx_expactid, |
7185 | 15 | { "Expected/actual identifier", "s7comm.szl.xx96.xxxx.expactid", FT_UINT16, BASE_HEX, NULL, 0x0, |
7186 | 15 | "Expected/actual identifier: Bit0=0 -> Expected the same as actual, Bit0=1 -> Expected not same as actual", HFILL }}, |
7187 | 15 | { &hf_s7comm_szl_0096_xxxx_reserve1, |
7188 | 15 | { "Reserve 1", "s7comm.szl.xx96.xxxx.reserve1", FT_UINT16, BASE_HEX, NULL, 0x0, |
7189 | 15 | NULL, HFILL }}, |
7190 | | /* From here almost identical with ID 0x0091, but there are some differences and it's also convenient to have separate filter fields */ |
7191 | 15 | { &hf_s7comm_szl_0096_xxxx_eastat, |
7192 | 15 | { "I/O status", "s7comm.szl.xx96.xxxx.eastat", FT_UINT16, BASE_HEX, NULL, 0x0, |
7193 | 15 | NULL, HFILL }}, |
7194 | 15 | { &hf_s7comm_szl_0096_xxxx_eastat_0, |
7195 | 15 | { "Module disrupted", "s7comm.szl.xx96.xxxx.eastat.moddisrupt", FT_BOOLEAN, 16, NULL, 0x0001, |
7196 | 15 | "Bit 0: Module disrupted (detected over diagnostic interrupt)", HFILL }}, |
7197 | 15 | { &hf_s7comm_szl_0096_xxxx_eastat_1, |
7198 | 15 | { "Module exists", "s7comm.szl.xx96.xxxx.eastat.modexists", FT_BOOLEAN, 16, NULL, 0x0002, |
7199 | 15 | "Bit 1: Module exists", HFILL }}, |
7200 | 15 | { &hf_s7comm_szl_0096_xxxx_eastat_2, |
7201 | 15 | { "Module not available", "s7comm.szl.xx96.xxxx.eastat.modnotav", FT_BOOLEAN, 16, NULL, 0x0004, |
7202 | 15 | "Bit 2: Module not available", HFILL }}, |
7203 | 15 | { &hf_s7comm_szl_0096_xxxx_eastat_3, |
7204 | 15 | { "Module disabled", "s7comm.szl.xx96.xxxx.eastat.moddisabl", FT_BOOLEAN, 16, NULL, 0x0008, |
7205 | 15 | "Bit 3: Module disabled", HFILL }}, |
7206 | 15 | { &hf_s7comm_szl_0096_xxxx_eastat_4, |
7207 | 15 | { "Problem on station", "s7comm.szl.xx96.xxxx.eastat.statproblem", FT_BOOLEAN, 16, NULL, 0x0010, |
7208 | 15 | "Bit 4: Problem on station (representative slot only)", HFILL }}, |
7209 | 15 | { &hf_s7comm_szl_0096_xxxx_eastat_5, |
7210 | 15 | { "CiR event active", "s7comm.szl.xx96.xxxx.eastat.ciractive", FT_BOOLEAN, 16, NULL, 0x0020, |
7211 | 15 | "Bit 5: A CiR event at this module/station is active or not yet completed", HFILL }}, |
7212 | 15 | { &hf_s7comm_szl_0096_xxxx_eastat_6, |
7213 | 15 | { "Reserved", "s7comm.szl.xx96.xxxx.eastat.res", FT_BOOLEAN, 16, NULL, 0x0040, |
7214 | 15 | "Bit 6: Reserved for S7-400", HFILL }}, |
7215 | 15 | { &hf_s7comm_szl_0096_xxxx_eastat_7, |
7216 | 15 | { "Module in local bus segment", "s7comm.szl.xx96.xxxx.eastat.modlocseg", FT_BOOLEAN, 16, NULL, 0x0080, |
7217 | 15 | "Bit 7: Module in local bus segment", HFILL }}, |
7218 | 15 | { &hf_s7comm_szl_0096_xxxx_eastat_8, |
7219 | 15 | { "Module maintenance required", "s7comm.szl.xx96.xxxx.eastat.modmaintreq", FT_BOOLEAN, 16, NULL, 0x0100, |
7220 | 15 | "Bit 8: Module maintenance required (green)", HFILL }}, |
7221 | 15 | { &hf_s7comm_szl_0096_xxxx_eastat_9, |
7222 | 15 | { "Module maintenance demand", "s7comm.szl.xx96.xxxx.eastat.modmaintdem", FT_BOOLEAN, 16, NULL, 0x0200, |
7223 | 15 | "Bit 9: Module maintenance demand (yellow)", HFILL }}, |
7224 | 15 | { &hf_s7comm_szl_0096_xxxx_berbgbr, |
7225 | 15 | { "Ber_bgbr (Area ID/module width)", "s7comm.szl.xx96.xxxx.berbgbr", FT_UINT16, BASE_HEX, NULL, 0x0, |
7226 | 15 | NULL, HFILL }}, |
7227 | 15 | { &hf_s7comm_szl_0096_xxxx_berbgbr_0_2, |
7228 | 15 | { "Module width", "s7comm.szl.xx96.xxxx.berbgbr.width", FT_UINT16, BASE_DEC, NULL, 0x0007, |
7229 | 15 | "Bit 0 to 2: Module width", HFILL }}, |
7230 | 15 | { &hf_s7comm_szl_0096_xxxx_berbgbr_3, |
7231 | 15 | { "Reserved", "s7comm.szl.xx96.xxxx.berbgbr.bit3_res", FT_BOOLEAN, 16, NULL, 0x0008, |
7232 | 15 | "Bit 3: Reserved", HFILL }}, |
7233 | 15 | { &hf_s7comm_szl_0096_xxxx_berbgbr_areaid, |
7234 | 15 | { "Area ID", "s7comm.szl.xx96.xxxx.berbgbr.areaid", FT_UINT16, BASE_DEC, VALS(szl_0091_0000_berbgbr_areaid_names), 0x0070, |
7235 | 15 | "Bit 4 to 6: Area ID", HFILL }}, |
7236 | 15 | { &hf_s7comm_szl_0096_xxxx_berbgbr_7, |
7237 | 15 | { "Reserved", "s7comm.szl.xx96.xxxx.berbgbr.bit7_res", FT_BOOLEAN, 16, NULL, 0x0080, |
7238 | 15 | "Bit 7: Reserved", HFILL }}, |
7239 | 15 | { &hf_s7comm_szl_0096_xxxx_reserve2, |
7240 | 15 | { "res (Reserved)", "s7comm.szl.xx96.xxxx.reserve2", FT_BYTES, BASE_NONE, NULL, 0x0, |
7241 | 15 | NULL, HFILL }} |
7242 | 15 | }; |
7243 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
7244 | 15 | } |
7245 | | |
7246 | | /*----------------------------------------------------------------------------------------------------*/ |
7247 | | static uint32_t |
7248 | | s7comm_decode_szl_id_xy96_idx_xxxx(tvbuff_t *tvb, |
7249 | | proto_tree *tree, |
7250 | | uint32_t offset) |
7251 | 0 | { |
7252 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0096_xxxx_logadr_adr, tvb, offset, 2, ENC_BIG_ENDIAN); |
7253 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0096_xxxx_logadr_area, tvb, offset, 2, ENC_BIG_ENDIAN); |
7254 | 0 | offset += 2; |
7255 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0096_xxxx_system, tvb, offset, 2, ENC_BIG_ENDIAN); |
7256 | 0 | offset += 2; |
7257 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0096_xxxx_api, tvb, offset, 4, ENC_BIG_ENDIAN); |
7258 | 0 | offset += 4; |
7259 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0096_xxxx_station, tvb, offset, 2, ENC_BIG_ENDIAN); |
7260 | 0 | offset += 2; |
7261 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0096_xxxx_slot, tvb, offset, 2, ENC_BIG_ENDIAN); |
7262 | 0 | offset += 2; |
7263 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0096_xxxx_subslot, tvb, offset, 2, ENC_BIG_ENDIAN); |
7264 | 0 | offset += 2; |
7265 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0096_xxxx_offset, tvb, offset, 2, ENC_BIG_ENDIAN); |
7266 | 0 | offset += 2; |
7267 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0096_xxxx_solltyp1, tvb, offset, 2, ENC_BIG_ENDIAN); |
7268 | 0 | offset += 2; |
7269 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0096_xxxx_solltyp2, tvb, offset, 2, ENC_BIG_ENDIAN); |
7270 | 0 | offset += 2; |
7271 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0096_xxxx_solltyp3, tvb, offset, 2, ENC_BIG_ENDIAN); |
7272 | 0 | offset += 2; |
7273 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0096_xxxx_solltyp4_5, tvb, offset, 4, ENC_BIG_ENDIAN); |
7274 | 0 | offset += 4; |
7275 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0096_xxxx_solltyp6_7, tvb, offset, 4, ENC_BIG_ENDIAN); |
7276 | 0 | offset += 4; |
7277 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0096_xxxx_expactid, tvb, offset, 2, ENC_BIG_ENDIAN); |
7278 | 0 | offset += 2; |
7279 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0096_xxxx_reserve1, tvb, offset, 2, ENC_BIG_ENDIAN); |
7280 | 0 | offset += 2; |
7281 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0096_xxxx_eastat, |
7282 | 0 | ett_s7comm_szl_0096_xxxx_eastat, s7comm_szl_0096_xxxx_eastat_fields, ENC_BIG_ENDIAN); |
7283 | 0 | offset += 2; |
7284 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0096_xxxx_berbgbr, |
7285 | 0 | ett_s7comm_szl_0096_xxxx_berbgbr, s7comm_szl_0096_xxxx_berbgbr_fields, ENC_BIG_ENDIAN); |
7286 | 0 | offset += 2; |
7287 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0096_xxxx_reserve2, tvb, offset, 10, ENC_NA); |
7288 | 0 | offset += 10; |
7289 | |
|
7290 | 0 | return offset; |
7291 | 0 | } |
7292 | | |
7293 | | /******************************************************************************************************* |
7294 | | * |
7295 | | * SZL-ID: 0x0424 |
7296 | | * Index: 0x0000 |
7297 | | * Content: |
7298 | | * If you read the system status list with SZL-ID W#16#xy24, you obtain |
7299 | | * information about the modes of the module. |
7300 | | * |
7301 | | *******************************************************************************************************/ |
7302 | | static void |
7303 | | s7comm_szl_0424_0000_register(int proto) |
7304 | 15 | { |
7305 | 15 | static hf_register_info hf[] = { |
7306 | 15 | { &hf_s7comm_szl_0424_0000_ereig, |
7307 | 15 | { "ereig", "s7comm.szl.0424.0000.ereig", FT_UINT16, BASE_HEX, NULL, 0x0, |
7308 | 15 | "Event ID", HFILL }}, |
7309 | 15 | { &hf_s7comm_szl_0424_0000_ae, |
7310 | 15 | { "ae", "s7comm.szl.0424.0000.ae", FT_UINT8, BASE_HEX, NULL, 0x0, |
7311 | 15 | "ae (B#16#FF)", HFILL }}, |
7312 | 15 | { &hf_s7comm_szl_0424_0000_bzu_id, |
7313 | 15 | { "bzu-id", "s7comm.szl.0424.0000.bzu_id", FT_UINT8, BASE_HEX, NULL, 0x0, |
7314 | 15 | "bzu-id (ID of the mode change divided into 4 bits, Bit 0 to 3: Requested mode, Bit 4 to 7: Previous mode)", HFILL }}, |
7315 | 15 | { &hf_s7comm_szl_0424_0000_bzu_id_req, |
7316 | 15 | { "Requested mode", "s7comm.szl.0424.0000.bzu_id.req", FT_UINT8, BASE_HEX, VALS(szl_0424_0000_bzu_id_names), 0x0f, |
7317 | 15 | "bzu-id Requested mode", HFILL }}, |
7318 | 15 | { &hf_s7comm_szl_0424_0000_bzu_id_pre, |
7319 | 15 | { "Previous mode", "s7comm.szl.0424.0000.bzu_id.pre", FT_UINT8, BASE_HEX, VALS(szl_0424_0000_bzu_id_names), 0xf0, |
7320 | 15 | "bzu-id Previous mode", HFILL }}, |
7321 | 15 | { &hf_s7comm_szl_0424_0000_res, |
7322 | 15 | { "res (Reserved)", "s7comm.szl.0424.0000.res", FT_BYTES, BASE_NONE, NULL, 0x0, |
7323 | 15 | NULL, HFILL }}, |
7324 | 15 | { &hf_s7comm_szl_0424_0000_anlinfo1, |
7325 | 15 | { "anlinfo1", "s7comm.szl.0424.0000.anlinfo1", FT_UINT8, BASE_HEX, NULL, 0x0, |
7326 | 15 | NULL, HFILL }}, |
7327 | 15 | { &hf_s7comm_szl_0424_0000_anlinfo2, |
7328 | 15 | { "anlinfo2", "s7comm.szl.0424.0000.anlinfo2", FT_UINT8, BASE_HEX, VALS(szl_0424_0000_anlinfo2_names), 0x0, |
7329 | 15 | "Type of startup just exceeded", HFILL }}, |
7330 | 15 | { &hf_s7comm_szl_0424_0000_anlinfo3, |
7331 | 15 | { "anlinfo3", "s7comm.szl.0424.0000.anlinfo3", FT_UINT8, BASE_HEX, NULL, 0x0, |
7332 | 15 | "Permissibility of startup types", HFILL }}, |
7333 | 15 | { &hf_s7comm_szl_0424_0000_anlinfo4, |
7334 | 15 | { "anlinfo4", "s7comm.szl.0424.0000.anlinfo4", FT_UINT8, BASE_HEX, VALS(szl_0424_0000_anlinfo4_names), 0x0, |
7335 | 15 | "Last valid operation or setting of the automatic startup type at power on", HFILL }}, |
7336 | 15 | { &hf_s7comm_szl_0424_0000_time, |
7337 | 15 | { "time", "s7comm.szl.0424.0000.time", FT_BYTES, BASE_NONE, NULL, 0x0, |
7338 | 15 | "time (Time stamp)", HFILL }} |
7339 | 15 | }; |
7340 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
7341 | 15 | } |
7342 | | |
7343 | | /*----------------------------------------------------------------------------------------------------*/ |
7344 | | static uint32_t |
7345 | | s7comm_decode_szl_id_0424_idx_0000(tvbuff_t *tvb, |
7346 | | proto_tree *tree, |
7347 | | uint32_t offset) |
7348 | 0 | { |
7349 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0424_0000_ereig, tvb, offset, 2, ENC_BIG_ENDIAN); |
7350 | 0 | offset += 2; |
7351 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0424_0000_ae, tvb, offset, 1, ENC_BIG_ENDIAN); |
7352 | 0 | offset += 1; |
7353 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_s7comm_szl_0424_0000_bzu_id, |
7354 | 0 | ett_s7comm_szl_0424_0000_bzu_id, s7comm_szl_0424_0000_bzu_id_fields, ENC_BIG_ENDIAN); |
7355 | 0 | offset += 1; |
7356 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0424_0000_res, tvb, offset, 4, ENC_NA); |
7357 | 0 | offset += 4; |
7358 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0424_0000_anlinfo1, tvb, offset, 1, ENC_BIG_ENDIAN); |
7359 | 0 | offset += 1; |
7360 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0424_0000_anlinfo2, tvb, offset, 1, ENC_BIG_ENDIAN); |
7361 | 0 | offset += 1; |
7362 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0424_0000_anlinfo3, tvb, offset, 1, ENC_BIG_ENDIAN); |
7363 | 0 | offset += 1; |
7364 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0424_0000_anlinfo4, tvb, offset, 1, ENC_BIG_ENDIAN); |
7365 | 0 | offset += 1; |
7366 | 0 | proto_tree_add_item(tree, hf_s7comm_szl_0424_0000_time, tvb, offset, 8, ENC_NA); |
7367 | 0 | offset += 8; |
7368 | |
|
7369 | 0 | return offset; |
7370 | 0 | } |
7371 | | |
7372 | | /******************************************************************************************************* |
7373 | | * |
7374 | | * Register SZL header fields |
7375 | | * |
7376 | | *******************************************************************************************************/ |
7377 | | void |
7378 | | s7comm_register_szl_types(int proto) |
7379 | 15 | { |
7380 | 15 | static hf_register_info hf[] = { |
7381 | | /*** SZL functions ***/ |
7382 | 15 | { &hf_s7comm_userdata_szl_partial_list, |
7383 | 15 | { "SZL partial list data", "s7comm.param.userdata.szl_part_list", FT_BYTES, BASE_NONE, NULL, 0x0, |
7384 | 15 | NULL, HFILL }}, |
7385 | | /* SZL ID */ |
7386 | 15 | { &hf_s7comm_userdata_szl_id, |
7387 | 15 | { "SZL-ID", "s7comm.data.userdata.szl_id", FT_UINT16, BASE_HEX, NULL, 0x0, |
7388 | 15 | "SZL-ID (System Status List) Bits 15-12: Diagnostic type, Bits 11-8: Number of the partial list extract, Bits 7-0: Number of the partial list", HFILL }}, |
7389 | | |
7390 | | /* N.B. 2nd member of the bitfield test covers all 16 bits.. */ |
7391 | 15 | { &hf_s7comm_userdata_szl_id_type, |
7392 | 15 | { "Diagnostic type", "s7comm.data.userdata.szl_id.diag_type", FT_UINT16, BASE_HEX, VALS(szl_module_type_names), 0xf000, |
7393 | 15 | NULL, HFILL }}, |
7394 | 15 | { &hf_s7comm_userdata_szl_id_partlist_ex, |
7395 | 15 | { "Number of the partial list extract", "s7comm.data.userdata.szl_id.partlist_ex", FT_UINT16, BASE_HEX | BASE_EXT_STRING, &szl_id_partlist_ex_names_ext, 0x0f00, |
7396 | 15 | NULL, HFILL }}, |
7397 | 15 | { &hf_s7comm_userdata_szl_id_partlist_num, |
7398 | 15 | { "Number of the partial list", "s7comm.data.userdata.szl_id.partlist_num", FT_UINT16, BASE_HEX | BASE_EXT_STRING, &szl_partial_list_names_ext, 0x00ff, |
7399 | 15 | NULL, HFILL }}, |
7400 | | |
7401 | | /* SZL index */ |
7402 | 15 | { &hf_s7comm_userdata_szl_index, |
7403 | 15 | { "SZL-Index", "s7comm.data.userdata.szl_index", FT_UINT16, BASE_HEX, NULL, 0x0, |
7404 | 15 | "SZL-Index (System Status List)", HFILL }}, |
7405 | 15 | { &hf_s7comm_userdata_szl_tree, |
7406 | 15 | { "SZL data tree", "s7comm.data.userdata.szl_data_tree", FT_NONE, BASE_NONE, NULL, 0x0, |
7407 | 15 | NULL, HFILL }}, |
7408 | 15 | { &hf_s7comm_userdata_szl_id_partlist_len, |
7409 | 15 | { "SZL partial list length in bytes", "s7comm.data.userdata.szl_id.partlist_len", FT_UINT16, BASE_DEC, NULL, 0x0, |
7410 | 15 | NULL, HFILL }}, |
7411 | 15 | { &hf_s7comm_userdata_szl_id_partlist_cnt, |
7412 | 15 | { "SZL partial list count", "s7comm.data.userdata.szl_id.partlist_cnt", FT_UINT16, BASE_DEC, NULL, 0x0, |
7413 | 15 | "SZL partial list count: the number of datasets in the results", HFILL }}, |
7414 | | |
7415 | 15 | { &hf_s7comm_szl_xy12_0x00_charac, |
7416 | 15 | { "Characteristic", "s7comm.szl.xy12.0x00.charac", FT_UINT16, BASE_HEX, VALS(szl_xy12_cpu_characteristic_names), 0x0, |
7417 | 15 | NULL, HFILL }}, |
7418 | | /* For general usage as a station information */ |
7419 | 15 | { &hf_s7comm_szl_xx9x_station_info, |
7420 | 15 | { "Station", "s7comm.szl.xy12.xx9x.station_info", FT_NONE, BASE_NONE, NULL, 0x0, |
7421 | 15 | NULL, HFILL }} |
7422 | 15 | }; |
7423 | | |
7424 | | /* Register Subtrees */ |
7425 | 15 | static int *ett[] = { |
7426 | 15 | &ett_s7comm_szl, |
7427 | 15 | &ett_s7comm_userdata_szl_id, |
7428 | 15 | &ett_s7comm_szl_xy22_00xx_al1, |
7429 | 15 | &ett_s7comm_szl_xy22_00xx_al2, |
7430 | 15 | &ett_s7comm_szl_0131_0002_funkt_0, |
7431 | 15 | &ett_s7comm_szl_0131_0002_funkt_1, |
7432 | 15 | &ett_s7comm_szl_0131_0002_funkt_2, |
7433 | 15 | &ett_s7comm_szl_0131_0002_trgereig_0, |
7434 | 15 | &ett_s7comm_szl_0131_0002_trgereig_1, |
7435 | 15 | &ett_s7comm_szl_0131_0003_funkt_0, |
7436 | 15 | &ett_s7comm_szl_0131_0003_funkt_1, |
7437 | 15 | &ett_s7comm_szl_0131_0003_funkt_2, |
7438 | 15 | &ett_s7comm_szl_0131_0003_funkt_3, |
7439 | 15 | &ett_s7comm_szl_0131_0004_funkt_0, |
7440 | 15 | &ett_s7comm_szl_0131_0004_funkt_1, |
7441 | 15 | &ett_s7comm_szl_0131_0004_funkt_2, |
7442 | 15 | &ett_s7comm_szl_0131_0004_funkt_3, |
7443 | 15 | &ett_s7comm_szl_0131_0004_funkt_4, |
7444 | 15 | &ett_s7comm_szl_0131_0005_funkt_0, |
7445 | 15 | &ett_s7comm_szl_0131_0006_funkt_0, |
7446 | 15 | &ett_s7comm_szl_0131_0006_funkt_1, |
7447 | 15 | &ett_s7comm_szl_0131_0006_funkt_2, |
7448 | 15 | &ett_s7comm_szl_0131_0006_funkt_3, |
7449 | 15 | &ett_s7comm_szl_0131_0006_funkt_6, |
7450 | 15 | &ett_s7comm_szl_0131_0006_funkt_7, |
7451 | 15 | &ett_s7comm_szl_0131_0006_zugtyp_0, |
7452 | 15 | &ett_s7comm_szl_0131_0006_zugtyp_1, |
7453 | 15 | &ett_s7comm_szl_0131_0006_zugtyp_2, |
7454 | 15 | &ett_s7comm_szl_0131_0006_zugtyp_3, |
7455 | 15 | &ett_s7comm_szl_0131_0006_zugtyp_6, |
7456 | 15 | &ett_s7comm_szl_0131_0006_zugtyp_7, |
7457 | 15 | &ett_s7comm_szl_0131_0007_funkt_0, |
7458 | 15 | &ett_s7comm_szl_0131_0007_obj_0, |
7459 | 15 | &ett_s7comm_szl_0131_0007_mode, |
7460 | 15 | &ett_s7comm_szl_0131_0009_sync_k, |
7461 | 15 | &ett_s7comm_szl_0131_0009_sync_mpi, |
7462 | 15 | &ett_s7comm_szl_0131_0009_sync_mfi, |
7463 | 15 | &ett_s7comm_szl_0131_0010_funk_1, |
7464 | 15 | &ett_s7comm_szl_0131_0010_ber_meld_1, |
7465 | 15 | &ett_s7comm_szl_0131_0010_ber_zus_1, |
7466 | 15 | &ett_s7comm_szl_0131_0010_typ_zus_1, |
7467 | 15 | &ett_s7comm_szl_0091_0000_eastat, |
7468 | 15 | &ett_s7comm_szl_0091_0000_berbgbr, |
7469 | 15 | &ett_s7comm_szl_0096_xxxx_eastat, |
7470 | 15 | &ett_s7comm_szl_0096_xxxx_berbgbr, |
7471 | 15 | &ett_s7comm_szl_xx9x_station_info, |
7472 | 15 | &ett_s7comm_szl_0424_0000_bzu_id, |
7473 | 15 | }; |
7474 | 15 | proto_register_subtree_array(ett, array_length (ett)); |
7475 | 15 | proto_register_field_array(proto, hf, array_length(hf)); |
7476 | | |
7477 | | /* Register the SZL fields */ |
7478 | 15 | s7comm_szl_0000_0000_register(proto); |
7479 | 15 | s7comm_szl_0013_0000_register(proto); |
7480 | 15 | s7comm_szl_xy14_000x_register(proto); |
7481 | 15 | s7comm_szl_xy15_000x_register(proto); |
7482 | 15 | s7comm_szl_xy11_0001_register(proto); |
7483 | 15 | s7comm_szl_xy22_00xx_register(proto); |
7484 | 15 | s7comm_szl_0131_0001_register(proto); |
7485 | 15 | s7comm_szl_0131_0002_register(proto); |
7486 | 15 | s7comm_szl_0131_0003_register(proto); |
7487 | 15 | s7comm_szl_0131_0004_register(proto); |
7488 | 15 | s7comm_szl_0131_0005_register(proto); |
7489 | 15 | s7comm_szl_0131_0006_register(proto); |
7490 | 15 | s7comm_szl_0131_0007_register(proto); |
7491 | 15 | s7comm_szl_0131_0008_register(proto); |
7492 | 15 | s7comm_szl_0131_0009_register(proto); |
7493 | 15 | s7comm_szl_0131_0010_register(proto); |
7494 | 15 | s7comm_szl_0132_0001_register(proto); |
7495 | 15 | s7comm_szl_0132_0002_register(proto); |
7496 | 15 | s7comm_szl_0132_0004_register(proto); |
7497 | 15 | s7comm_szl_0132_0005_register(proto); |
7498 | 15 | s7comm_szl_0132_0006_register(proto); |
7499 | 15 | s7comm_szl_0132_0008_register(proto); |
7500 | 15 | s7comm_szl_0132_000b_register(proto); |
7501 | 15 | s7comm_szl_0132_000c_register(proto); |
7502 | 15 | s7comm_szl_xy1c_000x_register(proto); |
7503 | 15 | s7comm_szl_xy91_0000_register(proto); |
7504 | 15 | s7comm_szl_xy92_xxxx_register(proto); |
7505 | 15 | s7comm_szl_0x94_xxxx_register(proto); |
7506 | 15 | s7comm_szl_xy96_xxxx_register(proto); |
7507 | 15 | s7comm_szl_xy74_0000_register(proto); |
7508 | 15 | s7comm_szl_0424_0000_register(proto); |
7509 | 15 | s7comm_szl_xy76_0000_register(proto); |
7510 | 15 | s7comm_szl_xy77_xxxx_register(proto); |
7511 | 15 | s7comm_szl_xy78_xxxx_register(proto); |
7512 | 15 | } |
7513 | | |
7514 | | /******************************************************************************************************* |
7515 | | * |
7516 | | * PDU Type: User Data -> Function group 4 -> SZL functions |
7517 | | * |
7518 | | *******************************************************************************************************/ |
7519 | | uint32_t |
7520 | | s7comm_decode_ud_cpu_szl_subfunc(tvbuff_t *tvb, |
7521 | | packet_info *pinfo, |
7522 | | proto_tree *data_tree, |
7523 | | uint8_t type, /* Type of data (request/response) */ |
7524 | | uint8_t ret_val, /* Return value in data part */ |
7525 | | uint32_t dlength, |
7526 | | uint32_t offset) |
7527 | 37 | { |
7528 | 37 | uint16_t id; |
7529 | 37 | uint16_t idx; |
7530 | 37 | uint16_t list_len; |
7531 | 37 | uint16_t list_count; |
7532 | 37 | uint16_t i; |
7533 | 37 | uint32_t start_offset; |
7534 | 37 | proto_item *szl_item = NULL; |
7535 | 37 | proto_tree *szl_item_tree = NULL; |
7536 | 37 | proto_item *szl_item_entry = NULL; |
7537 | 37 | const char* szl_index_description; |
7538 | 37 | bool szl_decoded = false; |
7539 | | |
7540 | 37 | start_offset = offset; |
7541 | 37 | if (type == S7COMM_UD_TYPE_REQ) { |
7542 | 0 | id = tvb_get_ntohs(tvb, offset); |
7543 | 0 | proto_tree_add_bitmask(data_tree, tvb, offset, hf_s7comm_userdata_szl_id, |
7544 | 0 | ett_s7comm_userdata_szl_id, s7comm_userdata_szl_id_fields, ENC_BIG_ENDIAN); |
7545 | 0 | offset += 2; |
7546 | 0 | idx = tvb_get_ntohs(tvb, offset); |
7547 | 0 | szl_item_entry = proto_tree_add_item(data_tree, hf_s7comm_userdata_szl_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
7548 | 0 | offset += 2; |
7549 | 0 | szl_index_description = s7comm_get_szl_id_index_description_text(id, idx); |
7550 | 0 | if (szl_index_description != NULL) { |
7551 | 0 | proto_item_append_text(szl_item_entry, " [%s]", szl_index_description); |
7552 | 0 | } |
7553 | 0 | proto_item_append_text(data_tree, " (SZL-ID: 0x%04x, Index: 0x%04x)", id, idx); |
7554 | 0 | col_append_fstr(pinfo->cinfo, COL_INFO, " ID=0x%04x Index=0x%04x" , id, idx); |
7555 | 37 | } else if (type == S7COMM_UD_TYPE_RES) { |
7556 | 36 | if (ret_val == S7COMM_ITEM_RETVAL_DATA_OK) { |
7557 | 35 | id = tvb_get_ntohs(tvb, offset); |
7558 | 35 | proto_tree_add_bitmask(data_tree, tvb, offset, hf_s7comm_userdata_szl_id, |
7559 | 35 | ett_s7comm_userdata_szl_id, s7comm_userdata_szl_id_fields, ENC_BIG_ENDIAN); |
7560 | 35 | offset += 2; |
7561 | 35 | idx = tvb_get_ntohs(tvb, offset); |
7562 | 35 | szl_item_entry = proto_tree_add_item(data_tree, hf_s7comm_userdata_szl_index, tvb, offset, 2, ENC_BIG_ENDIAN); |
7563 | 35 | offset += 2; |
7564 | 35 | szl_index_description = s7comm_get_szl_id_index_description_text(id, idx); |
7565 | 35 | if (szl_index_description != NULL) { |
7566 | 0 | proto_item_append_text(szl_item_entry, " [%s]", szl_index_description); |
7567 | 0 | } |
7568 | 35 | proto_item_append_text(data_tree, " (SZL-ID: 0x%04x, Index: 0x%04x)", id, idx); |
7569 | 35 | col_append_fstr(pinfo->cinfo, COL_INFO, " ID=0x%04x Index=0x%04x" , id, idx); |
7570 | | |
7571 | | /* SZL-Data, 4 Bytes header, 4 bytes id/index = 8 bytes */ |
7572 | 35 | list_len = tvb_get_ntohs(tvb, offset); /* Length of an list set in bytes */ |
7573 | 35 | proto_tree_add_uint(data_tree, hf_s7comm_userdata_szl_id_partlist_len, tvb, offset, 2, list_len); |
7574 | 35 | offset += 2; |
7575 | 35 | list_count = tvb_get_ntohs(tvb, offset); /* count of partlists */ |
7576 | 35 | proto_tree_add_uint(data_tree, hf_s7comm_userdata_szl_id_partlist_cnt, tvb, offset, 2, list_count); |
7577 | 35 | offset += 2; |
7578 | | /* Check the listcount, as in fragmented packets some CPUs (firmware bug?) send 0xffff as list count */ |
7579 | 35 | if (((uint32_t)list_count * (uint32_t)list_len) > (dlength - (offset - start_offset))) { |
7580 | | /* TODO: Make entry in expert field */ |
7581 | 23 | list_count = (dlength - (offset - start_offset)) / list_len; |
7582 | 23 | } |
7583 | | /* Add a Data element for each partlist */ |
7584 | 35 | if (dlength > 8) { /* minimum length of a correct szl data part is 8 bytes */ |
7585 | 1.10k | for (i = 1; i <= list_count && (list_count * list_len != 0); i++) { |
7586 | | /* Add a separate tree for the SZL data */ |
7587 | 1.07k | szl_item = proto_tree_add_item(data_tree, hf_s7comm_userdata_szl_tree, tvb, offset, list_len, ENC_NA); |
7588 | 1.07k | szl_item_tree = proto_item_add_subtree(szl_item, ett_s7comm_szl); |
7589 | 1.07k | proto_item_append_text(szl_item, " (list count no. %d)", i); |
7590 | 1.07k | szl_decoded = false; |
7591 | | /* lets try to decode some known szl-id and indexes */ |
7592 | 1.07k | switch (id) { |
7593 | 0 | case 0x0000: |
7594 | 0 | offset = s7comm_decode_szl_id_xy00(tvb, szl_item_tree, id, idx, offset); |
7595 | 0 | szl_decoded = true; |
7596 | 0 | break; |
7597 | 0 | case 0x0012: |
7598 | 0 | case 0x0112: |
7599 | 0 | proto_tree_add_item(szl_item_tree, hf_s7comm_szl_xy12_0x00_charac, tvb, offset, 2, ENC_BIG_ENDIAN); |
7600 | 0 | offset += 2; |
7601 | 0 | szl_decoded = true; |
7602 | 0 | break; |
7603 | 0 | case 0x0013: |
7604 | 0 | case 0x0113: |
7605 | 0 | if (idx == 0x0000) { |
7606 | 0 | offset = s7comm_decode_szl_id_0013_idx_0000(tvb, szl_item_tree, offset); |
7607 | 0 | szl_decoded = true; |
7608 | 0 | } |
7609 | 0 | break; |
7610 | 0 | case 0x0014: |
7611 | 0 | case 0x0114: |
7612 | 0 | offset = s7comm_decode_szl_id_xy14_idx_000x(tvb, szl_item_tree, offset); |
7613 | 0 | szl_decoded = true; |
7614 | 0 | break; |
7615 | 0 | case 0x0015: |
7616 | 0 | case 0x0115: |
7617 | 0 | offset = s7comm_decode_szl_id_xy15_idx_000x(tvb, szl_item_tree, offset); |
7618 | 0 | szl_decoded = true; |
7619 | 0 | break; |
7620 | 0 | case 0x0011: |
7621 | 0 | case 0x0111: |
7622 | | /* It's (almost) the same structure for all possible indexes */ |
7623 | 0 | offset = s7comm_decode_szl_id_0111_idx_0001(tvb, szl_item_tree, offset); |
7624 | 0 | szl_decoded = true; |
7625 | 0 | break; |
7626 | 0 | case 0x0222: |
7627 | 0 | offset = s7comm_decode_szl_id_xy22_idx_00xx(tvb, szl_item_tree, offset); |
7628 | 0 | szl_decoded = true; |
7629 | 0 | break; |
7630 | 0 | case 0x00a0: |
7631 | 0 | case 0x01a0: |
7632 | 0 | case 0x04a0: |
7633 | 0 | case 0x05a0: |
7634 | 0 | case 0x06a0: |
7635 | 0 | case 0x07a0: |
7636 | 0 | case 0x08a0: |
7637 | 0 | case 0x09a0: |
7638 | 0 | case 0x0aa0: |
7639 | 0 | case 0x0ba0: |
7640 | 0 | case 0x0ca0: |
7641 | 0 | case 0x0da0: |
7642 | 0 | case 0x0ea0: |
7643 | | /* the data structure is the same as used when CPU is sending online such messages */ |
7644 | 0 | offset = s7comm_decode_ud_cpu_diagnostic_message(tvb, pinfo, false, szl_item_tree, offset); |
7645 | 0 | szl_decoded = true; |
7646 | 0 | break; |
7647 | 0 | case 0x001c: |
7648 | 0 | case 0x011c: |
7649 | 0 | case 0x021c: |
7650 | 0 | case 0x031c: |
7651 | 0 | offset = s7comm_decode_szl_id_xy1c_idx_000x(tvb, szl_item_tree, offset); |
7652 | 0 | szl_decoded = true; |
7653 | 0 | break; |
7654 | 0 | case 0x0131: |
7655 | 0 | switch (idx) { |
7656 | 0 | case 0x0001: |
7657 | 0 | offset = s7comm_decode_szl_id_0131_idx_0001(tvb, szl_item_tree, offset); |
7658 | 0 | szl_decoded = true; |
7659 | 0 | break; |
7660 | 0 | case 0x0002: |
7661 | 0 | offset = s7comm_decode_szl_id_0131_idx_0002(tvb, szl_item_tree, offset); |
7662 | 0 | szl_decoded = true; |
7663 | 0 | break; |
7664 | 0 | case 0x0003: |
7665 | 0 | offset = s7comm_decode_szl_id_0131_idx_0003(tvb, szl_item_tree, offset); |
7666 | 0 | szl_decoded = true; |
7667 | 0 | break; |
7668 | 0 | case 0x0004: |
7669 | 0 | offset = s7comm_decode_szl_id_0131_idx_0004(tvb, szl_item_tree, offset); |
7670 | 0 | szl_decoded = true; |
7671 | 0 | break; |
7672 | 0 | case 0x0005: |
7673 | 0 | offset = s7comm_decode_szl_id_0131_idx_0005(tvb, szl_item_tree, offset); |
7674 | 0 | szl_decoded = true; |
7675 | 0 | break; |
7676 | 0 | case 0x0006: |
7677 | 0 | offset = s7comm_decode_szl_id_0131_idx_0006(tvb, szl_item_tree, offset); |
7678 | 0 | szl_decoded = true; |
7679 | 0 | break; |
7680 | 0 | case 0x0007: |
7681 | 0 | offset = s7comm_decode_szl_id_0131_idx_0007(tvb, szl_item_tree, offset); |
7682 | 0 | szl_decoded = true; |
7683 | 0 | break; |
7684 | 0 | case 0x0008: |
7685 | 0 | offset = s7comm_decode_szl_id_0131_idx_0008(tvb, szl_item_tree, offset); |
7686 | 0 | szl_decoded = true; |
7687 | 0 | break; |
7688 | 0 | case 0x0009: |
7689 | 0 | offset = s7comm_decode_szl_id_0131_idx_0009(tvb, szl_item_tree, offset); |
7690 | 0 | szl_decoded = true; |
7691 | 0 | break; |
7692 | 0 | case 0x0010: |
7693 | 0 | offset = s7comm_decode_szl_id_0131_idx_0010(tvb, szl_item_tree, offset); |
7694 | 0 | szl_decoded = true; |
7695 | 0 | break; |
7696 | 0 | } |
7697 | 0 | break; |
7698 | 0 | case 0x0132: |
7699 | 0 | switch (idx) { |
7700 | 0 | case 0x0001: |
7701 | 0 | offset = s7comm_decode_szl_id_0132_idx_0001(tvb, szl_item_tree, offset); |
7702 | 0 | szl_decoded = true; |
7703 | 0 | break; |
7704 | 0 | case 0x0002: |
7705 | 0 | offset = s7comm_decode_szl_id_0132_idx_0002(tvb, szl_item_tree, offset); |
7706 | 0 | szl_decoded = true; |
7707 | 0 | break; |
7708 | 0 | case 0x0004: |
7709 | 0 | offset = s7comm_decode_szl_id_0132_idx_0004(tvb, szl_item_tree, offset); |
7710 | 0 | szl_decoded = true; |
7711 | 0 | break; |
7712 | 0 | case 0x0005: |
7713 | 0 | offset = s7comm_decode_szl_id_0132_idx_0005(tvb, szl_item_tree, offset); |
7714 | 0 | szl_decoded = true; |
7715 | 0 | break; |
7716 | 0 | case 0x0006: |
7717 | 0 | offset = s7comm_decode_szl_id_0132_idx_0006(tvb, szl_item_tree, offset); |
7718 | 0 | szl_decoded = true; |
7719 | 0 | break; |
7720 | 0 | case 0x0008: |
7721 | 0 | offset = s7comm_decode_szl_id_0132_idx_0008(tvb, szl_item_tree, offset); |
7722 | 0 | szl_decoded = true; |
7723 | 0 | break; |
7724 | 0 | case 0x000b: |
7725 | 0 | offset = s7comm_decode_szl_id_0132_idx_000b(tvb, szl_item_tree, offset); |
7726 | 0 | szl_decoded = true; |
7727 | 0 | break; |
7728 | 0 | case 0x000c: |
7729 | 0 | offset = s7comm_decode_szl_id_0132_idx_000c(tvb, szl_item_tree, offset); |
7730 | 0 | szl_decoded = true; |
7731 | 0 | break; |
7732 | 0 | } |
7733 | 0 | break; |
7734 | 0 | case 0x0019: |
7735 | 0 | case 0x0119: |
7736 | 0 | case 0x0074: |
7737 | 0 | case 0x0174: |
7738 | 0 | offset = s7comm_decode_szl_id_xy74_idx_0000(tvb, szl_item_tree, offset); |
7739 | 0 | szl_decoded = true; |
7740 | 0 | break; |
7741 | 0 | case 0x0076: |
7742 | 0 | offset = s7comm_decode_szl_id_xy76_idx_0000(tvb, szl_item_tree, offset); |
7743 | 0 | szl_decoded = true; |
7744 | 0 | break; |
7745 | 0 | case 0x0077: |
7746 | 0 | offset = s7comm_decode_szl_id_xy77_idx_xxxx(tvb, szl_item_tree, offset); |
7747 | 0 | szl_decoded = true; |
7748 | 0 | break; |
7749 | 0 | case 0x0078: |
7750 | 0 | offset = s7comm_decode_szl_id_xy78_idx_xxxx(tvb, pinfo, szl_item_tree, offset); |
7751 | 0 | szl_decoded = true; |
7752 | 0 | break; |
7753 | 0 | case 0x0091: |
7754 | 0 | case 0x0191: |
7755 | 0 | case 0x0291: |
7756 | 0 | case 0x0391: |
7757 | 0 | case 0x0491: |
7758 | 0 | case 0x0591: |
7759 | 0 | case 0x0991: |
7760 | 0 | case 0x0a91: |
7761 | 0 | case 0x0c91: |
7762 | 0 | case 0x4c91: |
7763 | 0 | case 0x0d91: |
7764 | 0 | case 0x0e91: |
7765 | 0 | offset = s7comm_decode_szl_id_xy91_idx_0000(tvb, szl_item_tree, id, offset); |
7766 | 0 | szl_decoded = true; |
7767 | 0 | break; |
7768 | 0 | case 0x0092: |
7769 | 0 | case 0x0192: |
7770 | 0 | case 0x0292: |
7771 | 0 | case 0x0392: |
7772 | 0 | case 0x0492: |
7773 | 0 | case 0x0592: |
7774 | 0 | case 0x0692: |
7775 | 0 | case 0x4092: |
7776 | 0 | case 0x4292: |
7777 | 0 | case 0x4692: |
7778 | 0 | offset = s7comm_decode_szl_id_xy92_idx_xxxx(tvb, szl_item_tree, id, offset); |
7779 | 0 | szl_decoded = true; |
7780 | 0 | break; |
7781 | 0 | case 0x0094: |
7782 | 0 | case 0x0194: |
7783 | 0 | case 0x0294: |
7784 | 0 | case 0x0694: |
7785 | 0 | case 0x0794: |
7786 | 0 | offset = s7comm_decode_szl_id_0x94_idx_xxxx(tvb, szl_item_tree, id, offset); |
7787 | 0 | szl_decoded = true; |
7788 | 0 | break; |
7789 | 0 | case 0x0696: |
7790 | 0 | case 0x0c96: |
7791 | 0 | offset = s7comm_decode_szl_id_xy96_idx_xxxx(tvb, szl_item_tree, offset); |
7792 | 0 | szl_decoded = true; |
7793 | 0 | break; |
7794 | 0 | case 0x0124: |
7795 | 0 | case 0x0424: |
7796 | 0 | if (idx == 0x0000) { |
7797 | 0 | offset = s7comm_decode_szl_id_0424_idx_0000(tvb, szl_item_tree, offset); |
7798 | 0 | szl_decoded = true; |
7799 | 0 | } |
7800 | 0 | break; |
7801 | 1.07k | default: |
7802 | 1.07k | szl_decoded = false; |
7803 | 1.07k | break; |
7804 | 1.07k | } |
7805 | 1.07k | if (szl_decoded == false) { |
7806 | 1.07k | proto_tree_add_item(szl_item_tree, hf_s7comm_userdata_szl_partial_list, tvb, offset, list_len, ENC_NA); |
7807 | 1.07k | offset += list_len; |
7808 | 1.07k | } |
7809 | 1.07k | } /* ...for */ |
7810 | 34 | } |
7811 | 35 | } else { |
7812 | 1 | col_append_fstr(pinfo->cinfo, COL_INFO, " Return value:[%s]", val_to_str(pinfo->pool, ret_val, s7comm_item_return_valuenames, "Unknown return value:0x%02x")); |
7813 | 1 | } |
7814 | 36 | } |
7815 | 37 | return offset; |
7816 | 37 | } |
7817 | | |
7818 | | /* |
7819 | | * Editor modelines - https://www.wireshark.org/tools/modelines.html |
7820 | | * |
7821 | | * Local variables: |
7822 | | * c-basic-offset: 4 |
7823 | | * tab-width: 8 |
7824 | | * indent-tabs-mode: nil |
7825 | | * End: |
7826 | | * |
7827 | | * vi: set shiftwidth=4 tabstop=8 expandtab: |
7828 | | * :indentSize=4:tabSize=8:noTabs=true: |
7829 | | */ |