Why isnt the "Text area position" within my mulit-state switch retained?

Why isnt the "Text area position" within my mulit-state switch retained?
none 0.0 0
  • HMI Model: CMT-3162x
  • EasyBuilder Pro Version: V6.08.01.350 Build 2023.01.11

I have a Multi-State Switch that has 108 states. Under the Label section, the “Text area position” does not save when I exit the properties menu. The first 8 states always save to “Horizontal: Left” and “Vertical: Center”. But states 9-108 always revert to “Horizontal: Center” and "Vertical: Custom Position.

I tried manually changing different states and using the “Duplicate these attributes to Every State”.
I closed the program, restarted my PC, and updated to a newer version of the program. No change.

I do not have this problem with the 3 other Multi State Switches that I use that have around 20-25 states.

I tried reducing the total number of states from 108 down to 50 states. This allowed my first 12 states to now save rather than just 8. I kept reducing my total states until I got to 28, now every state will save its “Text area position”.

Please let me know if there is a work around. Thanks.

I can duplicate this issue. I will send this over to our developers.


Related to this topic, is there a way to embed PLC tags into my text? I want to display timers at different intervals during my state machines progression. I did this by writing out the text in my state machine, then writing an object “If Condition” that is active when in that particular state, then placed a “Numeric Object” roughly where the text ends and giving it a hide when disabled security that corresponded to the state I wanted it to appear in.
This is the main reason I need the text to align to the left. So I can place the timers correctly.
But if there is a way where I can embed these timers into the text (similar to Factory Talk View Studio) it would be much easier to set up as well as edit and troubleshoot in the future.

Hi @agoodman,

Currently, a numeric value cannot be embedded into a label unless you use “Customized” display format but this does not allow for a label to be dynamic. One potential solution would be to manage state changes using a Macro instead of “Multi-State Switch”. Here is an example:

  1. Define a macro similar to the following to handle state changes and text output:
    Note: An “ASCII” object will be used to output the current text.

  2. Within this example the “state” is determined by LW-0, however, this should be determined by the address assigned to the “Multi-State Switch” within your project:

  3. Create an “ASCII” object to display the text defined within the macro:

  4. Ensure that the alignment of the ASCII object is as desired:

  5. Create a second macro to convert the numeric value of the timer into text. Set this value in one of the next word registers after the text:
    Note: For example, state 0 within the macro defined in step 1 is 10 characters long. This will consume 5 word register meaning the next consecutive register is LW-6.

  6. Here is an example of the output produced by these two macros, where the ASCII object in front of “Display” shows the time and label concatenated:

Note: The macros described above should be set to run periodically.

If you would like any additional information related to this method, please let me know.

There is a limitation in EBpro v6.08.01, causing the “Text Area Position” issue.
If the states are greater than 27, the position settings in the last state will start to go wrong.

This issue will be resolved in the next EBpro revision, which is V6.08.02. Unfortunately due to the software framework this patch won’t be included in EBpro v6.08.01.