Get and set coordinates of given element?
CODESYS Forge
talk
(Thread)
Get and set coordinates of given element?
Last updated: 2021-01-27
Post by timvh on VisuElems.CurrentUserGroupId is not stable
CODESYS Forge
talk
(Post)
I'm not sure what you are trying to do, but getting the CurrentUserGroupID like this will not work, because there could be multiple Visualization Clients and each can have a different user that is logged in. Also when you go online with CODESYS and open an Visualization, this is counted as a client. Probably this is the reason you see it changing. What you can to is "iterate" over all clients and then see which user is logged in on which visualization Client. For this you need to add the Visu Utils library to the project and call the FbIterateClients. See https://content.helpme-codesys.com/en/libs/Visu%20Utils/4.4.0.0/VisuUtils/VisuActionUtilities/Function-Blocks/FbIterateClients.html fbClientIteration( xExecute := x_Execute, itfClientFilter := VU.Globals.AllClients, itfIterationCallback := fbIterator, xDone => x_Done, xBusy => x_Busy, xError => x_Error, eError => e_Error); The fbIterator, in the example above, should be an instance of an FB which you have created yourself and this must implement VU.IVisualizationClientIteration. For example: FUNCTION_BLOCK FB_ITERATOR IMPLEMENTS VU.IVisualizationClientIteration Then automatically the corresponding methods will be called. In the HandleClient Method, you will get an interface to the client(s) and then you can get the current user through this interface: itfClient.UserGroupId You can also get the UserName: itfClient.UserName
Last updated: 2023-11-14
Post by yannick on Alarm Configuration Notification Action
CODESYS Forge
talk
(Post)
Hello, I'm trying to configure an alarm variable that changes to True when an error is activated. Unfortunately, the variable is not changing to True. I'm using Codesys V3.5 SP19 Patch7 + Raspi Pi 5. Thanks.
Last updated: 2024-05-13
Post by matthew on New Ladder Diagram conversion does not work due to missing features
CODESYS Forge
talk
(Post)
Thanks for the update, Since you can't double click is there another way to enter the FB when online and see the running code of that instance? When can we expect to see v1.0?
Last updated: 2024-01-31
Config of Channels on PLC became corrupt without an apparent reason
CODESYS Forge
talk
(Thread)
Config of Channels on PLC became corrupt without an apparent reason
Last updated: 2022-05-25
how does the evaluation of the <condition> in an IF-statement work?
CODESYS Forge
talk
(Thread)
how does the evaluation of the <condition> in an IF-statement work?</condition>
Last updated: 2020-02-20
Don't show any list of parameters an setting sof any device
CODESYS Forge
talk
(Thread)
Don't show any list of parameters an setting sof any device
Last updated: 2020-07-13
PFC200 license, getting the WibuCmRaU-file of an already activated license
CODESYS Forge
talk
(Thread)
PFC200 license, getting the WibuCmRaU-file of an already activated license
Last updated: 2017-08-08
Get Deviceaddress of CPU via Python an Login via Test Manager
CODESYS Forge
talk
(Thread)
Get Deviceaddress of CPU via Python an Login via Test Manager
Last updated: 2017-03-14
Periodic Collection of Value at Any Time From an Ever-Changing Value
CODESYS Forge
talk
(Thread)
Periodic Collection of Value at Any Time From an Ever-Changing Value
Last updated: 2019-03-23
Use of front Ethernet port on beckhoff CX2040 as an EtherCAT master
CODESYS Forge
talk
(Thread)
Use of front Ethernet port on beckhoff CX2040 as an EtherCAT master
Last updated: 2021-04-29
Function block with an array of unknown size as a VAR_IN_OUT
CODESYS Forge
talk
(Thread)
Function block with an array of unknown size as a VAR_IN_OUT
Last updated: 2017-03-07
Problem with exporting symbols of reference variables
CODESYS Forge
talk
(Thread)
Problem with exporting symbols of reference variables
Last updated: 2017-04-03
Post by docker on Webvisu client connection monitoring
CODESYS Forge
talk
(Post)
Hi mate, With this snippet i was able to see the lastusage variable count, but it would not iterate between clients? i was only able to access the data of the target visu. it threw an error with the array of pointers stating it was not able to convert etc. also when i tried it with the while loop it created an endless loop and crashed the program. any ideas? Thankyou
Last updated: 2024-09-10
Post by donm on Regarding trend storage access error
CODESYS Forge
talk
(Post)
i have created a project which contain 30 trend and suddenly trend recording is not working. its showing an error 30437."Determination of root pages for recording did not work for 'screen', error:30437" how to solve this issue?
Last updated: 2024-05-27
Post by donm on trend storage access error
CODESYS Forge
talk
(Post)
i have created a project which contain 30 trend and suddenly trend recording is not working. its showing an error 30437."Determination of root pages for recording did not work for 'screen', error:30437" how to solve this issue?
Last updated: 2024-05-27
Post by anoori on Setting up Raspberry pi as an Opc ua Server with UaExpert as Client
CODESYS Forge
talk
(Post)
I am trying to set up my Raspberry Pi as an OPC UA server and use UaExpert on my Pc as the OPC UA client.However, Im encountering some certificate-related errors in UaExpert: 1.Unable to get local issuer certificate. 2. Unable to get certificate CRL. 3. Unable to verify the first certificate.
Last updated: 2024-09-11
Post by anoori on setting up Raspberry pi as an opc ua Server with UaExpert as Client
CODESYS Forge
talk
(Post)
I am trying to set up my Raspberry Pi as an OPC UA server and use UaExpert on my Pc as the OPC UA client.However, Im encountering some certificate-related errors in UaExpert: 1.Unable to get local issuer certificate. 2. Unable to get certificate CRL. 3. Unable to verify the first certificate.
Last updated: 2024-09-11
Post by cer-wa on Not able to connect multiple profinet encoder in codesys Linux ARM64
CODESYS Forge
talk
(Post)
Hello, currently im working with a RevPi connect 5 on a codesys project. Up until now I was having a blast because things were going really smooth but for like almost a day im kind of stuck on the integration of multiple profinet sensors into my project. This is kind of a bummer because that should be an easy thing to do. What I tried so far was to create and additional ethernet adapter where I then tried to connect my devices. in the beginning I tried to connect the devices directly which was not working because I could assign the IP-adress only to the ethernet adapter and not to the devices but the device was found in the device repository (this gets important in the second part) So what I tried next was to setup a PN-Controller and connect my devices subsequently to the Controller. Sadly now the devices wont show up in the device repository anymore. To me its not clear why this is happening. And the worst thing is: I went ahead and setup a device completely like I would want to have it in the project and when I then click on scan devices I can even find the device. But it can not be added to project for whatever reason eventhough im 100% certain that the gsdml file is the correct one. Can anyone help me with this. Like I said this seems like an easy thing to do and its taking me way longer than expected already. The only thing that came to my mind why this might not work is because I have codesys license which only allows one profinet instance. Could that be the case? The error message seems then pretty unfit but ok. I will be grateful for every advice. Thanks in advance! Best regards!
Last updated: 2025-09-25
Post by timvh on How to implement an interface (IElement)?
CODESYS Forge
talk
(Post)
See: https://forge.codesys.com/prj/codesys-example/element-collect/home/Home/ This contains an application "OnlineChangeSafeLinkedListExample". What you should do is create a new interface which has your "Priority" property. Then your FB should extend the base element function block and implement your own interface: E.g. FUNCTION_BLOCK MyElement EXTENDS COL.LinkedListElementBase IMPLEMENTS I_MyInterface Then the __QUERYINTERFACE does the magic to check if your "element" also implements your interface. Something like this: // Compares this element with itfElement. // Returns 0 if the elements are equal, < 0 if the element is less than itfElement, // > 0 if the element is greater than itfElement. // This method will be called from sorted collections (e.g. |COL.SortedList|) to sort the elements. // IMPORTANT: The underlying value to be compared with MUST NOT be changed during the lifecycle of the object. METHOD ElementCompareTo : INT VAR_INPUT (* The element to compare*) itfElement : COL.IElement; END_VAR VAR itfIntElement : I_MyInterface; xResult : BOOL; END_VAR // We use integer iInt1 for sorting. xResult := __QUERYINTERFACE(itfElement, itfIntElement); IF xResult THEN IF iInt1 < itfIntElement.Priority THEN ElementCompareTo := -1; ELSIF iInt1 > itfIntElement.Priority THEN ElementCompareTo := 1; ELSE ElementCompareTo := 0; END_IF ELSE ElementCompareTo := -1; END_IF
Last updated: 2024-07-22
Post by awatson on User Management - REFERENCE TO VisuUserMgmtProvider
CODESYS Forge
talk
(Post)
Hello Guys I have IFM CR1140 screens that I want to use the basic user management Elements on - But I am trying to figure out where I am going wrong with the References "REFERENCE TO VisuUserMgmtProvider" The Device will look after the security itself - I have enabled the User Management in Visualization Manager and added an admin user to the device and sync'd.
Last updated: 2023-11-17
Post by tvm on multiply gives negatives
CODESYS Forge
talk
(Post)
It's probably because you have an INT in the input to the MUL function, which will then try to output an INT as well. INT variables can only handle values of -32768 to 32767. Your value of 523000 won't fit in an INT, so it turns into an invalid number. Use a DINT. This is usually better for working with time values anyway, because time values are all 32 bit. Or if you can't, use INT_TO_DINT(gvlp.detectie_nalooptijd_s) in the input to the MUL function.
Last updated: 2024-01-04
Post by simotion on Pointer to Softmotion axis
CODESYS Forge
talk
(Post)
In my projet I use Softmotion. There are several Softmotion axis (type SM_Drive_Virtual). In the Global Variable List I have an array of pointers to the adress of the Axis. Axis : ARRAY[1..iMaxCntAxes] OF POINTER TO AXIS_REF_SM3 := ADR(AX01_Axis), // [1 ADR(AX02_Axis), // [2] This works, but when compiling I get the message : . [WARNING] E3D: GVL Device: PLC Logic: Application: C0564: A reference to uninitialized variable AX01_Axis is used for initialization of Axis. Accessing the uninitialized variable may result in unexpected behavior. [WARNING] E3D: GVL Device: PLC Logic: Application: C0564: A reference to uninitialized variable AX02_Axis is used for initialization of Axis. Accessing the uninitialized variable may result in unexpected behavior. Is there a way when initializing to force the hardware (softmotion axis) to first initialize and then the Global Variable List?
Last updated: 2023-10-25
Post by aarondw10 on Use element properties
CODESYS Forge
talk
(Post)
Assume I have a rectangle named rec1 from which I want to use the coordinates of the upper left corner. Is there a way to links these X and Y values from the properties to an integer defined in the main program? Note that I just want to use them and not change any of these coordinates in the program.
Last updated: 2024-02-29
Servo motor as an slave and AC motor as an Mster
CODESYS Forge
talk
(Thread)
Servo motor as an slave and AC motor as an Mster
Last updated: 2025-07-14
To search for an exact phrase, put it in quotes. Example: "getting started docs"
To exclude a word or phrase, put a dash in front of it. Example: docs -help
To search on specific fields, use these field names instead of a general text search. You can group with AND or OR.