This TechTip is about using "StringCat" in a Weintek HMI macro. You may already be familiar with using CONCAT in Microsoft Excel to link different text strings together to form a new string, this is what StringCat does. In this example, we'll be looking at a scenario where a number needs to be joined to a 4 character ASCII string. For example "number "+ "text" = "outputstring". i.e. 1234+ABCD = 1234ABCD
First off, we'll declare the variables, we have "number" (which we'll get from an HMI LW register LW0), "text" which we'll get from LW2 (2 words - 4 characters) and the result will end up in "outputstring".
macro_command main()
// Declare variables
short number // Declare the number variable
char text[4] // Declare the text suffix variable
char outputstring[8] // Declare the destination string
next... we'll clear "outputstring" - this is important because if we enter "1234" + "ABCD" and do not clear "outputstring" we may end up with 12ABDCDC if we enter "12" + "ABCD":
FILL(outputstring[0], 0, 4) // clear outputstring
SetData(outputstring[0], "Local HMI", LW, 100, 10) // Clear LW100
Get the ASCII input and put it in "text":
GetDataEx(text[0], "Local HMI", LW, 2, 4) // Get the ASCII input from LW2
Get the Numeric input and put it in "number":
GetData(number, "Local HMI", LW, 0, 1) // Get "number" input from LW100
The number is in binary (BIN) format Convert so needs converting so our resulting string is ASCII:
StringBin2DecAsc(number, outputstring[0]) // Convert "number" to ascii and put in "outputstring"
This is where we use StringCat to join "text" and "outputstring"(which at the moment contains the number, converted to ASCII)
StringCat(text[0],outputstring[0]) // Concatenate text and "outputstring" so outputstring is ####TEXT
Finally, we set LW100 with the string that we have generated in "outputstring":
SetData(outputstring[0], "Local HMI", LW, 100, 10) // Put the concatenated result "outputstring" into LW100
end macro_command
All together this should look like this:

There is an example program for you to download here.
