Bitwise access to a visualization placeholder reference
CODESYS Forge
talk
(Thread)
Bitwise access to a visualization placeholder reference
Last updated: 2011-10-12
HMI access to REFERENCE type variables
CODESYS Forge
talk
(Thread)
HMI access to REFERENCE type variables
Last updated: 2020-12-19
Property that returns REFERENCE TO Interface type?
CODESYS Forge
talk
(Thread)
Property that returns REFERENCE TO Interface type?
Last updated: 2021-11-23
Translation - How to get text as reference in Frames translated?
CODESYS Forge
talk
(Thread)
Translation - How to get text as reference in Frames translated?
Last updated: 2024-01-03
Post by open on (no subject)
CODESYS Forge
talk
(Post)
Hello, I want my button to be attached image ON_Good when variable true but however when i copied the visualization object into a new visualization screen it become attached image ON_Bad. Anyone know how to make it attached image ON_Good? Warmest regards,
Last updated: 2024-09-03
Post by micik on ERR_OK not recognized
CODESYS Forge
talk
(Post)
Hello, if I try to use ERR_Ok in my code to check whether the file is open correctly or not, I get an error "Identifier ERR_OK not recognized", I can use plain 0 (zero) instead. But in general, is this a proper way to check for success of file operation since the 4th parameter is a poinmter to RTS_IEC_RESULT, and normally I would expect this to be used somehow. _hFile := SysFileOpen(_sFileName, am:=SysFile.ACCESS_MODE.AM_WRITE, ADR(_result)); IF _result <> 0 THEN udDiag := 100; RETURN;
Last updated: 2024-08-17
Post by lbouchard on CANOpen SIL2 error: UNSAFESTACK_NOT_OPERATIONAL
CODESYS Forge
talk
(Post)
Hello, Working in 3.5 SP11 32 bit and using the 3S CANopenSafety Slave 3.5.11.0 library on an IFM CR711S. The 3SCSSD.CANOpenDevicesSIL2 function block keeps throwing "UNSAFESTACK_NOT_OPERATIONAL" Additionally, the Status of the device gives "There was an error accessing an I/O parameter". Any ideas on where my issues may lay? I have not found any good documentation that would explain the issue.
Last updated: 2025-05-23
Post by hammer on Cartesian XY Chart β 2-D array binding: "Element to use" enumerates the wrong dimension
CODESYS Forge
talk
(Post)
Title: Cartesian XY Chart β 2-D array binding: "Element to use" enumerates the wrong dimension; documented example (Dialog: XY Chart Configuration, "Two-dimensional array of base type REAL") appears transposed Product / version: CODESYS Development System V3.5 SP21 Patch 40 (3.5.21.40). Cartesian XY Chart visualization element (System_VisuElemXYChart / VisuElemXYChart). Summary: When a curve's Data X/Data Y is bound to a two-dimensional array, the element treats the last array dimension as the per-point record (the one selected by "Element to use") and iterates the first dimension as the sequence of curve points. The online documentation's worked example has the dimensions in the opposite order, so following it produces a non-functional curve and a nonsensical "Element to use" list. Steps to reproduce (fails β matches the documented layout): 1. Declare aData : ARRAY[0..1, 0..4095] OF LREAL; (2 data sets Γ 4096 points, i.e. first dimension = set, second = point). 2. In XY Chart Configuration, bind a curve's Data X (and Y) Variable to this array. 3. Observe the "Element to use" combobox. Actual result: The "Element to use" combobox lists 4096 entries (the indices of the second dimension) instead of 2 (the data sets in the first dimension). Selecting a row does not produce the expected curve; at most a single/degenerate point is plotted. Steps to reproduce (works β transposed): 1. Declare aData : ARRAY[0..4095, 0..1] OF LREAL; (points first, set second). 2. Bind Data X/Y to this array; "Element to use" now correctly lists [0] and [1]. 3. Populate aData[point, set] and the curve plots as expected. Expected result: Either the documented example should select the data set from the first dimension (as its [1]/[2] "Element to use" implies), or the documentation should state that the last dimension is the record dimension (stride) and the first dimension is the point sequence β consistent with how the element actually behaves. Analysis: The behavior is self-consistent if the element always walks a single array by a fixed byte stride, reading one element per point β the same mechanism as the documented "one-dimensional array of a DUT" case, where it strides by SIZEOF(DUT) and "Element to use" picks the member offset. For a 2-D array the record is the last dimension: to plot column/set c it starts at [0, c] and strides by the last-dimension length to reach [1, c], [2, c], β¦ (row-major layout makes this a contiguous column walk). Under that rule, ARRAY[0..N, 0..1] is correct (record length 2 β "Element to use" [0]/[1]), and the documented ARRAY[1..2, 1..50] with "Element to use" [1]/[2] is transposed. Documentation reference: Dialog: XY Chart Configuration β Data X / Data Y β "Example: Two-dimensional array of the base type REAL" (ARRAY[1..2, 1..50], Element to use [1]/[2], "100 array values are displayed"). This example does not plot as described in 3.5.21.40; transposing to ARRAY[1..50, 1..2] does. Request: Please confirm whether this is (a) a documentation error (example dimensions reversed) or (b) an element defect (combobox enumerates the wrong dimension). Either way, a corrected example plus an explicit statement of which dimension is the point sequence vs. the record/stride dimension would prevent others from hitting this. Two separate 1-D arrays for Data X and Data Y work correctly and are unaffected.
Last updated: 2026-08-14
Post by smic on put the Port number 80808 in Instance Setting of Deploy Control SL
CODESYS Forge
talk
(Post)
I am using CODESYS V3.5 SP20 Patch 5. I am trying to use the Webvisu function on a PLC running on Docker. When I enter the port value 8080:8080 in the Instance Setting in Deploy Control SL, it is not saved. Can you please help me?
Last updated: 2025-02-21
Post by eschwellinger on Identifier 'IoDrvGPIO' not defined
CODESYS Forge
talk
(Post)
it is just a precompiler error, login an start the application. Works.This will be fixed hopefully to next version.
Last updated: 2024-04-10
Post by gabrielarffa on Modbus TCP/IP having problems with global variables
CODESYS Forge
talk
(Post)
I'm using Modbus TCP/IP to communicate Codesys with Elipse E3 as the master for a college project. I have made a list of global variables to organize the programming in two different POUs. The problem is, when I try to do the mapping of variables, the program informs me of an error due to the identifiers having a "." on their names. Do I have to reorganize my code to make it an unified block or is there a way to declare their names without changing all the code structure?
Last updated: 2025-05-20
Post by gabrielarffa on Modbus TCP/IP having problems with global variables
CODESYS Forge
talk
(Post)
I'm using Modbus TCP/IP to communicate Codesys with Elipse E3 as the master for a college project. I have made a list of global variables to organize the programming in two different POUs. The problem is, when I try to do the mapping of variables, the program informs me of an error due to the identifiers having a "." on their names. Do I have to reorganize my code to make it an unified block or is there a way to declare their names without changing all the code structure?
Last updated: 2025-05-20
Post by olemart on Set REFERENCE to 0 (null) when no longer used
CODESYS Forge
talk
(Post)
Did you find out if this work?
Last updated: 2024-10-02
Post by davep on Profinet RPC-call error
CODESYS Forge
talk
(Post)
Solved! Go to Control Panel -> Windows Defender Firewall -> Allow an app or feature Enable the options to change settings. Scroll down the list of applications to CODESYS and CODESYS ControlService. If you do not see this application, add it to the list. Make sure all checkboxes are checked (Domain, Private, and Public).
Last updated: 2024-09-06
Post by felixm on Unable to select VisuDialogs.Numpad in Open Dialog input configuration
CODESYS Forge
talk
(Post)
I'm trying to open the VisuDialogs.Numpad dialog to enter a new temperature setpoint on one of my VISU screens. For some reason, the numpad dialog does not appear as an option in the Open Dialog dropdown in my input configuration. I'm very new to CODESYS, so sorry if this is a simple fix/known item XD.
Last updated: 2025-07-10
Post by matthew on New Ladder Diagram conversion does not work due to missing features
CODESYS Forge
talk
(Post)
Hi @eschwellinger Just wondering if there is any update when the Expression or part of it has no effect will be fixed? Also have the ability to open an FB when online and offline. It would also be great to be able to view the ST code block when online.
Last updated: 2024-05-14
Post by schnepper on How to delete main action from SFC Step
CODESYS Forge
talk
(Post)
I added a main action to an SFC step, and then tried to delete it. There is no delete option in the SFC menu nor in the right click menu of the step. I deleted the action from the device tree, but building results in and error saying the action is not defined. Is there a way to delete a main action?
Last updated: 2024-05-23
Post by ihatemaryfisher on Sorting array of any-sized structure
CODESYS Forge
talk
(Post)
With that I could make an array of varying size, but would still have to define the array type in the function's declaration VAR_IN_OUT stArray: array [*..*] of <pre-defined data type> END_VAR I wanted a function that could take an array of any type (e.g., a structured VAR) as an input. That way I could call it in multiple POUs to handle different arrays structures.
Last updated: 2023-08-18
How to change list of referenced visualizations of a frame by programm? (NOT how to switch vis!)
CODESYS Forge
talk
(Thread)
How to change list of referenced visualizations of a frame by programm? (NOT how to switch vis!)
Last updated: 2023-06-01
Post by toffeebonbon on EL7041-0052 - does it run with EL7041 SoftMotion?
CODESYS Forge
talk
(Post)
I let this project rest for a while and picked it up last week. I have been in contact with the support from beckhoff and got the information that the terminals were identical (communication wise). As the Log of the Axis (not the drive's log) shows the error when trying to write into the register 0x8012 and set the value for an encoder to a value that is the default - at least according to the manual - I was wondering if it is possible to "not write that value" to skip that part? Or am I misunderstanding the way the library communicates with the drive?
Last updated: 2024-07-24
Codesys: UaExpert can not connect to OPC/UA Server of Raspberry Pi
CODESYS Forge
talk
(Thread)
Codesys: UaExpert can not connect to OPC/UA Server of Raspberry Pi
Last updated: 2021-11-10
Post by stuartjr on Disabling forcing of specific variables
CODESYS Forge
talk
(Post)
So I think I've found a way to do what I want, but its a not as simple as I thought it would be. Essentially I've got to put my "logic" that decides what the GVL variable should be at the start of every task (rung 1). Then regardless of what the force is the variable will be set to what the logic decides.
Last updated: 2024-03-15
Post by riccardo on VisuElems.CurrentUserGroupId is not stable
CODESYS Forge
talk
(Post)
GoodMorning everyone. I have a system that, in case of alarm, have to block. When the operator logs in must have to acknoledge the alarm and should operate in the system freely. To perform this I detect the logged User by (VisuElems.CurrentUserGroupID <> 0) with a similar code to the the following: PROGRAM AlarmMngt VAR alarm : BOOL:= FALSE; Ack : BOOL:= TRUE; PushBottonOpening : BOOL:= FALSE; Valve : BOOL := FALSE; Flag: BOOL := FALSE; END_VAR IF alarm AND Ack AND (NOT Flag) THEN valve := FALSE; PushBottonOpening := FALSE; Ack := FALSE flag := TRUE; ELSIF (NOT alarm) AND Ack THEN flag := FALSE; END_IF (* if the system is in alarm but there is a logged operator that acknowledge the alarm the system allows the valve opening.*) IF (VisuElems.CurrentUserGroupID <> 0) AND Ack AND Alarm AND PushBottonOpening THEN Valve := TRUE; ELSIF (VisuElems.CurrentUserGroupID = 0) AND Alarm THEN valve := FALSE; END_IF The problem I have is in the last 5 lines of the code: Even if there is a logged in user, the GroupID variable is subjected to a refresh that cyclically set for an instant it to 0 and this close the valve making difficult to the user to work Now I solved it creating a time hysteresys cycle but it is not a good solution. Someone is able to explane me why the GroupID variable is sobjected to this refresh and how to stabilize to avoiding it? Thank you in advance, Riccardo
Last updated: 2023-11-10
Post by lukebouchard on NVL generating ADwin packets instead of UDP?
CODESYS Forge
talk
(Post)
Using Codesys 3.5 SP11 32bit to program a pair of IFM CR711S controllers. They each have an NVL sender and are set up to receive each others messages. One is transmitting properly but not receiving, the other is receiving the first's messages just fine. When I look at the traffic in wireshark, I can see the one transmitting properly as UDP packets on the subnet and port I had specified. The Second is transmitting on the right subnet and port, but is sending 'ADwin Config' packets. Has anyone run into anything simmilar? From some reading on ADwin from google, nothing is enlightening. Both are set up in the same way, have their own ports and List Identifiers. I have deleted the NVL files and regenerated them, cycled power, and even deleted and remade the NVL's so many times.
Last updated: 2024-08-24
Post by ranadheer on Implementation IEC-104
CODESYS Forge
talk
(Post)
Hi Everyone, As we didn't have client for IEC - 104 - only server server is available , so because of that we are trying to make establish the communication between the external simulator as a Client and codesys itself as a server. We are looking for the variable behavior from CODESYS has to change according to the message triggered by the CLIENT (we are using simulator Application like Redisant). We are able to see the log data as the status of triggering the SCS from Client received to the Log data of the codesys device(attached screen shot of it) and in simulator panel we had set the details to trigger the data from Redisant to Codesys. Current Status: The project builds and runs successfully, but I need guidance on how to connect this to an external IEC-104 simulator for testing and visualization by using demo mode.
Last updated: 2025-10-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.