Got it. Just incase any one else comes across this.... GVLP.iBatchID := GVLP.iBatchID + 1; GVLP.wsBatchID := WConcat("0000", INT_TO_WSTRING(GVLP.iBatchID)); GVLP.wsBatchID := WRight(GVLP.wsBatchID,5); GVLP.wsBatchID := WConcat("RUNA",GVLP.wsBatchID);
So I've had some more thoughts on this and I am wondering if commands exist that will let me do this.... Take the iBatchID Integer and concat together "0000" and iBatchID to get "0000###". Then is there a command where I can take just the 5 characters from the Right of this? Thus removing the excess leading 0's? Then I can use another concat to put "RUNA" in front of it. Obviously I know concat is there, but is there a command that will allow me to just select the 5 characters from right to left...
I may not be following what youre trying to explain and I apologize if that is the case. What I have found is... if I create a text block on my VISU and set the text to "RUNA%05d" then set the text variable to "GVLP.iBatchID", this outputs exactly what I need "RUNA0001, RUNA0002, etc.". I just don't know to get that string into a Variable that I can use elsewhere. It would be great if I could use the concat and somehow tell it to use the format %05d for the Integer when concat'ing.
I have to be missing something here. I am unsure what output I should be getting from the StuSprintfW function.
"Why is your batchid a real, if you only have integer values?" because I don't necessarily know EXACTLY what I'm doing. How would that logic be modified if I were to use Integer rather than Real?
I am working on a project where I am trying to create a default string that is "RUNA#####", where ##### starts at "0001" and increments based on some other logic. I am able to make this work using the logic: GVLP.rBatchID := GVLP.rBatchID +1; GVLP.wsBatchID:= WConcat("RUNA",REAL_TO_WSTRING(GVLP.rBatchID)); The problem I am having it getting the RealValue to always be 5 Digits. Has anyone tried to do this and/or have any tips what I can try to get this to work??
I have been messing around inside the Alarm Manager and have not been able to come up with the solution I am looking for. I am looking for a method to come up with a BOOL tag that is enable whenever ANY Alarm is Active as well as a second BOOL tag that is active whenever an UNACKNOWLEDGED Alarm is active. The theory here is I want to have an Alarm Buzzer sound and a Red Light Flash whenever there is an unacknowledged alarm. When all Alarms are acknowledged, but there is still an active alarm, the...
Sorry for the delay in getting back to you, got buried in a bunch of other work. I looked over what you did, but I ended up sticking with the multiple frame approach. Only for the fact that with the multiple frames, I can set limits when I use "Write Variable" input.
I think I have a viable workaround for this. I created 15 separate visualizations that have all of the text blocks linked to the exact variable that I need them on. For the main InputAdjust screen, I placed a frame with all 15 Visus in them and used "GVL.iTCSelect - 1" as the "Frame Switch Variable". Seems to be doing exactly what I need it to.
This'll be interesting. I'm sure there are going to be a ton of library errors when you open this. What I am looking at is.... Visualizations -> Maintenance -> Maint_InputAdjust Functions -> TCCalTextVariable The intended operation is that when an operator selects a value from the ComboBoxInteger (GVL.iTCSelect) on InputAdjust Screen, the "Text Variable" from all of those (24) Text Boxes needs to change based on the value of the combo box integer. The way the case is written in TCCalTextVariable...
I should probably add this is my first Codesys project. So I do not know all the real ins and outs when it comes to versions. my PLC came with the installer for 3.5 SP9 Patch 6, so its all I know to use. I am able to open you project and see how you are using the Function to set the strong for Text Variable. One last (I hope) follow up. I need to change the Text Variable on 24 Rectangle Entities. The Function seems to only want to let me change 1 Variable. do I have to create 24 separate functions...
Of course I cannot open your project. I am assuming this is because I am not using the most current version of Codesys. The PLC that I am using requires me to use Codesys 3.5 SP9 Patch 6.
I have to think there is a way to do this, but I cannot make it work. I have a Visu screen with a bunch of Rectangles being used for text entry. There is a combo box that will allow the operator to switch between 15 different input location. See attached image. So, let's just look at the Top Left Rectangle. What I am trying to make happen is: If the ComboBox Integer value = 1, then the Rectangle Text Variable = GVLP.arSPCal2TC.rX If ComboBox = 2, Text Variable = GVLP.arSPCal3TC.rX if ComboBox = 3,...