Wiki source code of 06 Data Tool

Version 55.1 by Mora Zhou on 2023/11/21 16:36

Show last authors
1 (% class="wikigeneratedid" %)
2 This chapter provides information about basic functions and configuration in PIStudio.
3
4 = **Alarm** =
5
6 == Bit alarm ==
7
8 Click "Project"→"Bit Alarm", it is displayed as the following figure.
9
10 (% style="text-align:center" %)
11 [[image:位报警 1.png||data-xwiki-image-style-alignment="center" class="img-thumbnail"]]
12
13 **Group No.: **Group number of Bit alarm. The name is unique and cannot be duplicated.
14
15 **Bit Address: **Bit address of alarm monitoring
16
17 * **Record bit alarm by default:**  Whether to record the alarm history data of bit alarm, if checked, it will be saved in the designated storage location.
18 * **Not save alarm OFF:** If checked, after the alarm is dismissed, the corresponding alarm records will be deleted from the log file.
19
20 **Upload to Cloud: **The data upload by "bit alarm" is stored in the Cloud and it is alarm data. (Only ig series and 8000/9000 series with -R after system upgrade are supported)
21
22 (% class="box infomessage" %)
23 (((
24 **✎Note:**
25
26 * After enable the Cloud and check the box of Upload to Cloud, the communication port settings of the address in the imported Bit Alarm record configuration must be the same as the communication port settings of the current project, otherwise it cannot be used normally.
27 * The number of Alarm records upload to Cloud shall not exceed the limit value, or the sum of the imported alarm records and the number of existing alarm records shall not exceed the limit value. the specific limitation as following table:
28
29 (% class="table-bordered" style="margin-left:auto; margin-right:auto; width:358px" %)
30 |=(% style="width: 79px;" %)Series|=(% style="width: 276px;" %)Number of Alarm upload to Cloud
31 |(% style="width:79px" %)8000-R|(% style="text-align:center; width:276px" %)200
32 |(% style="width:79px" %)9000-R|(% style="text-align:center; width:276px" %)200
33 |(% style="width:79px" %)3000ig|(% style="text-align:center; width:276px" %)20
34 |(% style="width:79px" %)8000ig|(% style="text-align:center; width:276px" %)200
35 |(% style="width:79px" %)MD|(% style="text-align:center; width:276px" %)20
36 )))
37
38 **Alarm Condition:** It sets alarm trigger condition, there are two types: alarm when ON and alarm when OFF.
39
40 **Alert: **It is used to mark whether the alarm has occurred. if an alarm occurs, the address of "control bit" will be written to 1. If "clear alert when alarm OFF" is checked, the address of "control bit" will be written to 0.
41
42 **Beep when alarm ON: **The beep works when the alarm is triggered. If "beep once" is checked, bit address alarm only beep once and stop.
43
44 **Content: **It is used for setting alarm content (command).
45
46 **Alarm Screen: **Pop-up alarm screen (it need to be sub-screen);
47
48 * **Position: **The location of the screen alarm display.
49 * **Pop-up Interval: **The time of reopen the alarm screen when alarm screen closed.
50 * **Pop-up once: **Pop up alarm screen once, and the screen would not pop up again
51 * **Close window when alarm off: **Automatically close the alarm screen when alarm off.
52
53 (% class="box infomessage" %)
54 (((
55 **✎Note:**
56
57 * If the "cloud" function is enabled and "upload to cloud" is checked, the communication port of the address in the configuration of the imported bit alarm record must be the same as that of the current project; otherwise, it cannot be used normally.
58 * The number of alarm configuration points reported to the cloud cannot exceed 20, or the sum of imported alarm records and the current alarm records cannot exceed 20. If it exceeds, please reconfigure.
59 )))
60
61 **Operating Procedures of Adding One Alarm**
62
63 * Click "Project"→"Bit Alarm" as below shows.
64
65 (% style="text-align:center" %)
66 [[image:8.Basic Function_html_5f8da20315334bac.png||data-xwiki-image-style-alignment="center" height="144" width="539" class="img-thumbnail"]]
67
68 * Click "Add" button to open "Bit Alarm" setting window.
69
70 (% style="text-align:center" %)
71 [[image:8.Basic Function_html_94a019683b506e15.png||data-xwiki-image-style-alignment="center" height="307" width="554" class="img-thumbnail"]]
72
73 * Set "Bit Address".
74 * Set "Alarm Condition".
75 * Set "Content".
76 * Other settings can be set according to the actual situation".
77 * Click "OK" button to complete settings.
78
79 == Word alarm ==
80
81 Word alarm is to monitor the word address of a device. If the data meets the set conditions, an alarm will be generated.
82
83 Click "Project"→"Word alarm", it is displayed as the following figure.
84
85 (% style="text-align:center" %)
86 [[image:字报警 1.png||class="img-thumbnail"]]
87
88 **Alarm Name:** You can set alarm name for it. Alarm Name can only consist of (0~~9), (a~~z), (A~~Z), ('_'), (' ') and other non-English characters.
89
90 **Alarm Address: **It is used for setting word address for word alarm, such as HDW0.
91
92 **Data Format: **16-bit unsigned decimal, 16-bit signed decimal, 16-bit BCD, 32-bit unsigned decimal, 32-bit signed decimal, 32-bit BCD, 32-bit float.
93
94 **Group No.: **Group number of word alarm. The name is unique and cannot be duplicated.
95
96 **Upload to Cloud: **The data upload by "word alarm" is stored in the Cloud and it is alarm data. (Only ig series and 8000/9000 series with -R after system upgrade are supported)
97
98 (% class="box infomessage" %)
99 (((
100 **✎Note:**
101
102 * If the "cloud" function is enabled and "upload to cloud" is checked, the communication port of the address in the configuration of the imported word alarm record must be the same as that of the current project; otherwise, it cannot be used normally.
103 * The number of alarm configuration points reported to the cloud cannot exceed 20, or the sum of imported alarm records and the current alarm records cannot exceed 20. If it exceeds, please reconfigure.
104
105 (% style="margin-left:auto; margin-right:auto; width:358px" %)
106 |=(% style="width: 79px;" %)Series|=(% style="width: 276px;" %)Number of Alarm upload to Cloud
107 |(% style="width:79px" %)8000-R|(% style="text-align:center; width:276px" %)200
108 |(% style="width:79px" %)9000-R|(% style="text-align:center; width:276px" %)200
109 |(% style="width:79px" %)3000ig|(% style="text-align:center; width:276px" %)20
110 |(% style="width:79px" %)8000ig|(% style="text-align:center; width:276px" %)200
111 |(% style="width:79px" %)MD|(% style="text-align:center; width:276px" %)20
112 )))
113
114 **Record alarm:**  Whether to record the alarm history data of word alarm, if checked, it will be saved in the designated storage location.
115
116 **Not save alarm OFF:** If checked, after the alarm is dismissed, the corresponding alarm records will be deleted from the log file.
117
118 **Alarm Condition**: Alarm is triggered when designated address meets the alarm condition, it provides four conditions;
119
120 1. **High alarm:** Alarm is triggered when it reaches high limit. It can be a constant or a variable
121 1. **Low alarm:** Alarm is triggered when it reaches low limit. It can be a constant or a variable
122 1. **Range alarm:** Alarm is triggered when it exceeds the range. It can be a constant or a variable
123 1. **Equivalent alarm: **Alarm is triggered when the value equals to the given data. It can be a constant or a variable
124
125 **Alarm Info: **It is used for setting alarm content (command);
126
127 **Alert: **It is used to mark whether the alarm has occurred. if an alarm occurs, the address of "control bit" will be written to 1. If "clear alert when alarm OFF" is checked, the address of "control bit" will be written to 0.
128
129 **Alarm Screen: **Pop-up alarm screen (it need to be sub-screen);
130
131 1. **Position: **The location of the screen alarm display.
132 1. **Pop-up Interval: **The time of reopen the alarm screen when alarm screen closed.
133 1. **Pop-up once: **Pop up alarm screen once.
134 1. **Close window when alarm off: **Automatically close the alarm screen when alarm off.
135
136 **Beep when alarm ON: **beep works when the alarm is triggered, in the default mode, the beep works until the alarm is released.
137
138 **Beep once:** Beep works once, when alarm is triggered.
139
140 **Alarm List**
141
142 It displays all the word alarm lists; it will show the alarm information;
143
144 **Operating Procedures of Adding One Alarm**
145
146 * Click "Project"→ "Word Alarm" as below shows.
147
148 (% style="text-align:center" %)
149 [[image:8.Basic Function_html_1b59522c984cd7c2.png||height="144" width="492" class="img-thumbnail"]]
150
151 * Click "AddClick" button to open "Word Alarm" setting window.
152
153 (% style="text-align:center" %)
154 [[image:8.Basic Function_html_942107c81fc6901c.png||height="307" width="554" class="img-thumbnail"]]
155
156 * Set Basic information of word alarm.
157 * Set "Content".
158 * Other settings can be set according to the actual situation.
159 * Click "OK" button to complete settings.
160
161 **HMI Alarm Demo Download Link**
162
163 [[https:~~/~~/drive.google.com/open?id=1Llq03CMISM_1mMIfU308hxFbs4rGdQGP>>url:https://drive.google.com/open?id=1Llq03CMISM_1mMIfU308hxFbs4rGdQGP]]
164
165 = **Recipe** =
166
167 == Overview of recipe ==
168
169 Recipes are composed of multiple groups of information materials with the same structure and different data. Due to the sameness of these materials, users can edit them into a group of recipes to facilitate data transfer between HMI and PLC. Therefore, this function can be utilized for information that has a similar structure to achieve efficient and correct transmission.
170
171 Data operation of recipe: Upload and download. Upload refers to reading the data of [The set address] group and writing the data of this group to the corresponding recipe file. Download refers to reading a group of data from the recipe file and assigning the group of data to [The set address].
172
173 The recipe data can be stored in external equipment, such as USB flash disk and SD card. The whole recipe data can be viewed with the [Recipe record] object.
174
175 (% class="wikigeneratedid" id="HExample" %)
176 **Example**
177
178 Taking automobile paint spraying as an example, suppose that when a newly manufactured automobile needs to be painted, it needs to spray different colors (red, green and blue) on the top, bottom and outside of the automobile, and the original colors provided are only red, green and blue. At this time, to spray different colors, it needs the appropriate ratio of these three colors, and the spraying time of different parts is different. At this time, the function of recipe needs to be executed. Check Table 1 for details.
179
180 Table 1 Example recipe
181
182 |Part|Red (Kg)|Green (Kg)|Blue (Kg)|Spraying time (Seconds)
183 |Top|2|2|1|30
184 |Bottom|3|1|2|40
185 |Outside|2|3|3|20
186
187 From the above table, one group of recipes is needed when spraying different parts, and three groups of recipes can be established, and each group of recipes has four ingredients: Red, Green, Blue, Spraying time. The value of each ingredient is different in different groups of recipes.**Recipe configuration**
188
189 The recipe function needs to be used with the recipe configuration area and [Recipe record] object. Click [Recipe] in the [System configuration/Record setting] in the upper left side of the software [[image:1698393787529-717.png]]and the following interface will pop up:
190
191 (% style="text-align:center" %)
192 [[image:1.png]]
193
194 Click [Add] to pop up the recipe setting interface, as shown in the following figure:
195
196 (% style="text-align:center" %)
197 [[image:2.png]]
198
199 |Recipe configuration options|Description|Notice
200 |Recipe name|Name the current recipe|Note: Recipe name can only consist of (0~~9), (a~~z), (A~~Z), ('_'), ('') and other non-English characters.
201 |Group number|Configure the group number of the current recipe, ranging from 0 to 1000|
202 |Number of ingredients|Configure the number of the current ingredient, ranging from 0 to 1500|
203
204 |Data configuration options|Description|Notice
205 |Starting address|The data of group in the recipe file is read out and displayed in the address, which will be automatically assigned according to the set data format of each ingredient. For example, if each group has 10 ingredients, the ingredient format is 16-bit unsigned decimal number, and the starting address is HDW0, then 10 addresses (HDW0-HDW9) correspond to 10 ingredients respectively, the values in HDWO correspond to the values in ingredient 1, the values in HDW1 correspond to the values in ingredient 2, and so on.|
206 |Recipes are read and written at different addresses|When "recipe written and read address are different" is checked, the address configured by the read address is only used for recipe read data operation, and the address set in this area is used to control recipe written data operation.|
207 |Data format|Configure the data format of this recipe. There are 9 modes of data format: 16-bit BCD code, 16-bit signed decimal, 16-bit unsigned decimal, 32-bit BCD code, 32-bit signed decimal, 32-bit unsigned decimal, 32-bit (single-precision) floating points, 64-bit (double-precision) floating point, string.|(% rowspan="2" %)**✎Note:** The data format set here is for all components of the recipe, that is, the data format of all components in a recipe is consistent.
208 |Decimal point position|Configure the selection of integer and decimal places of data.
209 |Enable discontinuous addresses|If checked, the address of the recipe list can be modified.|
210 |Language|Recipe display language is selectable.|
211 |Recipe list|The recipe list displays the configured recipe parameter information in the list according to the settings. The parameters of each ingredient in the recipe list can be modified at the same time: For example, the name of the ingredient, the data format of the ingredient, the address of the ingredient, and directly filling in the data of each ingredient in each group.|
212 |Insert group|Click [Insert group], enter the number of groups to insert, and the corresponding row will be added to the recipe list.|
213 |Delete group.|Click [Delete group] to select the group to delete|
214 |Insert ingredient|Click [Insert group], enter the number of groups to insert, and the corresponding row will be added to the recipe list.|
215 |Delete ingredient|Click [Delete ingredient] to select the ingredient to delete.|
216 |Data import|Import existing data files, supporting .xlsx .xls .csv format.|
217 |Data export|Export configured recipe data|
218
219 Traditional recipe is composed of multiple groups of information with the same structure and different data. Due to the similarity of these information, you could edit them into a set of recipes to facilitate the transfer of data between HMI and PLC.
220
221 Data operation
222
223 1. **Read:** Read a group of data from the recipe file and assign the group of data to the set address.
224 1. **Write: **Read a group of data from the set address and assign the group of data to the corresponding recipe file.
225
226 PI Series HMI has Recipe function, Recipe function keeps data in the HMI, used to download the data from HMI to designated device addresses, or upload the data from device addresses to HMI.
227
228 The maximum number of group in recipe is 1000, and the maximum number of member in each group is 1500.
229
230 Recipe could store the data in USB flash disk and SD card and view the recipe data by object "Recipe display". It has two mode: simple mode and advanced mode.
231
232 1. **Simple: **Only support the data operation of one recipe file, including read and write.
233 1. **Advanced:** Support the data operation of multiple recipe files, including read, write, insert and index. View and select recipe file by object "File list".
234
235 Recipe function settings will be display in "[[Recipe display>>http://docs.we-con.com.cn/wiki/pistudio/view/Helps/06.Objects/#HRecipedisplay]]" object.
236
237 **Description**
238
239 (% style="text-align:center" %)
240 [[image:8-1Recipe.png]]
241
242 **Basic**
243
244 * **Recipe Folder:** Give Recipe folder name (It can be used, when setting Recipe display object);
245 ** (% class="box infomessage" %)
246 (((
247 **✎Note: **Recipe Folder name can only consist of (0~~9), (a~~z), (A~~Z), ('_'), (' ') and other non-English characters;
248 )))
249 * **Group: **Set the recipe group number, the number of elements, the data format. The data format has 8 modes: 16-bit signed decimal, 16-bit unsigned decimal, 16-bit BCD, 32-bit signed decimal, 32-bit unsigned decimal, 16-bit BCD, 32-bit floating point number, 64-bit (double-precision) floating-point number, string, and the choice of data integer and decimal places.
250 * **Elements:** It sets members' initial number of each group;
251 * **Data Format:** There are some formats can be supported in Recipe, like 16-bit BCD, 16-bit signed, 16-bit unsigned, 32-bit BCD, 32-bit signed, 32-bit unsigned, 32-bit floating and string. If each member requires different formats, please set it one by one in form;
252 * **Decimal: **It sets integer and scale digits;
253
254 **Mode Selection: **Select Simple or Advanced mode. Recipe file is divided into simple mode and advanced mode. Only in advanced mode can exist multiple recipe files used at the same time. (used wiht file list onject), Simple mode can only support a recipe file; Aadvanced mode can insert group information and reordered.
255
256 Function address: all operations are done through function addresses, different operating value is as follows:
257
258 * = 0: no operation;
259 * = 1: trigger read data;
260 * = 2: new trigger or update (If there is group number, it updates.)
261 * = 4: insert (only valid in advanced mode)
262 * = 8: delete (Delete according to the writing group number. If write and read address are consistent, refer to the reading group number);
263 * = 16: delete and sorted ((Delete according to the writing group number. If write and read address are consistent, refer to the reading group number)
264 * = 64: import CSV recipe file.
265
266 **Use Multiple File**
267
268 Check it to use more than one recipe file in HMI, but this option only valid in [Advanced mode];
269
270 **Select language**
271
272 The text in HMI can be in 8 languages, user can set language in here;
273
274 **Address**
275
276 1. **Group:** This address is for selecting group number;
277 1. **Start: **This is starting address is for reading and writing in recipe, PIStudio will automatically assigns addresses for each members;
278 1. **File(16 words): **This address only available when enable the Use Multiple File. This setting address is for input the recipe file's filename.
279
280 **Use Index**
281
282 If the value from Group address is changed, Read address will display the new data according to new group number immediately. Relatively, if the data of write address is changed, the corresponding group from table is also changed.
283
284 **Query by Element**
285
286 Enable it for querying group by specify element, select a primary key from all the elements, except the group number. This element value from all groups must be unique if want to set as primary key;
287
288 (% class="box infomessage" %)
289 (((
290 **✎Note: **When this option is enabled, Group address will be invalid.
291 )))
292
293 **Use Independent Write Address**
294
295 To separate Recipe read address and write address.
296
297 **Use Insert**
298
299 It inserts data into the specified group, if the specified group already exists, it would not cover the original data, while it will move the original group next one after it.
300
301 **Discontinuous Address**
302
303 Whether enable the non-consecutive recipe operation addresses or not. If disabled, the recipe address will recover as the continuous addresses.
304
305 (% class="box infomessage" %)
306 (((
307 **✎Note: **This function only supported in HMI+, i series, ie series, ig series.
308 )))
309
310 **Description of adcanced mode**
311
312 According to the recipe configuration information in Figure 2 above. The function address is HDW70, and each function configuration corresponds to the group number address, recipe element address and recipe file name address. The recipe information configured in figure 2 can be displayed in the table in figure 3 with the "Record Display" object.
313
314 [[image:image-20220806111333-1.jpeg]]
315
316 **Read recipe**: Input 1 to the file name, when the group number addresses HDW100=1 and HDW70=1 (read), the element data of the first group (ID=1) is written to the recipe address from the recipe file. As shown in Figure 3 above: HDW105=1, HHDW106=2, HDW107=3, HDW108=4, HDW109=5.
317
318 **Write recipe**: Input 1 to the file name, when the group number addresses HDW101=4 and HDW70=2 (write), the data will be read from the recipe address and written to the corresponding group of the recipe file. As shown in figure 3 above: HDW110=20, HHDW111=21, HDW112=22, HDW113=23, HDW114=24. Write the data of this set to the elements of ID=4 in the recipe table (if there is no data of Group 4 in the recipe file, a new set of data will be added; If there is data of Group 4 in the original recipe, the original data will be overwritten and the latest data will be displayed in the recipe file).
319
320 **Index recipe**: When the file name is input 1, when the group number address HDW102=3, the data of ID=3 (Group 3) in the recipe file will be directly displayed in the component address of the index, that is, HDW115=11, HHDW116=12, HDW117=13, HDW118=14 and HDW119=15. If the data of the index component address is modified, the modified data will be automatically filled into the table of the recipe file, that is, the data of the recipe file will be automatically updated after the data is modified.
321
322 [[image:image-20220806111355-2.jpeg]]
323
324 **Insert recipe**: Input 1 to the file name, when the group number addresses HDW103=3 and HDW70=4 (insert), the data of the 3rd group will be inserted, but the data of the third group already exists in the original recipe file (see Figure 3 above), then the original data will be moved down by one group, that is, the original 3rd group will become the 4th group, and so on, and HDW120=16, HHDW121=17, HDW122=18, HDW123=19 and HDW124=20 will be written into the new 3rd group of the recipe file at the same time. The results are shown in Figure 4 above.
325
326 When the group number address HDW101=2 (**The delete function only works on the group number of the write function**), HDW70=8 (delete), the data in the recipe file with ID=2 (Group 2) will be deleted.
327
328 When the group number address HDW101=5 (**The delete function only works on the group number of the write function**), HDW70=16 (delete and sort), the data of ID=5 (Group 5) in the recipe file will be deleted, and the original ID=6 (Group 6) data will be reordered to become the new Group 5 data, the original ID=7 (Group 7) data will be reordered to become the new Group 6 data, and so on.
329
330 **Recipe Demo Download Link: **[[Download>>url:https://drive.google.com/open?id=1Cjbq_tW-NIirHFBpxt47g7IKvoYaWqUR]]
331
332 == Calling CSV recipe file ==
333
334 **Overview**
335
336 The recipe files used by the regular series HMI are in CSV format, and the recipe files used by the current series HMI are in database format. In order to be compatible with CSV format recipe files on the current series of HMI, please follow the instruction when using it.
337
338 **Operations**
339
340 Create the recipe as it is configured. The default recipe file name is “1. rcp2”, which is placed in folder 123, as shown in the following figure.
341
342 (% style="text-align:center" %)
343 (((
344 (% style="display:inline-block" %)
345 [[Figure 1>>image:image-20220806100702-2.jpeg]]
346 )))
347
348 2. Place a "Recipe Record Display" object and a "File List" object on the project screen for viewing the recipe files in the folder 123, and the address configuration in the object should be consistent with the above configuration.
349
350 (% style="text-align:center" %)
351 [[image:image-20220806100753-3.jpeg]]
352
353 By configuring the address in the table and combining the recipe function, the CSV recipe files of regular series are imported.
354
355 |=Address range|=Object type|=Address function
356 |HSW1050 to 1065|Text input object|Enter the CSV recipe file name to import
357 |HSW1066|Numerical input object|Import CSV file type:(((
358 * = 0: Custom CSV file (all data in the file is valid)
359 * = 1: Normal recipe file for regular series HMI (the data in line 1 of the file is invalid)
360 * = 2: Special recipe file for regular series HMI (the data in line 1 and 2 and column 1 of the file are invalid)
361 )))
362 |HSW1067|Numerical input object|(((
363 Where the CSV file is saved:
364
365 * = 0: In the CsvFile directory of U disk
366 * = 1: In the CsvFile directory of the SD card
367
368 **The path for offline simulation is: C:\ HMIEmulation\ CustomFileDir\ CsvFile**
369 )))
370 |HSW242|Numerical input object|Returns the results of the csv import:(((
371 * = 37: CSV file imported successfully
372 * = 38: CSV file import failed
373 )))
374
375 **Select CSV recipe file (take U disk as an example):**
376
377 Using the file list object, select the recipe file in the U disk by path, and configure the recipe file name address directly to the special address HSW1050 in the above table, which can directly detect the CSV file in the U disk; Select the recipe file in the file list, and write the selected recipe file name into the recipe file name: In HSW1050 to 1065.
378
379 Use the special address of the above table to configure the path of the CSV file: HSW106, configure recipe file name: HSW1050 to1065
380
381 Use HSW1066 address to select the corresponding CSV recipe file type.
382
383 * HSW1066 = 0: Import a user-defined CSV recipe file (all data in the custom CSV file must be valid);
384
385 (% style="text-align:center" %)
386 [[image:image-20220806101129-5.jpeg]]
387
388 * HSW1066=1: Import the normal recipe file of regular series HMI (the data in line 1 of the file is invalid);
389
390 The data in line 1 of the normal recipe file is used to define the format of the recipe and will not be imported into the recipe table as recipe information, **but you must ensure that the data in line 1 representing the elements and number of groups is correct, otherwise the CSV recipe file will fail to be imported.**
391
392 (% style="text-align:center" %)
393 [[image:image-20220806101520-6.jpeg]]
394
395 * HSW1066=2: Import the special recipe file of regular series HMI (the data in line 1, 2 and column 1 of the file are invalid);
396
397 In the special recipe file, line 1 is used to define the format of the recipe, line 2 is used to define the element name of the recipe, and column 1 is used to define the group name of the recipe, so lines 1, 2 and column 1 of the special recipe will not be imported into the recipe table as recipe information. **During use, ensure that the data such as the number of groups and elements representing the recipe format in the first line are correct, otherwise the import of the CSV recipe file will fail.**
398
399 (% style="text-align:center" %)
400 [[image:image-20220806102610-7.jpeg]]
401
402 **Perform import**
403
404 After configuring the saving path of CSV recipe file, the name of recipe file and the type of recipe according to the above steps, the method of transferring CSV file to DB file is as follows:
405
406 * Configure the DB recipe file name by text input object: HDW500 = 3 (recipe file configured in Figure 1),
407 * Set the recipe function address to: HDW1000 = 64 (the function address configured in Figure 1),
408 * Transform the CSV recipe file in U disk into DB recipe file with file name “3.rcp2”.
409
410 **DB recipe file for storing CSV data:**
411
412 Simple mode: When the recipe file is set to simple mode, the file of CSV data is saved as the DB recipe file of 1. rcp2 by default.
413
414 Advanced mode: When the recipe is enabled in advanced mode (multi-file recipe), the imported CSV file data is saved to the file recorded at the recipe file address HDW500 (the address configured in Figure 1).
415
416 **Import results:**
417
418 * HSW242 = 37: Import succeeded;
419 * HSW242 = 38: Import failed.
420
421 **Precautions:**
422
423 * Ensure that the data format of each element in the CSV file is the same as the recipe data format set in the software (DB), and ensure that the elements of each row in the valid data area is the same as the elements set in the software (DB);
424 * When the elements of a line in CSV file is more than the elements set in the software (DB), it will prompt the import failure;
425 * When the CSV file imported into the regular series HMI is a recipe file, the data representing the recipe format (elements, number of groups, whether it is a special recipe) in line 1 must be correct, otherwise the import of CSV file will fail.
426
427 == **Recipe record function** ==
428
429 **Basic setting**
430
431 (% style="text-align:center" %)
432 [[image:3.png]]
433
434 Recipe selection: Select the recipe name to be displayed. The list is all the recipes configured in the recipe. If the list is empty, add the recipe in [Recipe].
435
436 Recipe shortcut key setting:
437
438 Add data: Used to add groups.
439
440 Delete data: Used to delete the selected configuration
441
442 Upload recipe: Used to upload the address data of the selected group to the corresponding group in recipe records.
443
444 Download recipe: Used to download the address data of the selected group to the corresponding group in recipe records.
445
446 Import recipe: Used to import the existing recipe files.
447
448 Export recipe: Used to export the current recipe as a file.
449
450 **Graphic**
451
452 (% style="text-align:center" %)
453 [[image:4.png]]
454
455 Style selection: Styles can be switched or customized.
456
457 Background configuration: Set the recipe background, including background color and transparency.
458
459 Table configuration: Set the appearance of recipe table area, including row background color, row spacing color, horizontal header background color, vertical header background color, horizontal header text color, vertical header text color, text color, row selected color, name color, line color and cell style.
460
461 **Expansion**
462
463 (% style="text-align:center" %)
464 [[image:5.png]]
465
466 Object lock: With the interlock address, the object is locked and the lock icon is displayed (upper left corner of the object) when the lock address is 0, and the bit switch is operable only when the bit pointed by the interlock bit address is 1. To lock the bit switch when the interlock bit address is 1, just check "Lock in ON".
467
468 Object lock icon: Icons will not display when the [Not display “Lock” icon] option is checked. Icon display will adapt to the change of object size.
469
470 Gray level display: When the object is locked, the text message will be grayed out.
471
472 = (% style="color:inherit; font-family:inherit; font-size:29px" %)**Traditional recipe**(%%) =
473
474 Traditional recipe is composed of multiple groups of information with the same structure and different data. Due to the similarity of these information, you could edit them into a set of recipes to facilitate the transfer of data between HMI and PLC.
475
476 Traditional recipe function is valid only when the LEVI project is converted to the PI project, and the original project uses the traditional recipe.
477
478 (% class="box infomessage" %)
479 (((
480 **✎Note**: Currently, only HMI+, i series, ie series, and ig series support the traditional recipe.
481 )))
482
483 == Simple recipe mode ==
484
485 Click the "Traditional Recipe" [[image:8-2TraditionalRecipe.png]] in the "Data tool" bar in the upper side of the software, and the following interface will pop up:
486
487 (% style="text-align:center" %)
488 [[image:8-3TraditionalRecipeConfigScreen.png||class="img-thumbnail"]]
489
490 **✎Note**:
491
492 * The recipe folder name can only consist of (0~~9), (a~~z), (A~~Z), ('_'), ('').
493 * The element name of the recipe cannot include following 5 special characters: " **,** " , " **|** " , " **<** " , " **>** " , " **&** " .
494
495 == Recipe display ==
496
497 Select the file type "Traditional recipe file" in object "Recipe Display", and it is recommended to fill in the traditional recipe group number HSW1612 to the address of select line.
498
499 (% class="box infomessage" %)
500 (((
501 **✎Note**: The Recipe Display can display up to 50 groups of 100 elements by default, which can be to display out of range by enabled "Address Control". After the "Address Control" is enabled, the display group number can be reached to 100. If want to display more than 100, please adjust the "Start Group" from "Address Control" to index the display group, as following shown:
502 )))
503
504 (% style="text-align:center" %)
505 [[image:8-4TraditionalRecipeDisplayConfigScreen.png||class="img-thumbnail"]]
506
507 == Recipe transmission address ==
508
509 The special addresses used in the Recipe are shown in the following table:
510
511 (% class="table-bordered" %)
512 |=Address|=Description|=Function
513 |HSW1611|Traditional Recipe transfer operation.|(((
514 ~=1: Recipe download.
515
516 ~=2: Recipe upload.
517 )))
518 |HSW1612|Traditional Recipe group number.|Traditional Recipe group number.
519 |(((
520 HSW242
521 )))|(((
522 Recipe operation result prompt:
523
524 Upload: Data is written to recipe file from address.
525
526 Download: Data is written to the address from recipe file.
527 )))|(((
528 ~=1: Recipe download, start.
529
530 ~=2: Recipe download, execution error.
531
532 ~=6: Recipe download, successful.
533
534 ~=7: Recipe upload, start.
535
536 ~=8: Recipe upload, execution error.
537
538 ~=11: Recipe group name does not exist.
539
540 ~=12: Recipe upload, successful.
541 )))
542
543 == **Recipe index** ==
544
545 The recipe index address RPW is mainly used for editing traditional recipes, and it is more convenient to modify the data and display of recipes. Only need to modify and display the data of the recipe file through "Numeric Input/Display" Object and "Word Switch".
546
547 The recipe index area (RPW)'s instruction as follows:
548
549 1. RPW~*~*~#~#~#~#, a total of six digits, the first two ~*~* represent the Recipe group number, ~#~#~#~# represents the element order number. For example, RPW010000 indicates the 1st element of the Recipe group No.1, and RPW110002 indicates the 3rd element of the Recipe group No.11.
550 1. If the indexed group number or element number does not exist, the value of RPW defaults to zero. For example, RPW110011 represents the 12th element of the Recipe group No.11. If it does not exist, the value returned by accessing RPW110011 is zero. The value written in RPW110011 will not be saved to the recipe file.
551
552 * **✎Note**: As long as RPW~*~*~#~#~#~# exists, any object "writes" to HPW~*~*~#~#~#~# will be saved to the recipe file. 
553
554 (% start="3" %)
555 1. The RPW register only supports word address access.
556 1. It can be known from the coding method of RPW~*~*~#~#~#~# that the range of RPW is from RPW000000-RPW990450, wherein the range of group number is 0-100, and the range of element is 0-450.
557
558 == Recipe example ==
559
560 The recipe index makes the modification and display of recipe data more convenient. Only need to modify and display the data of the recipe file through "Numeric Input/Display" Object and "Word Switch".
561
562 Edit the recipe configuration, create three groups of recipes, 4 elements for per group: Red, green, blue, spraying time, as following shown:
563
564 (% style="text-align:center" %)
565 [[image:8-5TraditionalRecipeCaseConfig.png]]
566
567 RPW 0~~3 can display the data of group for the selected line. RPW10000~~10003, RPW20000~~20003, RPW30000~~30003 each address can display the single element. Directly modify the content of the RPW address and then modify the recipe data, as following shown:
568
569 (% style="text-align:center" %)
570 [[image:8-7TraditionalRecipeCaseShowNoOpera.png]]
571
572 After selecting the 2nd group, trigger the download button to download the whole group data to the corresponding element address (For this case, the data will write into HDW0~~3), or trigger the upload button to upload the content of the element address to the specified recipe group.
573
574 (% style="text-align:center" %)
575 [[image:8-6TraditionalRecipeCaseShow.png]]
576
577 = **Trend chart** =
578
579 Trend chart function is used for displaying the real-time data in HMI as curve graph, which X axis represent as time, Y axis represent as data.
580
581 Click "Project" → "Trend chart", it will pop up the following screen. Click "Add" to creat new curve record.
582
583 (% style="text-align:center" %)
584 [[image:趋势图配置 001.png||class="img-thumbnail"]]
585
586 **Settings**
587
588 (% style="text-align:center" %)
589 [[image:趋势图设置 2.png||height="507" width="866"]]
590
591 **(1) Basic settings**
592
593 1. **Curve NO.: **It is for setting curve number,
594 1. **Curve Name:** It is for setting curve name. The length limitation is 31 bytes.
595 1. **Curve (1~~8):** It is for setting the number of curves. The default is 3.
596 1. **Dots of one curve: **It is for setting dots number of each curve. The default is 1000, but the maximum dots are 10,000 for all the curves.
597
598 **(2) Sample Type**
599
600 1. **Sample method:** There are two types, one is Cycle sample, the other is Trigger cycle sample. If you select Trigger cycle same mode, the trigger sample address is required to edit.
601 1. **Sample unit:** 100ms.
602
603 **(3) Quick Setting**
604
605 1. **Data format: **It is for setting all the curves, select the data format for all curves, and setting the reading addresses for curves. There are as follows.
606
607 (% style="text-align:center" %)
608 [[image:趋势图设置 3.png||class="img-thumbnail"]]
609
610 (% start="2" %)
611 1. **Sample address: **Fill in the start address that read the device data. If the sampl address is consecutive, check "use continuous address". For example, set HDW0 as start address, curve number is 3, then the HDW0 is for Curve 1, HDW1 is for Curve2, HDW2 is for Curve 3.
612
613 **(4) Curve Table:** The sample address you have set would display on it. Click the corresponding box to modify the content.
614
615 (% class="box infomessage" %)
616 (((
617 **✎Note: **Curve names can only consist of Chinese characters, (0~~9), (a~~z), (A~~Z), ('_') (' '), and other non-English characters.
618 )))
619
620 **Trend Chart Demo Download Link**
621
622 [[https:~~/~~/drive.google.com/open?id=1smnaAvSxOWC0WQK4_uvqHXWn4vUZxGJC>>url:https://drive.google.com/open?id=1smnaAvSxOWC0WQK4_uvqHXWn4vUZxGJC]]
623
624 = **History XY plot** =
625
626 Different from TrendChart, uses need to set history XY curve items in project. Please click "Project"-> "History XY Plot" to open the setting screen.
627
628 Recipe function settings will be display in "[[History XY Plot>>path:https://docs.we-con.com.cn/bin/view/PIStudio/08.Basic%20Function/#HHistoryXYplot]]" object.
629
630 (% style="text-align:center" %)
631 [[image:历史XY 2.png||class="img-thumbnail"]]
632
633 (% style="text-align:center" %)
634 [[image:历史XY 3.png||class="img-thumbnail"]]
635
636 **(1) Basic settings**
637
638 1. **Curve NO.: **It is for setting curve number,
639 1. **Curve Name:** It is for setting curve name. The length limitation is 31 bytes.
640 1. **Curve (1~~8):** It is for setting the number of curves. The default is 3.
641 1. **Dots of one curve: **It is for setting dots number of each curve. The default is 1000, but the maximum dots are 10,000 for all the curves.
642
643 **(2) Sample Type**
644
645 1. **Sample method:** There are two types, one is Cycle sample, the other is Trigger cycle sample. If you select Trigger cycle same mode, the trigger sample address is required to edit.
646 1. **Sample unit:** 100ms.
647
648 **(3) Quick Setting**
649
650 1. **Data format: **It is for setting all the curves, select the data format for all curves, and setting the reading addresses for curves. There are as follows.
651
652 (% style="text-align:center" %)
653 [[image:image-20220616145435-1.png]]
654
655 (% start="2" %)
656 1. **Sample address: **Fill in the start address that read the device data. If the sample address is consecutive, check "use continuous address". For example, set HDW0 as start address, curve number is 3, then the HDW0 is for Curve 1, HDW1 is for Curve2, HDW2 is for Curve 3.
657
658 **(4) Curve Table:** The sample address you have set would display on it. Click the corresponding box to modify the content.
659
660 (% class="box infomessage" %)
661 (((
662 **✎Note: **Curve names can only consist of Chinese characters, (0~~9), (a~~z), (A~~Z), ('_') (' '), and other non-English characters.
663 )))
664
665 **Operating Procedure**
666
667 * Click "Project" → "History XY Plot" to open the function selecting windows.
668
669 (% style="text-align:center" %)
670 [[image:8.Basic Function_html_5da6ca44bd28acbe.png||height="144" width="533" class="img-thumbnail"]]
671
672 * Click "Add" button to open "History XY Plot” setting windows.
673
674 (% style="text-align:center" %)
675 [[image:8.Basic Function_html_6345b50ea55168fa.png||height="307" width="554" class="img-thumbnail"]]
676
677 * Setting the function of History XY Plot.
678 * Click "OK" to save the setting.
679
680 **Download Link**
681
682 [[https:~~/~~/drive.google.com/open?id=1t4_HuRmIJJ-B5ryA2kVMadD9FywKhZ4r>>url:https://drive.google.com/open?id=1t4_HuRmIJJ-B5ryA2kVMadD9FywKhZ4r]]
683
684 = (% style="color:inherit; font-family:inherit; font-size:29px" %)**Data record**(%%) =
685
686 The data record function is organized according to the structure below. In a project, there can be multiple record groups, each record group containing multiple channels. Different groups have different sampling times.
687
688 The topology is shown in the following figure.
689
690 (% style="text-align:center" %)
691 [[image:8.Basic Function_html_1b4bd09dafa7e049.png||height="332" width="554" class="img-thumbnail"]]
692
693 The data record stored in SD card is also organized according to the above figure.
694
695 The sample time and save time is consistent in the same record group. There are multiple channels in the group, When the sampling time is up, every channel would collect data to PLC register according to its own address.
696
697 **Sampling interval: **The interval between two consecutive samples was recorded.
698
699 As long as the project uses the data record function and supports the large-capacity storage module, the system will sample data according to the set sampling interval and save data according to the set saving interval.
700
701 For the file storage of data, see the file size configuration during data record configuration.
702
703 ✎**Note: **
704
705 After enable the Cloud and check the box of Upload to Cloud, the communication port settings of the address in the imported Data record configuration must be the same as the communication port settings of the current project, otherwise it cannot be used normally.
706
707 The number of Data records upload to Cloud shall not exceed the limit value, or the sum of the imported Data records and the number of existing alarm records shall not exceed the limit value. the specific limitation as following table:
708
709 (% style="margin-left:auto; margin-right:auto; width:513px" %)
710 |=(% style="width: 70px;" %)Series|=(% style="width: 442px;" %)Number of Data Record upload to Cloud
711 |(% style="width:70px" %)8000-R|(% style="text-align:center; width:442px" %)100
712 |(% style="width:70px" %)9000-R|(% style="text-align:center; width:442px" %)100
713 |(% style="width:70px" %)3000ig|(% style="text-align:center; width:442px" %)50
714 |(% style="width:70px" %)8000ig|(% style="text-align:center; width:442px" %)100
715 |(% style="width:70px" %)MD|(% style="text-align:center; width:442px" %)50
716
717 The record group name can only be composed of Chinese characters, (0~~9), (a~~z), (A~~Z), ('_'), ('') and other non-English characters.
718
719 Channel name cannot incloud following symbols: :" , ", " | ", " < ", " > ", " & ".
720
721 (% class="wikigeneratedid" id="HSettings" %)
722 **Settings**
723
724 (% style="text-align:center" %)
725 [[image:数据记录设置 1.png||height="533" width="848" class="img-thumbnail"]]
726
727 **Operating Procedures**
728
729 1. Click "Project"->"Data record" as below shows.
730 1. Click "Add" button to open "Data record" setting window.
731 1. Enter group name, the default is "GroupName0"
732 1. Select "Trigger function" mode, such as "No trigger".
733 1. Set "Total channels", such as 3.
734 1. Click "Apply" button.
735 1. Set Sample cycle, such as 15.
736 1. Set "Start channel" in "Quick settings", such as 4 0.
737 1. Check group information in "Channel list" as below.
738 1. Click "Save" button to complete settings.
739
740 The figure above display the group of current project. The data record file would stored in "DataLogFile" folder, and the data of every  group would have a data file. The file suffix is in "db" format.
741
742 ✎**Note: **
743
744 * For HMI series 8000 and above, the size of a single file cannot exceed 300M and the total file capacity cannot exceed 1000M.
745 * For HMI series 3000, the size of a single file cannot exceed 4M and the total file capacity cannot exceed 10M.
746 * If the total amount exceeds the range, an alarm will be given during project compilation.
747
748 (% style="text-align:center" %)
749 [[image:数据记录设置 2.png||height="572" width="850" class="img-thumbnail"]]
750
751 **(1) Group name:** Set group name, and he name should be unique.
752
753 **(2) Trigger function:** There are four modes to trigger record.
754
755 1. **No trigger: **Data will be recorded in every sample time.
756 1. **Trigger to record by sample cycle: **Data will be recorded in every same time, when trigger control bit set ON.
757 1. **Trigger to record once and reset: **Data will be recorded when trigger control bit set ON, and the bit will be reset automatically.
758 1. **Trigger to record once: **Data will be recorded when trigger control bit set ON, and the bit need to be reset manually.
759 1. **Trigger address: **It is only valid when the trigger condition is selected. The monitoring cycle for trigger sampling address is 1s.
760
761 **(3) Total channels (1~~100): **Set the numbers of channels. Click "apply" to view the channel lists on the right record channel.
762
763 **(4) Sampling cycle: **If you check "collect control address", the sampling interval is the value of the address. The unit is second. For example, Sample cycle=15s. It means that records data one time every 15s.
764
765 **Timing address:** It sets address to change sample time when HMI is running;
766
767 **(5) Total records:** It sets data record number in one data record file. If the data file size is beyond the current file size. The old data will be deleted, and the new data will replace the old data. Please remember to back up the old data record file.
768
769 **Abnormal value:** It sets a value, when communication fails, data record will record this value;
770
771 **(6) Upload to Cloud**: The data uploaded by Data Record is stored in the Cloud(Only ig series). The maximum number of record is 20.
772
773 **(7) Quick Settings**
774
775 1. **Start Channel:** It sets the continuous addresses for channels.
776 1. **Data Format: **It sets the same data format for channels.
777 1. **Number of Digits:** It sets the digits’ number for channels.
778 1. **Language Settings**: The text in HMI can be in 8 languages, user can set language in here.
779
780 **(8) Channel List**: Besides quick settings, user can set channel name, address, data format, and so on one by one according to real situation.
781
782 **✎Note:**
783
784 * After enabling the Cloud function and checking the upload to the Cloud, the communication port settings of the address in the imported Data record configuration must be the same as the communication settings of the current project, otherwise it cannot be used normally.
785 * The range of upload to the Cloud from Data record configuration must not exceed 50, or the total number of imported Data records and the number of currently existing Data records must not exceed 50. If it exceeds, it will prompt you to reconfigure, should reduce the number.
786 * The channel name can only be composed of English characters, (0~~9), (a~~z), (A~~Z), ('_'), ('').
787 * The channel name does not include these 5 special characters: ", ", "| "," <", "> "," & ".
788 * The data would be overwritten automatically if the capacity exceed the maximum capacity. For 8000/9000 series, the size of single file cannot exceed 300MB, and total capacity of data records cannot exceed 1000MB. For 3000/3000i/3000ie series, the size of single file cannot exceed 4MB, and total capacity of data records cannot exceed 10MB. If the total amount exceeds the range , an error will be prompted when the project is compiled.
789
790 You could click here to jump to object "[[Data Record Display>>https://docs.we-con.com.cn/bin/view/PIStudio/06.Objects/#HDatarecorddisplay]]"
791
792 = **User permission** =
793
794 **Introduction**
795
796 1. User permission is one of expansion function in PI Series HMI; it provides multi-level of permission for control HMI operations.
797 1. User need to set the user and group during designing project. Different groups have different permission levels for accessing. Each user should be added into the specified group; it is possible to add the same user into different groups.
798 1. Operating record: it records user operations information, the records files are saved in HMI flash; its path is [~\~\flash~\~\UserOperationLogs.db].
799 1. When it is on simulator mode, the files are saved in C disk, its path is [C:~\~\WECON\UserMgrFile\UserOperationLogs.db].
800
801 (% class="box infomessage" %)
802 (((
803 ✎**Note: **
804
805 * The user name and password must be unique. Username can be up to 32 characters, and password can be up to 8 characters.
806 * The multi language function of User permission only supported on HMI system version V2.0 or above
807 )))
808
809 == Settings ==
810
811 Open PIStudio software, then operate as the following figure.
812
813 (% style="text-align:center" %)
814 [[image:用户权限 1.png||class="img-thumbnail"]]
815
816 Click on the cell from UserName and Desc, which can support the multi language.
817
818 (% style="text-align:center" %)
819 [[image:UserPermissionMultilan.png]]
820
821 1. Click "User Permission" in "Data Tool" toolbar.
822 1. Edit user name, click "User0" cell under "UserName", and then enter the user name, one project allows maximum 20 users.
823 1. Edit password, click "User0" cell under "PassWord", and then enter the user name.
824 1. Edit description, click "User0" cell under "Desc", and then enter, description is not necessary。
825 1. Check the groups for each user, there are 11 groups beside admin.
826 1. Editing groups' description, but it is not necessary.
827 1. {{id name="OLE_LINK7"/}}{{id name="OLE_LINK6"/}}Click "Save and Exit" button to complete all settings.
828
829 (% class="box infomessage" %)
830 (((
831 ✎**Note:**
832
833 * Only a maximum of one administrator permission is allowed in a profile with one user permission. If you want to use "Funtion address" to modify the user permission, you must log in the administrator account to operate.
834 * When the configured file does not have the administrator account, a new user can be added  through "Funtion address" and set as the administrator.
835 * If you select hidden fucntion when configuring user account, the account would display as "~*~*~*~*~*~*" in the list. You only need to enter the password of the corresponding hidden user to log in.
836 * (((
837 Adding new UserName and Desc on the HMI by special addresses in the current language of the HMI, other languages will also configure the user names and user descriptions to the current language by default, i.e. switching to other languages, the new user names and user descriptions will not change with the language.
838 )))
839 )))
840
841 (((
842
843 )))
844
845 == Object permission configuration ==
846
847 (% style="text-align:center" %)
848 [[image:用户权限 2.png||class="img-thumbnail"]]
849
850 User operation logs support multi languages configuration. Click on the Log Message, the text editor of multi language will be pop up:
851
852 (% style="text-align:center" %)
853 [[image:LogMessagesMultilan.png]]
854
855 **Operation Procedure of Object Permission**
856
857 1. Open the object setting windows;
858 1. Select "Security" windows;
859 1. Check the "User Permission";
860 1. Select "Level" to set permission level;
861 1. Enter "Log Message", it is for operation records, if it was empty, the operation for this object would be not be recorded;
862 1. Select the "Access Denied Setting" mode;
863
864 **Log information description**
865
866 A combination of Chinese characters, numbers, and uppercase and lowercase letters can be entered, and the number does not exceed 63.
867
868 The format of insert variable:{variable address, data format}. e.g., {HDW100,UW2.1}.
869
870 The data format are as follows.
871
872 (% class="table-bordered" %)
873 |=Letter|=Meaning
874 |B|Binary
875 |O|Octonary
876 |U|Unsigned decimal
877 |H|Hexadecimal
878 |b|BCD
879 |F|32-bit float
880 |S|Signed decimal
881 |C|Character
882 |W|Single word
883 |D|Double word
884
885 Examples.
886
887 * Unsigned decimal, BCD, 32-bit float and Signed decimal are as follows.
888
889 {HDW100,UW2.1}:  Indicates the variable address is HDW100. The data format are: unsigned decimal, single word, two integer bits, one decimal place.
890
891 * (((
892 Binary, Octonary and Hexadecimal are as follows.
893 )))
894
895 {HDW100,HD8}: Indicates the variable address is HDW100. The data format are: hexadecimal, double word, eight integer bits.
896
897 * (((
898 Character is as follows.
899 )))
900
901 {HDW100,C32}: Indicates the variable address is HDW100. The data format are: 32 characters.
902
903 When a record is generated, the contents of this variable are replaced by the value of your corresponding address.
904
905 == **Function address** ==
906
907 A user must first log in before performing an operation, and after the login is successful, the user can perform the required operation, and log out after completing the operation, making the operation permission invalid. User login, log out, modification of user password during operation and user management and other functions need to be configured.
908
909 HMI allows managing user accounts on screen. Including adding, deleting and editing the user account. HMI provide built-in screen for [Sign in] and [change password] (screen No. 1006 and 1007).
910
911 Functions and addresses are as follows.
912
913 (% class="table-bordered" %)
914 |=**Function**|=**Address**|=**Object type**|=**Address function**
915 |(% rowspan="3" %)Sign in|HUW1158~~1335|Drop down list|User name
916 |HUW1002|Character input object|Password
917 |HUW1000|Word Switch (Input 1)|OK (sign in)
918 |(% rowspan="5" %)Change password|HUW1158~~1335|Drop down list|User name
919 |HUW1002|Character input object|Old password
920 |HUW1006|Character input object|New password
921 |HUW1010|Character input object|Confirm password
922 |HUW1000|Word Switch (Input 2)|OK(change password)
923 |Sign out|HUW1000|Word Switch (Input 3) |Sign out
924 |(% rowspan="7" %)(((
925 New user ***1**
926 )))|HUW1014|Character input object|User name
927 |HUW1006|Character input object|password
928 |HUW1010|Character input object|Confirm password
929 |HUW1000|Word Switch (Input 4) |OK(add new user)
930 |HUW1336~~1345|Character input object|User description
931 |HUX1347.0|Bit switch|(((
932 ~=1: User hidden
933
934 ~=0: Visible (Defaults)
935 )))
936 |HUW1000|Word Switch (Input 8) |Save(add Hide features)
937 |(% rowspan="2" %)(((
938 Delete user ***2**
939 )))|HUW1158~~1335|Drop down list|User name
940 |HUW1000|Word Switch (Input 5)|OK (delete user)
941 |Delete Profile|HUW1000|Word Switch (Input 9)|OK(delete)
942 |Export Profile|HUW1000|Word Switch (Input 10)|OK(export)
943 |Import profile|HUW1000|Word Switch (Input 11)|OK(import)
944 |Export log file|HUW1000|Word Switch (Input 12)|OK(export)
945 |Delete log file|HUW1000|Word Switch (Input 13)|OK (delete)
946 |Current user name|HUW1349|Character object|32 Word
947 |System state information|HUW1030|Character input object|System state information
948 |(% rowspan="3" %)Permission settings|HUW1014|Character input object|User name
949 |HUW1348|Bit switch|(((
950 Set the user group:
951
952 HUX1348.0 = 1 administrator;
953
954 HUX1348.1 = 1 group 0 permission;
955
956 HUX1348.2 = 1 group 1 permission;
957
958 (Total group 0 - group 10)
959 )))
960 |HUW1000|Word Switch (Input 6)|Add user rights (set according to HUW1348)
961 |User login mode setting|HUW1382|Word Switch/Numeric input object|(((
962 0: Select a user name from the drop-down list
963
964 1: Use character input object (address HUW1014) to log in with a user name
965 )))
966
967 When the user performs a function operation, the operation result is displayed in the HUW1001.
968
969 (% class="table-bordered" %)
970 |=**Value (HUW1001)**|=**Meaning**
971 |1|Insufficient permissions.
972 |2|Username does not exist.
973 |3|Username already exists.
974 |4|Wrong username or password.
975 |5|Login successfully.
976 |6|Passwords are inconsistent in twice time.
977 |7|Password changed successfully.
978 |8|User added successfully.
979 |9|User deleted successfully.
980 |10|Maximum number of users exceeded.
981 |11|Admin user already exists.
982 |12|User permission modified successfully.
983 |13|File imported successfully.
984 |14|File imported failed.
985 |15|File exported successfully.
986 |16|File exported failed.
987 |17|Logout successfully.
988 |18|Profile deleted successfully.
989 |19|Log file deleted successfully.
990 |20|Hide settings modified successfully.
991 |21|Hide settings modified failed.
992 |22|(((
993 Password already occupied, please reset.
994
995 (For both username and password, it can not repetition)
996 )))
997
998 (% class="box infomessage" %)
999 (((
1000 **✎Note:**
1001
1002 * *1: If there is an admin user account, then the new user can no longer add one more admin, that is, one project can only have one administrator account.
1003 * *1: When adding new user, the password could not be duplicated with other users.
1004 * *2: When deleting user, it is forbidden to delete the admin user.
1005 )))
1006
1007 **User Permission Demo Download**
1008
1009 [[https:~~/~~/drive.google.com/open?id=1qOiEDvo_1H1YqpoLDpS77dGaAFm8nrGq>>url:https://drive.google.com/open?id=1qOiEDvo_1H1YqpoLDpS77dGaAFm8nrGq]]
1010
1011 = Message prompt =
1012
1013 A message box is a window used to show some prompts or warnings to users. For example, the application process a task in the process of pop-up message box, suggesting that "U disk has been detected", then the customer can carry out data dump function.
1014
1015 (% style="text-align:center" %)
1016 [[image:消息提示 2.png||class="img-thumbnail"]]
1017
1018 (% style="text-align:center" %)
1019 [[image:8.Basic Function_html_5ce2091d6f7cd732.png||height="515" width="704" class="img-thumbnail"]]
1020
1021 **(1) Message**
1022
1023 It includes system classes (u disk, SD card, and others), chart classes (alarm, data record, recipe, file list), curve classes (Trend Chart, historical XY trend Plot).
1024
1025 **(2) Control**
1026
1027 1. **Current item: **It shows selected message information.
1028 1. **Use trigger address: **When the message is triggered, the trigger address would be set ON.
1029
1030 **For Example:**
1031
1032 Trigger address is 011, during inserting a USB flash disk into HMI, and 011 would be set ON, once HMI recognizes USB flash disk, and display message.
1033
1034 1. **Show message: **Check it to display message when HMI is running. It is checked by default.
1035 1. **Show on web: **Check it to display message when remote access HMI screen, it is unchecked by default.
1036
1037 **(3) Message Content**
1038
1039 Each message has default content, but you could set different content according to the actual situation. And the same message could be displayed in 8 languages.
1040
1041 **(4) Reload Text: **It means discard changes.
1042
1043 **For Example**
1044
1045 User deletes default content or modifies default content, but he wants to give up modification back to original, just click "Reload text".
1046
1047 (% class="box infomessage" %)
1048 (((
1049 **✎Note:**
1050
1051 * If you do not want this prompt during the running of HMI, please uncheck "Show message".
1052 * "Reload text" function would be invalid after clicking "save".
1053 * These 5 special characters are not supported in the header Multi language settings: ",", "|", "<", ">", "&".
1054 )))
1055
1056 = **Cloud** =
1057
1058 **Introduction**
1059
1060 You may configure the basic settings of Cloud functions, tags, and User MQTT according to your needs. (If the device supports the Cloud function, you can use the function and configure the tags after checking the box to enable it, or upload the data to the 3rd party server.)
1061
1062 Click "Project"-"[[image:hh_B4H5OuNT87.png||height="29" width="30"]]Cloud" in the upper left corner of the software, as shown in the following figure.
1063
1064 (% style="text-align:center" %)
1065 [[image:云配置1.png||height="494" width="750" class="img-thumbnail"]]
1066
1067 **(1) Enable**
1068
1069 If the HMI supports the Cloud function, check it to enable the Cloud function, and it will collect the real-time data from HMI upload to the Cloud. The number of data collection is limited, and the specific parameters are as follows:
1070
1071 |=Series|=Monitoring Tags|=Alarm Record|=Data Record|=OpenCloud Data
1072 |8000-R (HMI V2.0 System)|300|200|100|1000
1073 |9000-R (HMI V2.0 System)|300|200|100|1000
1074 |3000ig|100|20|50|500
1075 |8000ig|300|200|100|1000
1076 |MD|100|20|50|500
1077
1078 For example:
1079
1080 * In 3000ig's Cloud, the monitoring tags upload to the Cloud in real time is limited to 100.
1081 * For 3000ig's Alarm, the Alarm records of word alarms and bit alarms upload to Cloud is limited to 20. (See [["Alarm">>http://docs.we-con.com.cn/wiki/pistudio/view/Helps/08.Basic%20Function/#HAlarm]] for details).
1082 * For 3000ig's Data record, the Data records upload to Cloud is limited to 50. (For details, please refer to [["Data Record">>http://docs.we-con.com.cn/wiki/pistudio/view/Helps/08.Basic%20Function/#HDataRecord]]).
1083
1084 **(2) Server Selection**
1085
1086 **Server**: China, ASEAN, and Europe.
1087
1088 **Password**:
1089
1090 1. If the HMI is not bound, this access password will be updated and downloaded into the HMI screen simultaneously.
1091 1. If the HMI is bound, this access password in the project cannot effectively change the binding password of the device, and it can only be changed through V-NET.
1092
1093 **(3) Upload Selection**: 
1094
1095 To upload the data collected by HMI to the cloud or a to the third-party server, only one upload method can be selected.
1096
1097 1. **to Cloud**: All the configured tags, data records, and alarm records would be pushed to V-NET.
1098 1. **to User MQTT**: All the configured tags, data records, and alarm records would be pushed to to the third-party server, and the relevant Lua function calls please refer to "[[Cloud interface>>http://docs.we-con.com.cn/wiki/pistudio/view/Helps/10.Lua/#HCloudInterface]]".
1099
1100 After the "to User MQTT" is checked. The tags, data records, and alarms cannot be viewed on V-NET, but the device can be bound to V-NET and remote monitoring the device screen normally.
1101
1102 **4) Low Data Mode setting**
1103
1104 1. When you check the "low Data Mod" by default on new tags, the newly added tags will be enabled in Low Data Mode by default.
1105 1. The longer the refresh interval, the slower the data upload, and the more traffic data will be saved. This function is only used for the control of tags.
1106
1107 = MQTT[[image:2.png]] =
1108
1109 (% class="wikigeneratedid" %)
1110 Configurable type MQTT. Users can publish message to the MQTT server or subscribe topics from the MQTT server.
1111
1112 **MQTT Configuration (Common Settings/AWS IOT Settings/ALi Settings/Huawei Settings)**
1113
1114 This chapter explains how to use configurable type MQTT. Users can publish message to the MQTT server or subscribe topics from the MQTT server.
1115
1116 Click “MQTT” in “Data Tool" in the upper side bar of the software.After checking "Enable", the settings window will pop up and select different cloud services for MQTT configuration, as shown in the following figure:
1117
1118 (% style="text-align:center" %)
1119 [[image:2.jpg]]
1120
1121 **MQTT Server Settings (Common)**
1122
1123 **General**
1124
1125 (% style="text-align:center" %)
1126 [[image:3.jpg]]
1127
1128 **Description:** Enter a description or comment about the server. Maximum input length: 255 characters, cannot be empty.
1129
1130 **Cloud Service**: (Select Common)
1131
1132 ① Common (Common Platform): General MQTT publish-subscribe topic mode.
1133
1134 ② AWS IoT (Amazon): Using "AWS IoT" as the Broker, using Thing to transfer data and support Shadow function.
1135
1136 ③ ALi (Alibaba Cloud): Using "Alibaba Cloud" as Broker.
1137
1138 ④ Huawei (Huawei Cloud): Using "Huawei Cloud" as Broker.
1139
1140 **Communication protocol**: MQTTv3.1, v3.1.1 and v5 are supported.
1141
1142 **Custom Client ID length:** User can customize the length of the Client ID (optional), length range: 20 ~~128.
1143
1144 **Custom username/password length:** Customize the length of user name/password length (optional), length range: 16 ~~ 256.
1145
1146 **IP:** Set the MQTT server IP to subscribe message.
1147
1148 **Use domain name:** Support using domain name to the specify server.
1149
1150 **Domain name:** Set the domain name of the MQTT server that subscribe message. Maximum input length: 128 characters, cannot be empty, supports letters, numbers, "-", “.”. The symbol cannot be placed at the first character or last character of name.
1151
1152 **Port number:** Set the MQTT server port to subscribe message. Range: 0~~65535, cannot be empty.
1153
1154 **Client ID:** Login name. Variables can be used as login names. For example: Enter% 0 and the Client ID is the device name. (This can be set in the HMI background. If not, the default is HMI model.) **(✎Note: A Client ID can only be used for one device.)** When there is no custom Client ID length, the maximum configurable length of Client ID is 40 characters.
1155
1156 **Verification:** Choose whether to connect to the MQTT server using [User Name] and [Password].
1157
1158 **User Name:** The [User Name] connects to the MQTT server. When there is no custom username/password length, the maximum configurable length of username is 32 characters.
1159
1160 **Password:** The password for connect to the MQTT server. When there is no custom username/password length, the maximum configurable length of password is 32 characters.
1161
1162 **Timestamp:** LOCAL: Using the HMI time as the timestamp. UTC Time: Using UTC+0.
1163
1164 **Clean message cache when normal connected:** If option is enabled, when the device is disconnected, the message to be published will be cached in the cache area, and then will be published when the device is online again.
1165
1166
1167 **Address**
1168
1169 (% style="text-align:center" %)
1170 [[image:4.jpg]]
1171
1172 **Status address: (Total length: 2 words)**
1173
1174 HDWn: Display [MQTT] connection status.
1175
1176 |Value|Description
1177 |0|Disable MQTT server connection
1178 |1|Disconnected or connecting
1179 |2|Successfully connected the MQTT server
1180
1181 HDWn+1: Error prompt
1182
1183 |Value|Description
1184 |0|No error
1185 |-1|General error code of wrong operation
1186 |-3|Disconnected
1187 |-4|Exceed client data concurrency
1188 |-5|Invalid UTF-8 string
1189 |-6|Null pointer parameter
1190 |-7|Topic name is truncated
1191 |-8|Wrong protocol structure body
1192 |-9|Bad QoS, acceptable range is (0, 1, 2)
1193 |-10|Try to use a non-SSL version library for SSL connection
1194 |-11|Wrong MQTT version
1195 |-14|Wrong protocol type
1196 |-15|Option is not suitable for the current request version
1197 |-16|Call MQTT version that is not applicable to request.
1198 |-17|0 length connects topics
1199
1200 **Buffer usage address: (Total length: 1 word)**
1201
1202 Unsuccessful published message will be stored in memory as cache, with a maximum 100,000 messages or 2M. Value display as unit %, and it is carried unconditionally.
1203
1204 HDWn: Display buffer usage.
1205
1206 **Control address: (Total length: 123 words; If the domain name is not enabled, it will take up 59 words)**
1207
1208 HDWn: Control the execution or stop of [MQTT Server].
1209
1210 |Value|Description
1211 |0|Ready
1212 |1|Start
1213 |2|Stop
1214 |3|Update
1215
1216 HDWn+1: IP address of the MQTT server. (✎**Note: This address is only valid when IP is used.**)
1217
1218 HDWn+5: Port number of the MQTT server.
1219
1220 HDWn+6: Client ID of the MQTT server connection.
1221
1222 HDWn+26: Authentication is enabled or not. = 0, disabled; = 1, enabled.
1223
1224 HDWn+27: User name of MQTT server connection.
1225
1226 HDWn+43: Password of MQTT server connection.
1227
1228 HDWn+59: Domain name of the MQTT server. (**✎Note: This address is only valid if the domain name is used.**)
1229
1230
1231 **TLS/SSL Settings**
1232
1233 (% style="text-align:center" %)
1234 [[image:5.jpg]]
1235
1236 **Enable:** Enable TLS/SSL encryption. User can manually select encrypted versions of TLS 1.0, TLS 1.1, or TLS 1.2.
1237
1238 **Server authentication:**
1239
1240 Enable: Verify whether the server certificate has been certified by a Certificate Authority Certificate (CA). Server certificates are sent by the server when connection is established.
1241
1242 Import: Select CA certificate to import.
1243
1244 More: After the import is successful, clicking it will display the certificate details.
1245
1246 Reset: Reset the import information.
1247
1248 The server name must match the certificate information: Verify whether the server name or IP matches with the information in the certificate. Domain name and IP are recorded in the Subject Alternative Name from certificate.
1249
1250 **Client authentication:** The private key and client certificate are the data required for the server to authenticate the client end.
1251
1252 Certificate:
1253
1254 Import: Select certificate to import.
1255
1256 More: After the import is successful, clicking it will display the certificate details.
1257
1258 Reset: Reset the import information.
1259
1260 Key:
1261
1262 Import: Select the key to import.
1263
1264 More: After the import is successful, clicking it will display key details.
1265
1266 Reset: Reset the import information.
1267
1268
1269 **System topics**
1270
1271 (% style="text-align:center" %)
1272 [[image:6.jpg]]
1273
1274 **Birth Topic: **The message that HMI will publish when it is connected to server.
1275
1276 **Close Topic:** The last send message before HMI actively disconnects from server connection
1277
1278 **Last Will: **Subscription of Last Will receive this message when an abnormal disconnection occurs between HMI and the server. HMI synchronizes the Last Will message to the server when it initially establishes the connection.
1279
1280 **Topic List:** A list of topics in the HMI that is sent to the server after the HMI is connected to the server.
1281
1282 **Topic:** The actual topic name of the system topic. Maximum input length: 255 characters, cannot be empty.
1283
1284 **Retain message: **The MQTT server keeps the latest message.
1285
1286 **QoS: **MQTT provides three levels of reliability called service quality. The service quality of message transmission determines whether the message is guaranteed to be delivered.
1287
1288 QoS 0: Messages are sent only once, and delivery is not guaranteed.
1289
1290 QoS 1: Message must be delivered at least once.
1291
1292 QoS 2: Message is delivered just once.
1293
1294 **Content format:**
1295
1296 **JSON (Default):** Use default values, default values for each system topic (**The bold is represented as the current actual value**)
1297
1298 **Birth Topic:** 
1299 {
1300 "d": {
1301 "connected": true
1302 },
1303 "ts": " **Current time**"
1304 }**Close Topic: **
1305 {
1306 "d": {
1307 "connected": false
1308 },
1309 "ts": " **Current time**"
1310 }**Last Will: **
1311 {
1312 "d": {
1313 "connected": false
1314 }
1315 }**Topic list:** 
1316 {
1317 "d": {
1318 "topics": [
1319 {
1320 "compression": "
1321
1322
1323 ",
1324
1325 "nickname": "**Subject name**",
1326
1327 "topic": "**Theme**"
1328 },
1329 {
1330 "compression": "**Compression type**",
1331
1332 "nickname": "**Subject nam**e",
1333
1334 "topic": "**Theme**"
1335 }
1336 ]
1337 },
1338 "ts": "**Current time**"
1339 }
1340
1341 Messages within topics vary depending on the actual topic settings. The above is an example of two topics.
1342
1343 **JSON (Customized):** Use custom content.
1344
1345 **Choose the connection network card**
1346
1347 (% style="text-align:center" %)
1348 [[image:7.jpg]]
1349
1350 **Default:** According to the priority order of network adapters set in the HMI background to connect server.
1351
1352 **Ethernet 1: **Specify Ethernet 1 network card to connect to the server. When the system does not find Ethernet 1, connect to the server by “Default”. When system finds Ethernet 1 and binds it to connect to the server.
1353
1354 **Ethernet 2: **Specify Ethernet 2 network card to connect to the server. When the system does not find Ethernet 2, connect to the server by “Default”. When system finds Ethernet 2 and binds it to connect to the server.
1355
1356 **4G:** Specify 4G network card to connect to server. When the system does not find 4G, connect to the server by “Default”. When system finds 4G and binds it to connect to the server.
1357
1358 **Wi-Fi:** Specify Wi-Fi network card to connect to server. When the system does not find Wi-Fi, connect to the server by “Default”. When the system finds Wi-Fi and bind it to connect to the server.
1359
1360
1361 **MQTT Topic**
1362
1363 **MQTT topic publish**
1364
1365 Select [Topic publish], click [Add], enter [Add MQTT topic publish object], and set the general settings and address. The maximum number of MQTT published topics is 255.
1366
1367 (% style="text-align:center" %)
1368 [[image:8.jpg]]
1369
1370 **General properties**
1371
1372 (% style="text-align:center" %)
1373 [[image:9.jpg]]
1374
1375 **Alias:** Set the project name of the MQTT topic. Maximum input length: 255 characters, cannot be empty.
1376
1377 **Topic:** The topic received by the MQTT server when sending message. Maximum input length: 255 characters, cannot be empty.
1378
1379 Sending mode: (AUTO/TRIGGER)
1380
1381 **① AUTO **value change mode: When any value changes, MQTT message is published.
1382
1383 a. Minimum time interval between messages: The minimum time interval can be set between messages to avoid over-publishing MQTT messages. When the interval of value change is less than the minimum time interval between messages, the message will be put in the cache. The MQTT message will not be published until the minimum interval between messages is met. Range: 0~~3600000ms.
1384
1385 b. Periodic mode: Publish MQTT message by the fixed time. Time interval: Set the time interval for periodic publishing. The range is 1~~3600s.
1386
1387 **② TRIGGER**
1388
1389 When the specified bit is triggered, the MQTT message is published. When HDX0.0 changes from OFF to ON, an MQTT message is published, and HDX0.0 is automatically set to OFF after publishing.
1390
1391 **Compression type:** Message is compressed before it is transmitted. The compressed message needs to be decompressed before the MQTT client reads it. Zilb, Gzip, or Deflate algorithm can be chosen to compress or decompress the message.
1392
1393 **QoS:** MQTT provides three levels of reliability called service quality. The service quality of message transmission determines whether the message is guaranteed to be delivered.
1394
1395 0: Messages are sent only once, and delivery is not guaranteed.
1396
1397 1: Message must be delivered at least once.
1398
1399 2: Message is delivered just once.
1400
1401 **Retain message: **When checked, the MQTT server keeps the latest message.
1402
1403 **Content format:**
1404
1405 Raw data: Data composed of BYTE data.
1406
1407 JSON (General): Put all data in JSON format of member "d".
1408
1409 JSON (Advanced): JSON format of flexibly customizable nested structure.
1410
1411 **Include timestamps:** This function is only supported when the content format uses [JSON (General)], and whether to include the timestamp can be decided manually.
1412
1413 **Use the top "d" symbol in the message format:**
1414
1415 This function is only supported when the content format uses [JSON (General)]. When checked, the message format is as follows:
1416
1417 {
1418
1419 "d": {
1420
1421 "addressName1": ...,
1422
1423 "addressName2":...
1424
1425 },
1426
1427 "ts":...
1428
1429 }
1430
1431 When unchecked, the message format is as follows:
1432
1433 {
1434
1435 "addressName1": ...,
1436
1437 "addressName2":...,
1438
1439 "ts":...
1440
1441 }
1442
1443 As shown above, when unchecked, ts and address names are both key at the same level. Therefore, avoid taking the address name as ts.
1444
1445 **Address setting**
1446
1447 ①Address settings when content formats use [Raw Data] and [JSON (General)].
1448
1449 (% style="text-align:center" %)
1450 [[image:10.jpg]]
1451
1452 **Add:** Establish the address source of the topic. The length of each address can be set separately.
1453
1454 **Delete:** Delete the address.
1455
1456 **Settings:** Modify the address and name.
1457
1458 (% style="text-align:center" %)
1459 [[image:11.jpg]]
1460
1461 **Included in all message sent**
1462
1463 Check the options: This topic will include this address every time it publishes a message.
1464
1465 Uncheck the options: When the sending mode is value, message is published only when the value of the address changes.
1466
1467 **Remove JSON array brackets' ['and'] ':**
1468
1469 Check the options: Remove the array symbol name when using non-array bits or characters.
1470
1471 **✎Note: A topic can be configured up to 255 nodes. The name length of a node can be configured up to a maximum of 255 characters and cannot be empty.**
1472
1473 ② Address setting when the content format uses [JSON (Advanced)]. [JSON (Advanced)] supports nested structure, which can use components, arrays and other forms. Timestamps and data names can also be customized, which is a more flexible design method.
1474
1475 (% style="text-align:center" %)
1476 [[image:12.jpg]]
1477
1478 The above figure is an example. If setting like above figure, the subscription side will receive the MQTT message like following format.
1479
1480 {
1481 "object": {
1482 "value": "teststring",
1483 "value (1)": 123,
1484 "value (2)": true,
1485 "value (3)": "",
1486 "value (4)": 0,
1487 "value (5)": true
1488 },
1489 "array": [
1490 10,
1491 20,
1492 30
1493 ],
1494 "value (6)": " 2023-04-27T03: 53: 20.156271 "
1495 }
1496
1497 **New component:** Add a new data component. Components can have multiple data formats; each data format has its own Name and Value. The data of the component is included in braces {}.
1498
1499 **New value:** Add a new value, string, or timestamp. When it is a value or a string, it can be fixed value or read data from a specified address.
1500
1501 **Delete:** Delete the selected field.
1502
1503 **Settings:** Modify the selected field. If the selected fields are components and arrays, only the names can be modified. But components and arrays include values that can modify parameters.
1504
1505 **Template:** Paste the JSON text here, and the system will automatically arrange the style to conform to this JSON format, saving the time of self-definition.
1506
1507 **Preview:** Preview JSON data in an easy-to-read format.
1508
1509 **✎Note: A Topic can be up to 512 nodes (including payload), and a node name can be configured to be up to 255 characters length.**
1510
1511 **Security settings**
1512
1513 The topic is published only when the register status matches the setting. As shown in the following figure, this topic will not be published until the address HDX0.0 is set to ON.
1514
1515 (% style="text-align:center" %)
1516 [[image:13.jpg]]
1517
1518 **MQTT topic subscription**
1519
1520 Select [Topic subscription] and click [Add] to enter general property settings and address settings. The maximum number of MQTT subscription topics is 255.
1521
1522 (% style="text-align:center" %)
1523 [[image:14.jpg]]
1524
1525 **General properties**
1526
1527 (% style="text-align:center" %)
1528 [[image:15.jpg]]
1529
1530 **Alias:** Set the project name of the MQTT topic. Maximum input length: 255 characters, cannot be empty.
1531
1532 **Topic:** Topics subscribed from the MQTT server. Maximum input length: 255 characters, cannot be empty.
1533
1534 **Compression type:** The transport compression type of a subscription topic must be the same as that of a publication topic.
1535
1536 **QoS:** MQTT provides three levels of reliability called service quality. The service quality of message transmission determines whether the message is guaranteed to be delivered.
1537
1538 0: Messages are sent only once, and delivery is not guaranteed.
1539
1540 1: Message must be delivered at least once.
1541
1542 2: Message is delivered just once.
1543
1544 **Content format:**
1545
1546 Raw data: There is no original data in a specific format.
1547
1548 JSON (General): JSON format of single-layer structure.
1549
1550 JSON (Advanced): JSON format of flexibly customizable nested structure.
1551
1552 **Verify timestamp:** The user can decide whether to verify the timestamp or not. When checked, it indicates that the received data timestamp must be strictly incremented before it can be updated. Otherwise, it will be judged as outdated data and not updated.
1553
1554 **Use the top "d" symbol in the message format:**
1555
1556 This function is only supported when the content format uses [JSON (General)]. When checked, the message format is as follows:
1557
1558 {
1559
1560 "d": {
1561
1562 "addressName1": ...,
1563
1564 "addressName2":...
1565
1566 },
1567
1568 "ts":...
1569
1570 }
1571
1572 When unchecked, the message format is as follows:
1573
1574 {
1575
1576 "addressName1": ..., "addressName2":...,
1577
1578 "ts":...
1579
1580 }
1581
1582 Please select the appropriate settings according to the data source.
1583
1584 **Address settings**
1585
1586 ①Address settings when content formats use [Raw Data] and [JSON (General)].
1587
1588 (% style="text-align:center" %)
1589 [[image:16.jpg]]
1590
1591 **Add:** Establish the address where the data is stored after the topic is subscribed, and the length of each address can be set separately.
1592
1593 **Delete:** Delete the address.
1594
1595 **Settings:** Modify the address and name.
1596
1597 (% style="text-align:center" %)
1598 [[image:17.jpg]]
1599
1600 **Remove JSON array brackets' ['and'] ':**
1601
1602 When using non-array bits or characters, array symbol can manually be removed.
1603
1604 **✎Note: A topic can be configured up to 255 nodes. The name length of a node can be configured up to a maximum of 255 characters and cannot be empty.**
1605
1606 ② Address setting when the content format uses [JSON (Advanced)]. [JSON (Advanced)] supports nested structure, which can use components, arrays and other forms. Timestamps and data names can also be customized, which is a more flexible design method.
1607
1608 (% style="text-align:center" %)
1609 [[image:18.jpg]]
1610
1611 **New component:** Add a new data component. There can be multiple data formats in a component, each with a name and a value. The data of the component is included in braces {}.
1612
1613 **New Array:** Add a new data array. Arrays can have multiple data formats, but only one name. The data of the component is included in brackets [].
1614
1615 **New value:** Add a new value, string, or timestamp. When it is a value or a string, it can be fixed value or read data from a specified address.
1616
1617 **Delete:** Delete the selected field.
1618
1619 **Settings:** Modify the selected field. If the selected fields are components and arrays, only the names can be modified. But components and arrays include values that can modify parameters.
1620
1621 **Template:** Paste the JSON text here, and the system will automatically arrange the style to conform to this JSON format, saving the time of self-definition.
1622
1623 **Preview:** Preview JSON data in an easy-to-read format.
1624
1625 **✎Note: A Topic can be up to 512 nodes (including payload), and a node name can be configured to be up to 255 characters length.**
1626
1627 **(3) Security settings**
1628
1629 The topic is published only when the register status matches the setting. As shown in the following figure, this topic will not be published until the address HDX0.0 is set to ON.
1630
1631 (% style="text-align:center" %)
1632 [[image:19.jpg]]
1633
1634 **MQTT Server Settings (AWS IOT)**
1635
1636 **General**
1637
1638 (% style="text-align:center" %)
1639 [[image:20.jpg]]
1640
1641 **Description:** Enter a description or comment about the server. Maximum input length: 255 characters, cannot be empty.
1642
1643 **Cloud service description**: (Select AWS IOT)
1644
1645 ① Common (Common Platform): General MQTT publish-subscribe topic mode.
1646
1647 ② AWS IoT (Amazon): Using "AWS IoT" as the Broker, using Thing to transfer data and support Shadow function.
1648
1649 ③ ALi (Alibaba Cloud): Using "Alibaba Cloud" as Broker.
1650
1651 ④ Huawei (Huawei Cloud): Using "Huawei Cloud" as Broker.
1652
1653 **Communication protocol**: MQTT v3.1.1 is supported.
1654
1655 **Domain name:** Set the domain name of the MQTT server that receives message. (Obtained from the AWS IOT platform) Maximum input length: 128 characters, cannot be empty, supports letters, numbers, "-", “.”. The symbol cannot be placed at the first character or last character of name.
1656
1657 **Port number:** Set the MQTT server port to receive message. Range: 0~~65535, cannot be empty. (AWS IOT platform is generally 8883).
1658
1659 **Client ID:** Login name. Variables can be used as login names. For example: Enter %0 and the Client ID is the device name (This can be set in the HMI background. If not, the default is HMI model). **(✎Note: A Client ID can only be used on one device.)** The maximum configurable length is 40 characters.
1660
1661 **Timestamp:** LOCAL: Using the HMI time as the timestamp. UTC Time: Using UTC+0.
1662
1663
1664 **Address**
1665
1666 (% style="text-align:center" %)
1667 [[image:21.jpg]]
1668
1669 **Status address: (Total length: 2 words)**
1670
1671 HDWn: Display [MQTT] connection status.
1672
1673 |Value|Description
1674 |0|Disable MQTT server connection
1675 |1|Disconnected or connecting
1676 |2|Successfully connected the MQTT server
1677
1678 HDWn+1: Error prompt
1679
1680 |Value|Description
1681 |0|No error
1682 |-1|General error code of wrong operation
1683 |-3|Disconnected
1684 |-4|Exceed client data concurrency
1685 |-5|Invalid UTF-8 string
1686 |-6|Null pointer parameter
1687 |-7|Topic name is truncated
1688 |-8|Wrong protocol structure body
1689 |-9|Wrong QOS.  (0, 1, 2) is acceptable.
1690 |-10|Attempt to use a non-SSL library for SSL connection
1691 |-11|Wrong MQTT version
1692 |-14|Wrong protocol type
1693 |-15|Option is not suitable for the current request version
1694 |-16|Call MQTT version that is not applicable to request.
1695 |-17|0 length topic connection
1696
1697 **Buffer usage address:** Not available.
1698
1699 **Control address: (Total length: 90 words)**
1700
1701 HDWn: Control the execution or stop of [MQTT Server].
1702
1703 |Value|Description
1704 |0|Ready
1705 |1|Start
1706 |2|Stop
1707 |3|Update
1708
1709 HDWn+1: Reserved for use.
1710
1711 HDWn+5: Port number of the AWS IOT connection.
1712
1713 HDWn+6: Client ID of the AWS IOT connection.
1714
1715 HDWn+26: Domain name of the AWS IOT connection. 
1716
1717 **TLS/SSL Settings**
1718
1719 (% style="text-align:center" %)
1720 [[image:22.jpg]]
1721
1722 **Enable:**
1723
1724 Enabled by default. The default is TLS V1.2.
1725
1726 **Server authentication:**
1727
1728 Enabled by default: Verify whether the server certificate has been certified by a Certificate Authority Certificate (CA). Server certificates are sent by the server when connection is established.
1729
1730 Import: Select CA certificate to import.
1731
1732 More: After the import is successful, clicking it will display the certificate details.
1733
1734 Reset: Reset the import information.
1735
1736 The server name must be matched with the certificate information to verify whether the server name or IP matches the records in the certificate. Domain name and IP are recorded in the Subject Alternative Name in the certificate.
1737
1738 **(3) Client authentication:** The private key and client certificate are the data required for the server to authenticate the client end.
1739
1740 Certificate:
1741
1742 Import: Select certificate to import.
1743
1744 More: After the import is successful, clicking it will display the certificate details.
1745
1746 Reset: Reset the import information.
1747
1748 Key:
1749
1750 Import: Select the key to import.
1751
1752 More: After the import is successful, clicking it will display key details.
1753
1754 Reset: Reset the import information.
1755
1756
1757 **Device setting**
1758
1759 Select [Add] to enter [General property settings and address settings]. To delete a device, select the device and click Delete.
1760
1761 (% style="text-align:center" %)
1762 [[image:23.jpg]]
1763
1764 **General**
1765
1766 (% style="text-align:center" %)
1767 [[image:24.jpg]]
1768
1769 **Device name:** It is consistent with the item name on AWS IOT. Maximum input length: 128 characters, cannot be empty, supports letters, numbers, "-", "_".
1770
1771 **Description:** For distinguish purpose. Maximum input length: 255 characters.
1772
1773 **Minimum time interval between messages:** The minimum time interval can be set between messages to avoid over-publishing MQTT messages. That is, when the interval of value change is less than the minimum time interval between messages, the message will be put in the cache, and the MQTT message will not be released until the minimum time interval between messages is met. Range: 0~~3600000ms.
1774
1775 **QoS:** MQTT provides three levels of reliability called service quality. The service quality of message transmission determines whether the message is guaranteed to be delivered.
1776
1777 0: Messages are sent only once, and delivery is not guaranteed.
1778
1779 1: Message must be delivered at least once.
1780
1781 2: Message is delivered just once.
1782
1783 **Content format:** Not configurable. All data is in JSON format.
1784
1785 **Include timestamps:** Whether to include the timestamp can be decided manually.
1786
1787 **Use the top "d" symbol in the message format:**
1788
1789 This function is only supported when the content format uses [JSON (General)]. When checked, the message format is as follows:
1790
1791 {
1792
1793 "d": {
1794
1795 "addressName1": ...,
1796
1797 "addressName2":...
1798
1799 },
1800
1801 "ts":...
1802
1803 }
1804
1805 When unchecked, the message format is as follows:
1806
1807 {
1808
1809 "addressName1": ...,
1810
1811 "addressName2":...,
1812
1813 "ts":...
1814
1815 }
1816
1817 As shown above, when unchecked, ts and address names are both key at the same level. Therefore, avoid taking the address name as ts.
1818
1819 **Address**
1820
1821 (% style="text-align:center" %)
1822 [[image:25.jpg]]
1823
1824 **Add:** Establish the address source of the topic. The length of each address can be set separately.
1825
1826 **Delete:** Delete the address.
1827
1828 **Settings:** Modify the address and name.
1829
1830 (% style="text-align:center" %)
1831 [[image:26.jpg]]
1832
1833 **Advanced Mode:**
1834
1835 Check the options: Check to configure four “Settings/Status".
1836
1837 Uncheck the options: Check to configure two "Settings/Status".
1838
1839 **Name:** Correspond to the key value in JSON.
1840
1841 **Type:** “Bit" and “Word” are optional. “Word” configuration can choose system of numeration.
1842
1843 **Length:**
1844
1845 Length 1: General JSON format.
1846
1847 Length > 1: Enable the format of JSON array. The values of continuous address with the configuration address as the first address as the elements of the array. This length is valid to the selected "settings/status”. (For example, the length is set to 3, and 4 "settings/states" are checked, so the length of these 4 are all 3). Range: 1-255.
1848
1849 For example, configure as the following figure:
1850
1851 (% style="text-align:center" %)
1852 [[image:27.jpg]]
1853
1854 Then HDW0, HDW2 and HDW4 will be read and published to the reported key; HDW10, HDW12, HDW14 will be read and published to the desired key. For example, if HDW0=1, HDW2=2, HDW4=3, HDW10=4, HDW12=5, and HDW14=6, the subscribed message format is as follows.
1855
1856 {
1857
1858 "state": {
1859
1860 "desired": {
1861
1862 "welcome": [1, 2, 3]
1863
1864 },
1865
1866 "reported": {
1867
1868 "welcome": [4, 5, 6]
1869
1870 }
1871
1872 }
1873
1874 }
1875
1876 **Status (Device address~-~->AWS IOT "reported"):** Pass a value from the Device address to the AWS IOT “reported” in one direction, which is equivalent to publishing to "reported".
1877
1878 **Setting (Device address->AWS IOT "desired"):** Pass a value from the Device address to the AWS IOT “desired” in one direction, which is equivalent to publishing to “desired".
1879
1880 **Status (AWS IOT "reported"->Device address):** Pass a value from AWS IOT "reported" to Device address in one direction, which is equivalent to subscribing to "reported".
1881
1882 **Settings (AWS IOT "desired"->Device address):** Pass a value from the AWS IOT "desired" to the Device address in one direction, which is equivalent to subscribing to "desired".
1883
1884 **Remove JSON array brackets' ['and'] ':** Check to remove array symbols when using non-array bits or characters. (Configurable when length is 1).
1885
1886 **MQTT Server Settings (ALi)**
1887
1888 **General**
1889
1890 (% style="text-align:center" %)
1891 [[image:28.jpg]]
1892
1893 **Description:** Enter a description or comment about the server. Maximum input length: 255 characters, cannot be empty.
1894
1895 **Cloud service description**: (Select Ali)
1896
1897 ① Common (Common Platform): General MQTT publish-subscribe topic mode.
1898
1899 ② AWS IoT (Amazon): Using "AWS IoT" as the Broker, using Thing to transfer data and support Shadow function.
1900
1901 ③ ALi (Alibaba Cloud): Using "Alibaba Cloud" as Broker.
1902
1903 ④ Huawei (Huawei Cloud): Using "Huawei Cloud" as Broker.
1904
1905 **Communication protocol**: MQTTv3.1, v3.1.1 and v5 are supported.
1906
1907 **Domain name:** Set the domain name of the MQTT server that receives message. Maximum input length: 128 characters, cannot be empty, supports letters, numbers, "-", “.”. The symbol cannot be placed at the first character or last character of name.
1908
1909 **Port number:** Set the MQTT server port to subscribe message. Range: 0~~65535, cannot be empty.
1910
1911 **Client ID:** Login name. Variables can be used as login names. For example: Enter %0 and the Client ID is the device name (This can be set in the HMI background. If not, the default is HMI model). (Note: A Client ID can only be used for one device.) When there is no custom Client ID length, the maximum configurable length of a Client ID is 64 characters.
1912
1913 **ProductId:** The key of the product to which the device belongs, that is, the globally unique identifier issued by the IoT platform for the product. (Obtained from Alibaba Cloud Platform) Maximum input length: 128 characters.
1914
1915 **DeviceId:** Unique identifier of the device within the product. DeviceName is combined with ProductKey of the product to which the device belongs as the device identification, which is used for connection authentication and communication with the IoT platform. (Obtained from Alibaba Cloud Platform) Maximum input length: 64 characters.
1916
1917 **DeviceSecret:** The device key issued by the IoT platform for devices is used for authentication and encryption. It needs to be used in pairs with DeviceName. (Obtained from Alibaba Cloud Platform) Maximum input length: 128 characters.
1918
1919 **Encryption algorithm:** Alibaba Cloud's signature algorithm type supports hmacmd5 and hmacsha1.
1920
1921 **Timestamp:** LOCAL: Using the HMI time as the timestamp. UTC Time: Use UTC+0 time.
1922
1923 **Clean message cache when normal connected:** If option is enabled, when the device is disconnected, the message to be published will be cached in the cache area, and then will be published when the device is online again.
1924
1925
1926 **Address**
1927
1928 (% style="text-align:center" %)
1929 [[image:29.jpg]]
1930
1931 **Status address: (Total length: 2 words)**
1932
1933 HDWn: Display [MQTT] connection status.
1934
1935 |Value|Description
1936 |0|Disable MQTT server connection
1937 |1|Disconnected or connecting
1938 |2|Successfully connected the MQTT server
1939
1940 HDWn+1: Error prompt
1941
1942 |Value|Description
1943 |0|No error
1944 |-1|General error code of wrong operation
1945 |-3|Disconnected
1946 |-4|Exceed client data concurrency
1947 |-5|Invalid UTF-8 string
1948 |-6|Null pointer parameter
1949 |-7|Topic name is truncated
1950 |-8|Wrong protocol structure body
1951 |-9|Wrong QOS.  (0, 1, 2) is acceptable.
1952 |-10|Attempt to use a non-SSL library for SSL connection
1953 |-11|Wrong MQTT version
1954 |-14|Wrong protocol type
1955 |-15|Option is not suitable for the current request version
1956 |-16|Call MQTT version that is not applicable to request.
1957 |-17|0 length topic connection
1958
1959 **Buffer usage address: (Total length: 1 word)**
1960
1961 Unsuccessful published message will be stored in memory as cache, with a maximum 100,000 messages or 2M. Value display as unit %, and it is carried unconditionally.
1962
1963 HDWn: Display buffer usage.
1964
1965 **Control address: (Total length: 258 words)**
1966
1967 HDWn: Control the execution or stop of [MQTT Server].
1968
1969 |Value|Description
1970 |0|Ready
1971 |1|Start
1972 |2|Stop
1973 |3|Update
1974
1975 HDWn+1: Port number of the Alibaba Cloud connection.
1976
1977 HDWn+2: Domain name title of the Alibaba Cloud connection.
1978
1979 HDWn+66: Client ID of the Alibaba Cloud connection.
1980
1981 HDWn+98: ProductId of the Alibaba Cloud connection.
1982
1983 HDWn+162: DeviceId of the Alibaba Cloud connection.
1984
1985 HDWn+194: DeviceSecret of the Alibaba Cloud connection.
1986
1987 **TLS/SSL Settings**
1988
1989 (% style="text-align:center" %)
1990 [[image:30.jpg]]
1991
1992 **Enable:** Enable TLS/SSL encryption. User can manually select encrypted versions of TLS 1.0, TLS 1.1, or TLS 1.2.
1993
1994 **Server authentication:**
1995
1996 Enable: Verify whether the server certificate has been certified by a Certificate Authority Certificate (CA). Server certificates are sent by the server when connection is established.
1997
1998 Import: Select CA certificate to import.
1999
2000 More: After the import is successful, clicking it will display the certificate details.
2001
2002 Reset: Reset the import information.
2003
2004 The server name must be matched with the certificate information to verify whether the server name or IP matches the records in the certificate. Domain name and IP are recorded in the Subject Alternative Name in the certificate.
2005
2006 **(3) Client authentication:** The private key and client certificate are the data required for the server to authenticate the client end.
2007
2008 Certificate:
2009
2010 Import: Select certificate to import.
2011
2012 More: After the import is successful, clicking it will display the certificate details.
2013
2014 Reset: Reset the import information.
2015
2016 Key:
2017
2018 Import: Select the key to import.
2019
2020 More: After the import is successful, clicking it will display key details.
2021
2022 Reset: Reset the import information.
2023
2024
2025 **MQTT Topic**
2026
2027 (% class="wikigeneratedid" id="H1.MQTTtopicpublish" %)
2028 **MQTT topic publish**
2029
2030 Select [Topic publish], click [Add], enter [Add MQTT topic publish object], and set the general settings and address. The maximum number of MQTT published topics is 255.
2031
2032 (% style="text-align:center" %)
2033 [[image:31.jpg]]
2034
2035 **General properties**
2036
2037 (% style="text-align:center" %)
2038 [[image:32.jpg]]
2039
2040
2041 **Alias:** Set the project name of the MQTT theme. Maximum input length: 255 characters, cannot be empty.
2042
2043 **Topic:** The topic received by the MQTT server when sending message. Maximum input length: 255 characters, cannot be empty.
2044
2045 **Sending mode:** **(AUTO/TRIGGER)**
2046
2047 **① AUTO **value change mode: When any value changes, MQTT message is published.
2048
2049 a. Minimum time interval between messages: The minimum time interval can be set between messages to avoid over-publishing MQTT messages. When the interval of value change is less than the minimum time interval between messages, the message will be put in the cache. The MQTT message will not be published until the minimum interval between messages is met. Range: 0~~3600000ms.
2050
2051 b. Periodic mode: Publish MQTT message by the fixed time. Time interval: Set the time interval for periodic publishing, ranging from 1 to 3600s.
2052
2053 **② TRIGGER**
2054
2055 When the specified bit is triggered, the MQTT message is published. When HDX0.0 changes from OFF to ON, an MQTT message is published, and HDX0.0 is automatically set to OFF after publishing.
2056
2057 **Compression type:** Message is compressed before it is transmitted. The compressed message needs to be decompressed before the MQTT client reads it. Zlib, Gzip, or Deflate algorithm can be chosen to compress or decompress the message.
2058
2059 **QoS:** MQTT provides three levels of reliability called service quality. The service quality of message transmission determines whether the message is guaranteed to be delivered.
2060
2061 0: Messages are sent only once, and delivery is not guaranteed.
2062
2063 1: Message must be delivered at least once.
2064
2065 2: Message is delivered just once.
2066
2067 **Retain message:** When checked, the MQTT server will keep the latest message.
2068
2069 **Content format:**
2070
2071 Raw data: Data composed of BYTE data.
2072
2073 JSON (General): Put all data in JSON format of member "d".
2074
2075 JSON (Advanced): JSON format of flexibly customizable nested structure.
2076
2077 **Include timestamps:** This function is only supported when the content format uses [JSON (General)], and whether to include the timestamp can be decided manually.
2078
2079 **Use the top "d" symbol in the message format:**
2080
2081 This function is only supported when the content format uses [JSON (General)]. When checked, the message format is as follows:
2082
2083 {
2084
2085 "d": {
2086
2087 "addressName1": ...,
2088
2089 "addressName2":...
2090
2091 },
2092
2093 "ts":...
2094
2095 }
2096
2097 When unchecked, the message format is as follows:
2098
2099 {
2100
2101 "addressName1": ...,
2102
2103 "addressName2":...,
2104
2105 "ts":...
2106
2107 }
2108
2109 As shown above, when unchecked, ts and address names are both key at the same level. Therefore, avoid taking the address name as ts.
2110
2111
2112 **Address setting**
2113
2114 ①Address settings when content formats use [Raw Data] and [JSON (General)].
2115
2116 (% style="text-align:center" %)
2117 [[image:33.jpg]]
2118
2119 **Add:** Establish the address source of the topic. The length of each address can be set separately.
2120
2121 **Delete:** Delete the address.
2122
2123 **Settings:** Modify the address and name.
2124
2125 (% style="text-align:center" %)
2126 [[image:34.jpg]]
2127
2128 **Included in all message sent**
2129
2130 Check the options: This topic will include this address every time it publishes a message.
2131
2132 Uncheck the options: When the sending mode is value, message is published only when the value of the address changes.
2133
2134 **Remove JSON array brackets' ['and'] ':**
2135
2136 Check the options: Remove the array symbol name when using non-array bits or characters.
2137
2138 **✎Note: A topic can be configured up to 255 nodes. The name length of a node can be configured up to a maximum of 255 characters and cannot be empty.**
2139
2140 ② Address setting when the content format uses [JSON (Advanced)]. [JSON (Advanced)] supports nested structure, which can use components, arrays and other forms. Timestamps and data names can also be customized, which is a more flexible design method.
2141
2142 (% style="text-align:center" %)
2143 [[image:HMIEditor_Db5tLtioq7.jpg]]
2144
2145 The above figure is an example. If setting like above figure, the subscription side will receive the MQTT message like following format.
2146
2147 {
2148 "object": {
2149 "value": "teststring",
2150 "value (1)": 123,
2151 "value (2)": true,
2152 "value (3)": "",
2153 "value (4)": 0,
2154 "value (5)": true
2155 },
2156 "array": [
2157 10,
2158 20,
2159 30
2160 ],
2161 "value (6)": " 2023-04-27T03: 53: 20.156271 "
2162 }
2163
2164 **New component:** Add a new data component. Components can have multiple data formats; each data format has its own Name and Value. The data of the component is included in braces {}.
2165
2166 **New value:** Add a value, string, or timestamp. When it is a value or a string, data can be read for a fixed value or from a specified address.
2167
2168 **Delete:** Delete the selected field.
2169
2170 **Settings:** Modify the selected field. If the selected fields are components and arrays, only the names can be modified. But components and arrays include values that can modify parameters.
2171
2172 **Template:** Paste the JSON text, and the system will automatically arrange the schema to conform to this JSON format, saving the time of self-definition.
2173
2174 **Preview:** Preview JSON data in an easy-to-read format.
2175
2176 **✎Note: A Topic can be up to 512 nodes (including payload), and a node name can be configured to be up to 255 characters length.**
2177
2178
2179 **Security settings**
2180
2181 The topic is published only when the register status matches the setting. As shown in the following figure, this topic will not be published until the address HDX0.0 is set to ON.
2182
2183 (% style="text-align:center" %)
2184 [[image:35.jpg]]
2185
2186 **MQTT topic subscription**
2187
2188 Select [Topic subscription] and click [Add] to enter general property settings and address settings. The maximum number of MQTT subscription topics is 255.
2189
2190 (% style="text-align:center" %)
2191 [[image:36.jpg]]
2192
2193 **General properties**
2194
2195 (% style="text-align:center" %)
2196 [[image:37.jpg]]
2197
2198 **Alias:** Set the project name of the MQTT theme. Maximum input length: 255 characters, cannot be empty.
2199
2200 **Topic:** Topics subscribed from the MQTT server. Maximum input length: 255 characters, cannot be empty.
2201
2202 **Compression type:** The transport compression type of a subscription topic must be the same as that of a publication topic.
2203
2204 **QoS:** MQTT provides three levels of reliability called service quality. The service quality of message transmission determines whether the message is guaranteed to be delivered.
2205
2206 0: Messages are sent only once, and delivery is not guaranteed.
2207
2208 1: Message must be delivered at least once.
2209
2210 2: Message is delivered just once.
2211
2212 **Content format:**
2213
2214 Raw data: There is no original data in a specific format.
2215
2216 JSON (General): JSON format of single-layer structure.
2217
2218 JSON (Advanced): JSON format of flexibly customizable nested structure.
2219
2220 **Verify timestamp:** The user can decide whether to verify the timestamp or not. When checked, it indicates that the received data timestamp must be strictly incremented before it can be updated. Otherwise, it will be judged as outdated data and not updated.
2221
2222 **Use the top "d" symbol in the message format:**
2223
2224 This function is only supported when the content format uses [JSON (General)]. When checked, the message format is as follows:
2225
2226 {
2227
2228 "d": {
2229
2230 "addressName1": ...,
2231
2232 "addressName2":...
2233
2234 },
2235
2236 "ts":...
2237
2238 }
2239
2240 When unchecked, the message format is as follows:
2241
2242 {
2243
2244 "addressName1": ..., "addressName2":...,
2245
2246 "ts":...
2247
2248 }
2249
2250 Please select the appropriate settings according to the data source.
2251
2252 **Address setting**
2253
2254 ①Address settings when content formats use [Raw Data] and [JSON (General)].
2255
2256 (% style="text-align:center" %)
2257 [[image:38.jpg]]
2258
2259 **Add:** Establish the address where the data is placed after the topic is subscribed, and the length of each address can be set separately.
2260
2261 **Delete:** Delete the address.
2262
2263 **Settings:** Modify the address and name.
2264
2265 (% style="text-align:center" %)
2266 [[image:39.jpg]]
2267
2268 **Remove JSON array brackets' ['and'] ':**
2269
2270 When using non-array bits or characters, array symbol can manually be removed.
2271
2272 **✎Note: A topic can be configured up to 255 nodes. The name length of a node can be configured up to a maximum of 255 characters and cannot be empty.**
2273
2274 ② Address setting when the content format uses [JSON (Advanced)]. [JSON (Advanced)] supports nested structure, which can use components, arrays and other forms. Timestamps and data names can also be customized, which is a more flexible design method.
2275
2276 (% style="text-align:center" %)
2277 [[image:40.jpg]]
2278
2279 **New component:** Add a new data component. There can be multiple data formats in a component, each with a name and a value. The data of the component is included in braces {}.
2280
2281 **New Array:** Add a new data array. Arrays can have multiple data formats, but only one name. The data of the component is included in brackets [].
2282
2283 **New value:** Add a value, string, or timestamp. When it is a value or a string, data can be read for a fixed value or from a specified address.
2284
2285 **Delete:** Delete the selected field.
2286
2287 **Settings:** Modify the selected field. If the selected fields are components and arrays, only the names can be modified. But components and arrays include values that can modify parameters.
2288
2289 **Template:** Paste the JSON text, and the system will automatically arrange the schema to conform to this JSON format, saving the time of self-definition.
2290
2291 **Preview:** Preview JSON data in an easy-to-read format.
2292
2293 **✎Note: A Topic can be up to 512 nodes (including payload), and a node name can be configured to be up to 255 characters length.**
2294
2295
2296 **Security settings**
2297
2298 The topic is published only when the register status matches the setting. As shown in the following figure, this topic will not be published until the address HDX0.0 is set to ON.
2299
2300 (% style="text-align:center" %)
2301 [[image:41.jpg]]
2302
2303 **MQTT Server Settings (Huawei)**
2304
2305 **General**
2306
2307 (% style="text-align:center" %)
2308 [[image:42.jpg]]
2309
2310 **Description:** Enter a description or comment about the server. Maximum input length: 255 characters, cannot be empty.
2311
2312 **Cloud service description**: (Select Huawei)
2313
2314 ① Common (Common Platform): General MQTT publish-subscribe topic mode.
2315
2316 ② AWS IoT (Amazon): Using "AWS IoT" as the Broker, using Thing to transfer data and support Shadow function.
2317
2318 ③ ALi (Alibaba Cloud): Using "Alibaba Cloud" as Broker.
2319
2320 ④ Huawei (Huawei Cloud): Using "Huawei Cloud" as Broker.
2321
2322 **Communication protocol**: MQTTv3.1, v3.1.1 and v5 are supported.
2323
2324 **Domain name:** Set the domain name of the MQTT server that subscribe message. Maximum input length: 128 characters, cannot be empty, supports letters, numbers, "-", “.”. The symbol cannot be placed at the first character or last character of name.
2325
2326 **Port number:** Set the MQTT server port to subscribe message. Range: 0~~65535, cannot be empty.
2327
2328 **DeviceId:** **Device ID** generated when registering the device in Huawei Cloud. Maximum input length: 128 characters
2329
2330 **DeviceSecret:** Customized **password **when registering devices on Huawei Cloud Maximum input length: 128 characters.
2331
2332 **Timestamp:** LOCAL: Using the HMI time as the timestamp. UTC Time: Using UTC+0.
2333
2334 **Clean message cache when normal connected:** If option is enabled, when the device is disconnected, the message to be published will be cached in the cache area, and then will be published when the device is online again.
2335
2336
2337 **Address**
2338
2339 (% style="text-align:center" %)
2340 [[image:43.jpg]]
2341
2342 **Status address: (Total length: 2 words)**
2343
2344 HDWn: Display [MQTT] connection status.
2345
2346 |Value|Description
2347 |0|Disable MQTT server connection
2348 |1|Disconnected or connecting
2349 |2|Successfully connected the MQTT server
2350
2351 HDWn+1: Error prompt
2352
2353 |Value|Description
2354 |0|No error
2355 |-1|General error code of wrong operation
2356 |-3|Disconnected
2357 |-4|Exceed client data concurrency
2358 |-5|Invalid UTF-8 string
2359 |-6|Null pointer parameter
2360 |-7|Topic name is truncated
2361 |-8|Wrong protocol structure body
2362 |-9|Wrong QOS.  (0, 1, 2) is acceptable.
2363 |-10|Attempt to use a non-SSL library for SSL connection
2364 |-11|Wrong MQTT version
2365 |-14|Wrong protocol type
2366 |-15|Option is not suitable for the current request version
2367 |-16|Call MQTT version that is not applicable to request.
2368 |-17|0 length topic connection
2369
2370 **Buffer usage address: (Total length: 1 word)**
2371
2372 Unsuccessful published message will be stored in memory as cache, with a maximum 100,000 messages or 2M. Value display as unit %, and it is carried unconditionally.
2373
2374 HDWn: Display buffer usage.
2375
2376 **Control address: (Total length: 194 words)**
2377
2378 HDWn: Control the execution or stop of [MQTT Server].
2379
2380 |Value|Description
2381 |0|Ready
2382 |1|Start
2383 |2|Stop
2384 |3|Update
2385
2386 HDWn+1: Port number of the Huawei Cloud.
2387
2388 HDWn+2: Domain name of the Huawei Cloud.
2389
2390 HDWn+66: DeviceSecret of the Huawei Cloud.
2391
2392 HDWn+130: DeviceSecret of the Huawei Cloud.
2393
2394 **TLS/SSL Settings**
2395
2396 (% style="text-align:center" %)
2397 [[image:44.jpg]]
2398
2399 **Enable:** Enable TLS/SSL encryption. User can manually select encrypted versions of TLS 1.0, TLS 1.1, or TLS 1.2.
2400
2401 **Server authentication:**
2402
2403 Enable: Verify whether the server certificate has been certified by a Certificate Authority Certificate (CA). Server certificates are sent by the server when connection is established.
2404
2405 Import: Select CA certificate to import.
2406
2407 More: After the import is successful, clicking it will display the certificate details.
2408
2409 Reset: Reset the import information.
2410
2411 The server name must match the certificate information: Verify whether the server name or IP matches with the information in the certificate. Domain name and IP are recorded in the Subject Alternative Name from certificate.
2412
2413 **Client authentication:** The private key and client certificate are the data required for the server to authenticate the client end.
2414
2415 Certificate:
2416
2417 Import: Select certificate to import.
2418
2419 More: After the import is successful, clicking it will display the certificate details.
2420
2421 Reset: Reset the import information.
2422
2423 Key:
2424
2425 Import: Select the key to import.
2426
2427 More: After the import is successful, clicking it will display key details.
2428
2429 Reset: Reset the import information.
2430
2431 **MQTT Topic**
2432
2433 **MQTT topic publish**
2434
2435 Select [Topic publish], click [Add], enter [Add MQTT topic publish object], and set the general settings and address. The maximum number of MQTT published topics is 255.
2436
2437 (% style="text-align:center" %)
2438 [[image:45.jpg]]
2439
2440 **General properties**
2441
2442 (% style="text-align:center" %)
2443 [[image:46.jpg]]
2444
2445 **Alias:** Set the project name of the MQTT theme. Maximum input length: 255 characters, cannot be empty.
2446
2447 **Topic:** The topic received by the MQTT server when sending message. Maximum input length: 255 characters, cannot be empty.
2448
2449 **Sending mode:** **(AUTO/TRIGGER)**
2450
2451 **① AUTO **value change mode: When any value changes, MQTT message is published.
2452
2453 a. Minimum time interval between messages: The minimum time interval can be set between messages to avoid over-publishing MQTT messages. When the interval of value change is less than the minimum time interval between messages, the message will be put in the cache. The MQTT message will not be published until the minimum interval between messages is met. Range: 0~~3600000ms.
2454
2455 b. Periodic mode: Publish MQTT message by the fixed time. Time interval: Set the time interval for periodic publishing, ranging from 1 to 3600s.
2456
2457 **② TRIGGER**
2458
2459 When the specified bit is triggered, the MQTT message is published. When HDX0.0 changes from OFF to ON, an MQTT message is published, and HDX0.0 is automatically set to OFF after publishing.
2460
2461 **Compression type:** Message is compressed before it is transmitted. The compressed message needs to be decompressed before the MQTT client reads it. Zlib, Gzip, or Deflate algorithm can be chosen to compress or decompress the message.
2462
2463 **QoS:** MQTT provides three levels of reliability called service quality. The service quality of message transmission determines whether the message is guaranteed to be delivered.
2464
2465 0: Messages are sent only once, and delivery is not guaranteed.
2466
2467 1: Message must be delivered at least once.
2468
2469 2: Message is delivered just once.
2470
2471 **Retain message:** When checked, the MQTT server will keep the latest message.
2472
2473 **Content format:**
2474
2475 Raw data: Data composed of BYTE data.
2476
2477 JSON (General): Put all data in JSON format of member "d".
2478
2479 JSON (Advanced): JSON format of flexibly customizable nested structure.
2480
2481 **Include timestamps:** This function is only supported when the content format uses [JSON (General)], and whether to include the timestamp can be decided manually.
2482
2483 **Use the top "d" symbol in the message format:**
2484
2485 This function is only supported when the content format uses [JSON (General)]. When checked, the message format is as follows:
2486
2487 {
2488
2489 "d": {
2490
2491 "addressName1": ...,
2492
2493 "addressName2":...
2494
2495 },
2496
2497 "ts":...
2498
2499 }
2500
2501 When unchecked, the message format is as follows:
2502
2503 {
2504
2505 "addressName1": ...,
2506
2507 "addressName2":...,
2508
2509 "ts":...
2510
2511 }
2512
2513 As shown above, when unchecked, ts and address names are both key at the same level. Therefore, avoid taking the address name as ts.
2514
2515
2516 **Address setting**
2517
2518 ①Address settings when content formats use [Raw Data] and [JSON (General)].
2519
2520 (% style="text-align:center" %)
2521 [[image:47.jpg]]
2522
2523 **Add:** Establish the address source of the topic. The length of each address can be set separately.
2524
2525 **Delete:** Delete the address.
2526
2527 **Settings:** Modify the address and name.
2528
2529 (% style="text-align:center" %)
2530 [[image:48.jpg]]
2531
2532 **Included in all message sent**
2533
2534 Check the options: This topic will include this address every time it publishes a message.
2535
2536 Uncheck the options: When the sending mode is value, message is published only when the value of the address changes.
2537
2538 **Remove JSON array brackets' ['and'] ':**
2539
2540 Check the options: Remove the array symbol name when using non-array bits or characters.
2541
2542 **✎Note: A topic can be configured up to 255 nodes. The name length of a node can be configured up to a maximum of 255 characters and cannot be empty.**
2543
2544 ② Address setting when the content format uses [JSON (Advanced)]. [JSON (Advanced)] supports nested structure, which can use components, arrays and other forms. Timestamps and data names can also be customized, which is a more flexible design method.
2545
2546 (% style="text-align:center" %)
2547 [[image:49.jpg]]
2548
2549 The above figure is an example. If setting like above figure, the subscription side will receive the MQTT message like following format.
2550
2551 {
2552 "object": {
2553 "value": "teststring",
2554 "value (1)": 123,
2555 "value (2)": true,
2556 "value (3)": "",
2557 "value (4)": 0,
2558 "value (5)": true
2559 },
2560 "array": [
2561 10,
2562 20,
2563 30
2564 ],
2565 "value (6)": " 2023-04-27T03: 53: 20.156271 "
2566 }
2567
2568 **New component:** Add a new data component. Components can have multiple data formats; each data format has its own Name and Value. The data of the component is included in braces {}.
2569
2570 **New value:** Add a value, string, or timestamp. When it is a value or a string, data can be read for a fixed value or from a specified address.
2571
2572 **Delete:** Delete the selected field.
2573
2574 **Settings:** Modify the selected field. If the selected fields are components and arrays, only the names can be modified. But components and arrays include values that can modify parameters.
2575
2576 **Template:** Paste the JSON text, and the system will automatically arrange the schema to conform to this JSON format, saving the time of self-definition.
2577
2578 **Preview:** Preview JSON data in an easy-to-read format.
2579
2580 **✎Note: A Topic can be up to 512 nodes (including payload), and a node name can be configured to be up to 255 characters length.**
2581
2582
2583 **Security settings**
2584
2585 The topic is published only when the register status matches the setting. As shown in the following figure, this topic will not be published until the address HDX0.0 is set to ON.
2586
2587 (% style="text-align:center" %)
2588 [[image:50.jpg]]
2589
2590
2591 **MQTT topic subscription**
2592
2593 Select [Topic subscription] and click [Add] to enter general property settings and address settings. The maximum number of MQTT subscription topics is 255.
2594
2595 (% style="text-align:center" %)
2596 [[image:51.jpg]]
2597
2598 **General properties**
2599
2600 (% style="text-align:center" %)
2601 [[image:52.jpg]]
2602
2603 **Alias:** Set the project name of the MQTT theme. Maximum input length: 255 characters, cannot be empty.
2604
2605 **Topic:** Topics subscribed from the MQTT server. Maximum input length: 255 characters, cannot be empty.
2606
2607 **Compression type:** The transport compression type of a subscription topic must be the same as that of a publication topic.
2608
2609 **QoS:** MQTT provides three levels of reliability called service quality. The service quality of message transmission determines whether the message is guaranteed to be delivered.
2610
2611 0: Messages are sent only once, and delivery is not guaranteed.
2612
2613 1: Message must be delivered at least once.
2614
2615 2: Message is delivered just once.
2616
2617 **Content format:**
2618
2619 Raw data: There is no original data in a specific format.
2620
2621 JSON (General): JSON format of single-layer structure.
2622
2623 JSON (Advanced): JSON format of flexibly customizable nested structure.
2624
2625 **Verify timestamp:** The user can decide whether to verify the timestamp or not. When checked, it indicates that the received data timestamp must be strictly incremented before it can be updated. Otherwise, it will be judged as outdated data and not updated.
2626
2627 **Use the top "d" symbol in the message format:**
2628
2629 This function is only supported when the content format uses [JSON (General)]. When checked, the message format is as follows:
2630
2631 {
2632
2633 "d": {
2634
2635 "addressName1": ...,
2636
2637 "addressName2":...
2638
2639 },
2640
2641 "ts":...
2642
2643 }
2644
2645 When unchecked, the message format is as follows:
2646
2647 {
2648
2649 "addressName1": ..., "addressName2":...,
2650
2651 "ts":...
2652
2653 }
2654
2655 Please select the appropriate settings according to the data source.
2656
2657 **Address setting**
2658
2659 ①Address settings when content formats use [Raw Data] and [JSON (General)].
2660
2661 (% style="text-align:center" %)
2662 [[image:53.jpg]]
2663
2664 **Add:** Establish the address where the data is placed after the topic is subscribed. The length of each address can be set separately.
2665
2666 **Delete:** Delete the address.
2667
2668 **Settings:** Modify the address and name.
2669
2670 (% style="text-align:center" %)
2671 [[image:54.jpg]]
2672
2673 **Remove JSON array brackets' ['and'] ':**
2674
2675 When using non-array bits or characters, array symbol can manually be removed.
2676
2677 **✎Note: A topic can be configured up to 255 nodes. The name length of a node can be configured up to a maximum of 255 characters and cannot be empty.**
2678
2679 ② Address setting when the content format uses [JSON (Advanced)]. [JSON (Advanced)] supports nested structure, which can use components, arrays and other forms. Timestamps and data names can also be customized, which is a more flexible design method.
2680
2681 (% style="text-align:center" %)
2682 [[image:HMIEditor_Db5tLtioq7.jpg]]
2683
2684 **New component:** Add a new data component. There can be multiple data formats in a component, each with a name and a value. The data of the component is included in braces {}.
2685
2686 **New Array:** Add a new data array. Arrays can have multiple data formats, but only one name. The data of the component is included in brackets [].
2687
2688 **New value:** Add a value, string, or timestamp. When it is a value or a string, data can be read for a fixed value or from a specified address.
2689
2690 **Delete:** Delete the selected field.
2691
2692 **Settings:** Modify the selected field. If the selected fields are components and arrays, only the names can be modified. But components and arrays include values that can modify parameters.
2693
2694 **Template:** Paste the JSON text, and the system will automatically arrange the schema to conform to this JSON format, saving the time of self-definition.
2695
2696 **Preview:** Preview JSON data in an easy-to-read format.
2697
2698 **✎Note: A Topic can be up to 512 nodes (including payload), and a node name can be configured to be up to 255 characters length.**
2699
2700
2701 **Security settings**
2702
2703 The topic is published only when the register status matches the setting. As shown in the following figure, this topic will not be published until the address HDX0.0 is set to ON.
2704
2705 (% style="text-align:center" %)
2706 [[image:56.jpg]]