I think I have all bugs fixed. I added INI for messages and embedded variables.
Here's the app:
https://drive.google.com/file/d/1GqH4FxCVq8GCQGnNjzITB7D-E_7L0I2W/view?usp=sharingIf anyone needs a write up on this control, please let me know. I don't want to spend time on something that won't get used, but I can make one if it will help someone. The basic premise is you have state collections and embedded collections. If you want to use a PLC value in a state, like time, pressure, temperature, etc., you add this address to the embedded collection. You only need to add the name. You never need to worry about the value. The data type only becomes an issue when dealing with custom length strings in CpLX/CLX. If you need to use a custom length string, which is basically anything other than 82 characters, you will select partial string. All other times you can enter any data type, as of right now I'm only looking for partials. The order in which you enter embedded variables is how you reference them in the states, starting at 0. So, the first embedded variable is referenced by typing {#0}. The next variable is {#1}, and so on. It needs entered exact. This, { #1} will not work. You can reference these variables many times in the same state, or other states. For example, the first state message can be, "Step 1 on wash cycle, water temp = {#0}, time remaining = {#1} seconds". I could also enter, "Step 1 on wash cycle, water temp = {#0}, time remaining = {#1}, by the way water temp = {#0}". If you want to use the value of the control itself, you can enter {#Me}. There are slight differences between the multistate and analog, the main difference being one allows an entry.
James