Wiki source code of 06 Data Tool

Version 37.3 by Mora Zhou on 2023/09/07 16:30

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