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 fredruel on ModbusServer became unreachable if reach maximum of 16 byClientConnections
CODESYS Forge
talk
(Post)
Hello Fraziersedge, the solution of Codesys might be to update your codesys to the lastest version but it was not possible for us. In our Codesys V3.5 SP9 patch 8 I was able to fix this bug. I change my ModbusTCP slave component version or one of the sub component version (ex: SysSocket). Look at the picture in attachement that's the receipe that have work for us. When I got the bug my version of ModbusTCP slave was 3.5.5.0 with SysSocket at 3.5.6.0 and I change to ModbusTCP slave 3.5.14.0 with same version 3.5.14.0 of SysSocket event if I still use codesys V3.5 SP9 patch 8.
Last updated: 2024-08-27
Post by sigurdrb on OPC server in "Communication manager"
CODESYS Forge
talk
(Post)
Hi! I was thinking of switching the OPC server config from "Symbol Configuration" to the "Communication manager" in the device tree. I Have a lot of arrays of structs that I have previously declared in the "Persistent Variable" object in the device tree. It seems as it is not supported to directly expose persistant variables to the OPC server like the "older" way of doing it in the symbol config. Is this correct? Do you recommend to just do it the old fashioned way, or should I edit the structure of the global variable list / persistant data / OPC server and set up the OPC server from the "Communication manager" object?
Last updated: 2025-01-20
Post by pernockham on Trend legend naming and access/config to/of trend/legend-variables
CODESYS Forge
talk
(Post)
Trying the web-version of trend-data. This seems to be a impressive tool, but I lack/cant find a number of what I would think are important parts. There does not seem to be a way to get away from the dot.notated variable naming in the legend.. A developer might want the dot-notation but an end-customer will surely not. For instance I want to display 12 temperatures, instead of t1, t2 etc.. they will be named. gvl_io.unit[1].trend.temps.t1_a gvl_io.unit[1].trend.temps.t1_b gvl_io.unit[1].trend.temps.t1_c gvl_io.unit[1].trend.temps.t2_a .. gvl_io.unit[1].trend.temps.t4_b.. gvl_io.unit[1].trend.temps.t4_c.. Quite a lot of unnecessary text/data taking space from the actual trend => Is there a way to access/interface the legend-data programmatically so I can change the presentation/naming?
Last updated: 2025-12-16
Post by manuknecht on Persistence Manager does not save alphabetically first value
CODESYS Forge
talk
(Post)
I have several libraries which contain values that should be saved on a PLC. As apparently no Persistent Variable List is available within Libraries, I use the Persistence Manager to create a Persistence Channel in the Project which imports the library. I then specify the persistence channel in the library using the {attribute 'ac_persist':='PersistenceChannel_CT'} specifier. This generally works very well and gives me exactly the properties I require. However, it came to my attention that the (alphabetially) first value from the library is not saved in the created ASCII file. When checking the content of the Persistence Channel, it shows all the variables as defined in the library. But the created file does not contain the first value and it is not restored after restart or reset. (see attached picture) I disabled Periodic Saving and set xSaveOnChange to TRUE and so the file usually updates immediately after changing one of the values. When changing the first value, it does not update which is consistent with this value not being saved. I also created a sample project and library from scratch which shows the same issue both using a Raspberry Pi and using a Linux machine. Does someone know what the reason for this could be or did someone make similar experiences? Looking forward to hearing your suggestions. Thanks in advance and best wishes Manuel
Last updated: 2023-10-17
Post by abuckie on i2c master not running
CODESYS Forge
talk
(Post)
Hello, I am trying to create an Ethernet/IP device that can read analog signals, do some basic logic on it and then hand communicate the results to an Ethernet/IP master. I am using the Raspberry Pi to experiment with this as I would ultimately like to drive a display as well. I have loaded up the runtime on the Pi and got the digital I/O working. I have an ADS1115 ADC to I2C board and I can't get it to work, I get a message telling me the i2c master is not running and I am not sure where to start with this. Is there a manual for running CODESYS on the Pi or something like that I am missing? I found this post and opening the project in CODESYS V3.5 SP21 it seems like tons of this wouldn't convert properly https://forge.codesys.com/forge/talk/Runtime/thread/f1400b71b6/ I have added in the library and device manually and copied the structured text program but lost at what to do if the core functionality of the master is not running. I appreciate any help, thanks.
Last updated: 2025-05-19
Post by farren on How to stay in a method until something is finished.
CODESYS Forge
talk
(Post)
I know I'm thinking about this wrong -- too many decades of procedural and event-driven programming and only a few months of PLC ST programming...... I've created a visualization with a button that when pushed calls a method. I want the method to take a pressure reading, wait one minute and then take another pressure reading. I'm looking for leaks. I'm using TON for the delay. It seems like what is happening is that the method gets called once and it takes the first reading and starts the TON. But then execution continues, leaves that method call, and the second reading never happens. I can force the method to keep running until the whole thing is done with a While loop, but I understand that is considered BAD in PLC programming. If it push the button again to call the method again, it picks up where it left off and if the timer is complete then it runs the remaining code. How do I keep that method running until it is complete with just one call without using a while loop that ties up the PLC for a minute? Thanks! -Farren
Last updated: 2025-10-31
Post by eoahe on Problem Reading Registers via Modbus from non Codesys device
CODESYS Forge
talk
(Post)
Hey Guys :) I have the following Problem using Modbus via Codesys: I'm trying to implement a Modbus Device into my codesys project. The device is a Router from Teltonika (RUT956) and it can communicate via Modbus. Currently I'm trying to implement it into my codesys prject as a slave and I'm using my windows computer as master. As it is not a codesys device (the codesys application is not uploaded to device as it has its own software) I'm having problems requesting and reading registers from the router. I've set up my windows computer as Master and implemented the router as slave. When I go online on my master device it sais that it has established a connection to the slave (router)(So I'm thinking this could work as there is a connection?). The goal is to read the GPS (latitude and longitude) data and on the homepage of teltonika you can find the register address and number of registers (adress 143 for latitude and 145 for longitude; both have a number of two registers). I've found tutorials how to read specific registers via their register address with other modbus programs (like modbus-cli), but as my entire project is established in codesys I was hoping to read these specific registers via codesys so that I can show the GPS data on my dashboard. I've tried establishing slave channels but that hasn't been working. I tried read input register channels of the length 4 but it's not possible to define specific register addresses to read via codesys so that didn't work (I jsut get a slaves device failure) and I've also tried establishing 516 (total number of registers the router sends I think?) read inputregister channels but that has the samle failure... So i guess the problem I'm having is establishing slave channels to read these specific registers. Does anyone know how to tackle this problem and has maybe had the same problem? Or maybe someone knows a workaround? I'm quite new to codesys so maybe I'm also lacking expertise...
Last updated: 2025-03-01
Post by cfam on Codesys Control for PLCnext SL, Bus not running
CODESYS Forge
talk
(Post)
Good day I would appreciate it if you can give me some advice on how to fix my "Bus Not Running Error". I am Using Codesys 3.5 SP20 and Codesys Control PLCnext SL V4.12.0.0. Codesys control was installed on the device and I can log into it but it seems that it does not pick up the PLC or the IO attached (Please see attached Image). The Bus Cycle Task of the AXL F 2152 is set to Main Task and the "Always update Variable" is Enabled on each IO Module. My Main Task interval is set to 100ms and Priority is set to 0. I have tried other options and none seem to work. Your response to this issue will be highly appreciated.
Last updated: 2024-08-12
Post by cfam on Codesys Control for PLCnext SL, Bus not running
CODESYS Forge
talk
(Post)
Good day I would appreciate it if you can give me some advice on how to fix my "Bus Not Running Error". I am Using Codesys 3.5 SP20 and Codesys Control PLCnext SL V4.12.0.0. Codesys control was installed on the device and I can log into it but it seems that it does not pick up the PLC or the IO attached (Please see attached Image). The Bus Cycle Task of the AXL F 2152 is set to Main Task and the "Always update Variable" is Enabled on each IO Module. My Main Task interval is set to 100ms and Priority is set to 0. I have tried other options and none seem to work. Your response to this issue will be highly appreciated.
Last updated: 2024-08-12
Post by shabroz-gill on Exception when OPCUA datasource disconnects from Server
CODESYS Forge
talk
(Post)
If i loose the network and the opcua data source suddenly looses connection with the server, i get an exception and my application stops working. I am using the latest version of the communication add v4.5.2.0 Is this a known issue? This makes the datasource unusable because it is inevitable that we will loose connectivity at some point, and the datasource crashing everything due to that seems to be a deal breaker. I can provide more details is someone from codesys is reading this. You can recreate is by just shutting off the Opc server after the codesys data source is connected and reading data from it. The codesys app does not crash everytime and sometimes it is able to reconnect without crashing, so you may have to try this a few times to see the exception. Best regards
Last updated: 2024-09-16
Post by andrebrandt on FB string and naming
CODESYS Forge
talk
(Post)
Thank you so much. This worked. Waht im trying to do here is to automatically tag each sensors, valves and so on. There is a preatty nasty tag system i working on. "_320" is not alloved. I can have a tag "+4f=320.004-RT001V" In codesys I want to build the FB in folders. -4f | --320 | --001 This is the system structure. Inside here is all of the sensors and so on. But with Codesys, I cannot tag this like this. So what I'm trying to do now is to Make a folder for the building "4f" and one for the system "320", and a POU _001. Is there a way in init to get folder names?
Last updated: 2024-10-01
Post by yang123 on EtherCAT Can't reconnect to servo drive
CODESYS Forge
talk
(Post)
I am using Ethercat Master 4.6.0.0 and have use the automatic restart slaves feature. But we found of after the Ethercat communication normal and slave drive power-off and power-on the slave can't reconnect sucess. The PLC Log show the drive was al status "6#34 : Invalid DC Timeout Error" and its was reconnection sucess first but seconced later the drive will show the "16#2C : Fatal Sync error" and then drive will can't reconnection. Other slave are reconnect sucess which was link after the can't reconnect's drive the drive was OMRON R88D-1SN
Last updated: 2024-01-23
Post by dvmaris on Control for Linux ARM64-User Management issue
CODESYS Forge
talk
(Post)
I'm trying to work with Codesys Control for Linux ARM64 SL 4.18.0.0 on a Toradex Verdin NXP iMX8MP. I have the runtime installed and operational as well as Codemeter lite 8.40.7141.503 (arm64). I'm running 3.5.20.60 and when "Scan Network" I see the Verdin popup. When I try to connect to it, the "mandatory use of the user management" popup shows...which makes sense. I click YES and enter user information and click OK. It immediately displays a "No device is responding to the scan request" popup. The IDE can see the Verdin in the scan...so this popup does not make sense to me. I thought maybe it was a read only issue but I've made all partitions and paths RW. Has anyone experienced this? Can anyone tell me where it is trying to write user data?
Last updated: 2026-02-11
Reading from a file, a line of CSV values with CrLf at the end of the line.
CODESYS Forge
talk
(Thread)
Reading from a file, a line of CSV values with CrLf at the end of the line.
Last updated: 2018-09-18
Post by tk096 on Confused by dwIpoTime input for SMC_Interpolator
CODESYS Forge
talk
(Post)
Hi, dwIpoTime should be set to the cycle time of your motion task. It defines the interpolation interval of the interpolator. E.g. in the attached screenshot, the task has a task interval of 4ms. The dwIpoTime input of the interpolator should be set to 4000.
Last updated: 2024-07-22
Post by timvh on Converting each character to a string into ASCII
CODESYS Forge
talk
(Post)
A standard string is actually a list of bytes that represent the ASCII code for each character. The following part of code will give you the ASCII code of one of the characters in the string: byChar := sInput[i];
Last updated: 2024-11-11
Is it possible to link an array of bits to an alarm group to show a lot of alarms at once?
CODESYS Forge
talk
(Thread)
Is it possible to link an array of bits to an alarm group to show a lot of alarms at once?
Last updated: 2021-07-08
Size of the abyPoolMemory input when creating an fb for the purpose of fb creation (fb extends Factorybase from the fbFactory Library)
CODESYS Forge
talk
(Thread)
Size of the abyPoolMemory input when creating an fb for the purpose of fb creation (fb extends Factorybase from the fbFactory Library)
Last updated: 2023-01-15
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
Codesys Forge Unit Testing Framework [Announcement of the new CfUnit release: v1.1.0.0 ETA 1st quarter of 2020]
CODESYS Forge
talk
(Thread)
Codesys Forge Unit Testing Framework [Announcement of the new CfUnit release: v1.1.0.0 ETA 1st quarter of 2020]
Last updated: 2019-06-16
Codesys Forge Unit Testing Framework [Announcement of the new CfUnit release: v1.1.0.0 ETA 1st quarter of 2020]
CODESYS Forge
talk
(Thread)
Codesys Forge Unit Testing Framework [Announcement of the new CfUnit release: v1.1.0.0 ETA 1st quarter of 2020]
Last updated: 2019-06-16
The element of type 'VisuFbElemImage' could not be updated. Reason: Index was outside the bounds of the array.
CODESYS Forge
talk
(Thread)
The element of type 'VisuFbElemImage' could not be updated. Reason: Index was outside the bounds of the array.
Last updated: 2026-01-27
Post by nyee on Project compiling error in Simulation mode
CODESYS Forge
talk
(Post)
Hi, I have a similar issue - we have been using codesys V3.5.16.20 Do you have any suggestions or confirmation that this will work with a different version of codesys and Pi extension
Last updated: 2023-09-07
Post by rschwager on description about the build compiler definition
CODESYS Forge
talk
(Post)
Hi CODESYS moderators and user! Is there any description about the compiler definition in property of application? e.g.: CANOPEN_NO_HEARTBEATPRODUCING Is there more definition? Best regards Robert
Last updated: 2023-09-26
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.