Post by fredashbolt on Dynamically Update JSON Payload
CODESYS Forge
talk
(Post)
I am trying to generate a JSON payload populated with a value that updates for use with a telemetry system, the payload is to be published by MQTT. I have established the MQTT client and can publish a working JSON payload but I can't get the payload to update as the value (iValue) changes. I am using a timer to trigger the .SetValue function periodically, but the JSON will only give the value as it is when it is first initialized using xFirst IF statement. Any suggestions? Thanks VAR pJsonData : POINTER TO JSON.JSONData := factory.Create(); fb_JBuilder : JSON.JSONBuilder; diRootIndex, diObject1Index : DINT; iValue : INT := 10 ; jsonArrayWriter : JSON.JSONByteArrayWriter; wsJsonData : WSTRING(1000); xFirst : BOOL := TRUE; utf8JsonData : STRING(2000); diTempVal : DINT ; PublishTimer : TON ; END_VAR IF xFirst = TRUE THEN fb_JBuilder ( pJsonData := pJsonData , diRootObj => diRootIndex ) ; diObject1Index := fb_Jbuilder.SetKeyWithObject ( "Device" , diParentIndex := diRootIndex ) ; diTempVal := fb_Jbuilder.SetKeyWithValue ( "Temp" , iValue , diParentIndex := diObject1Index ) ; xFirst := FALSE ; END_IF PublishTimer ( IN := PublishTimer.Q = 0 , PT := T#5S ) ; IF PublishTimer.Q THEN fb_JBuilder.SetValue ( iValue , diTempVal ) ; END_IF jsonArrayWriter( xExecute := PublishTimer.Q , pwData := ADR(wsJsonData), udiSize := SIZEOF(wsJsonData), jsonData := pJsonData^, xAsyncMode := FALSE ) ; JSON.Stu.ConvertUTF16toUTF8( ADR ( wsJsonData ) , ADR ( utf8JsonData ) , SIZEOF ( utf8JsonData ) , bStrictConversion := TRUE ) ;
Last updated: 2026-03-10
Post by pernockham on Gateway in China - "Gateway not connected"
CODESYS Forge
talk
(Post)
Some new test. Now I cannot connect from Automation server to my gateway in any way also from my office setup with my unit directly connected to my router by dhcp. I can use the IDE and the tool "Connect Edge Gateway" and successfully connect to my server/link to my Automation server account. However no PLC will respond from Automation server "Network scan". I guess the traffic should be initiated by the gateway towards automation server? Any tips on how I can diagnose my problem? Ports to be opened etc? Thing is that this has been working previously but not now (base system has been updated from debian 12 to debian 13, but I dont know at which point it has stopped working). Setup as before. A "Codesys Control for Linux SL" running on a debian 13 installation. Any help/tips appreciated! Per Update. Found the error. Had a wrong gateway-setting. Which meant the PLC could not reach internet. Checked by "ping google.com" from the PLC.
Last updated: 2026-02-12
Post by naks on Change IP address from IEC code
CODESYS Forge
talk
(Post)
Hi, I'm working with wago 750-8212 controller. I want to change the IP address of the Ethernet adapter from webvisu. I have read some other threads in this forum and I have tried the following: Added the following text to the config file CODESYSControl.cfg: [SysSocket] Adapter.0.Name="br1" Adapter.0.EnableSetIpAndMask=1 Used the below code : IF xUpdateEthernet THEN Ethernet.Enable := FALSE; Reconfig ( xExecute := TRUE, itfNode := Ethernet, eError => ErrorReconfig, xBusy => xBusy, xDone => xDone, xError => xErrorReconfigure); IF Reconfig.xDone THEN ErrorCode := Ethernet.UpdateConfiguredIPSettings(IpAddress := NewIp, gateway := newGateway, subnetmask := newSubnetmask); END_IF IF Reconfig.xDone OR Reconfig.xError THEN reconfig(xExecute := FALSE); END_IF Ethernet.Enable := TRUE; Reconfig(xExecute := TRUE, itfNode := Ethernet ); END_IF I could change the IP address but when i restart my Controller then the IP address resets to the original, Is there anything I have missed, what else can i try ? Thank you in advance.
Last updated: 2024-07-08
Post by yoeri on Refresh visulization realtime
CODESYS Forge
talk
(Post)
Hi everyone, I need some help with displaying an image (test.png) on my device. Initially, showing the image is straightforward. However, I want to be able to update the image dynamically. My goal is to send updated files via FTP to the device, and have the display automatically show the latest version of the image. All images will be sent with the same name (e.g., test.png). Currently, I can see the updated image after sending it via FTP and performing a warm restart, but I'd like to achieve this in runtime, without having to restart the display or application. Does anyone have suggestions on how to implement this? Thanks in advance!
Last updated: 2024-10-21
Post by dsa28 on OPC UA subscriber not operational
CODESYS Forge
talk
(Post)
Hello All, Hopefully I can get some help configuring an OPC UA subscriber in a CODESYS runtime in a Raspberry Pi 5 that tries to retrieve data from an OPC UA publisher (in this case running in a TwinCAT system). I tried to follow the steps described in the page to implement the OPC UA subscriber: https://content.helpme-codesys.com/en/CODESYS%20Examples/_ex_opcua_pubsub.html Seems that the example provided was created with version 3.5.16.0. Now with version 3.5.20.20 is not possible to open the complete project neither convert it. Anyway, after configuring all IPs and ports used in the OPC UA connection function block but the connection state always shows DISABLED. Can someone help me to do the proper configuration of the OPC UA subscriber? Many thanks in advance.
Last updated: 2024-10-22
Post by trusty-squire on AXIS Rollover
CODESYS Forge
talk
(Post)
If you mean you want to shift the Origin or Zero position of your axis, you can try MC_SetPosition and set the position to 0 (if you want to take the current active position and make it the new 0. Adjust this number accordingly if/as needed). This means the servo drive keeps it's current origin position, and Codesys applies an offset to the servo drive position in the logic. You can also use the homing function of your servo drive using MC_Home and have your drive configured to set the current position as origin when it receives a homing command.
Last updated: 2025-03-11
Post by mark on IO link on IFM AL133x only single digital input on a channel
CODESYS Forge
talk
(Post)
I have a problem with the CODESYS IO-Link SL software. When I insert a IO link master AL1332 and plug a discrete digital input to a channel it reads only 1 of the 2 available inputs on that channel. Is there anyone who sorted out if the second input is also usable? When we configure the module without the CODESYS IO-Link SL software then the second input on the channel can be used. At the moment we use some channels on a module as IO-link port, and some as discrete IO. It would be very nice if we can use both inputs on a channel with the use of CODESYS IO-Link SL.
Last updated: 2023-12-18
Post by fdmartello on Unable to compare projects containing alarm manager 4.5.0.0
CODESYS Forge
talk
(Post)
Hello. In Codesys version 3.5.19.50 when comparing two projects that have an "Alarm Configuration" obj from the Alarm Manager library vers. 4.5.0.0 the attached error pops up. This originally happened with two projects that I converted from vers. 3.5.17.30 so, thinking it was some conversion issue, I created two clean projects directly in 3.5.19.50 using the Standard Project template and only added the Alarm Configuration objects in them. The result is the same and the only way I found that allowed me to compare them is by deleting the incriminated object in one of the two projects. Has anyone else encountered this issue? Best regards
Last updated: 2024-01-19
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 riccardo on Error while processing the visualization: Client id not present or no longer valid
CODESYS Forge
talk
(Post)
Hallo goodmorning, I am using codesys 3.5 sp19 with Weidmueller PLC. I created a page with several checkbox to manage an array of bool. When I build the project the system doesn't signal any error, when I go in simulation mode everything works until I click on checkbox to toggle the variables. Other visu elements works proprerly (e.g. bottons, lights, ect, ect) but the check boxes cause a crash giving the following error: Error while processing the visualization: Client id not present or no longer valid I serched to figure the problem out and to search a solution on the web but nothing. Can someone help? Thanks and Regards, Scanu
Last updated: 2024-01-23
Post by mp9876 on Attempting customizing menus fails in LADDER environment; due to free CODESYS version ?
CODESYS Forge
talk
(Post)
Hello, I am attempting to get started here and bumping into this funny issue. I am using this version of CODESYS: ============================== DETAILED VERSION INFORMATION Created at 2024-03-10 ============================== Startup profile: ............................................................... CODESYS V3.5 SP19 Patch 6 OS version: .................................................................... Microsoft Windows NT 10.0.19045.0 .NET version: .................................................................. 4.0.30319.42000 When attempting to customize the menus or toolbar it does not work. The additional commands, Insert TON box & Insert TOFF box, are present in the Customize Menus or Toolbars when re-opening the Customize options but neither the menu or the toolbar gets updated with these. Would also like to add them in the Ladder Toolbox as there are only 9 items in there which does not include the one mentioned above. Due because of the version I am using ? Any assistance would definitely be appreciated. Thank you Mike
Last updated: 2024-03-10
Post by mait-tim on Drive communication errors
CODESYS Forge
talk
(Post)
With a machine I'm working with i get a communication error when I'm updating some softstop limits. As soon as I update the code the drives do not want to operate. Using the MC_readStatus I'm receiving errors as soon as i want to start a movement. Using MC_ReadAxisError i see that i receive error 131, no response. With a SMC3_ETC_ReadParameter_CoE i do not recieve any driver errors. Does anyone know how i can figure out what the error is and how to solve it. When i go back to the old software no errors occur. Im working with a legacy machine running a Beijer PLC with some Mitsubishi drives. running on Codesys 3.5 SP10. the runtime version is probably 3.5.3. The drives are all Ethercat Drives (CoE). All using the SM3_drive_ETC libary and the SM3_basic library.
Last updated: 2025-12-22
Post by trusty-squire on CNC - How to manipulate SMC_GeoInfo objects
CODESYS Forge
talk
(Post)
I have an application using CNC GCode interpolation, but I need to modify the GCode provided to the PLC based on certain parameters. I am currently attempting to modify the SMC_GeoInfo objects in the SMC_OutQueue using the code below. Note that all the other code is pretty standard and works fine, but when I add the below it errors. PROGRAM TEST VAR fbReadCncFile : SMC_ReadNCFile2; fbCncInterpreter : SMC_NCInterpreter; arrCncInterpreter : ARRAY[1..99] OF SMC_GeoInfo; pGeoInfo: POINTER TO SMC_GeoInfo; giGeoInfo: SMC_GeoInfo; // ... END_VAR // ... Some code here in order to read CNC file using SMC_ReadNCFile2 and provide to SMC_NCInterpreter pGeoInfo := SMC_GetObj(poq:=ADR(fbCncInterpreter.poqDataOut), n:=1); IF pGeoInfo <> 0 THEN giGeoInfo := pGeoInfo^; // Do some manipulation here, then update the queue at the same position MC_SetObj(poq:=ADR(fbCncInterpreter.poqDataOut) , n:=0 , pgi:=ADR(giGeoInfo) ); END_IF It throws an error when I get to the line giGeoInfo := pGeoInfo^; Error: EXCEPTION [AccessViolation] occured: App=[Sim.Device.Application], Task=[PathTask] How do I use SMC_GetObj and access the data? It creates a pointer with the value as shown in the photo, but all the dereferenced values say dereference of invalid pointer.
Last updated: 2024-07-26
Post by willbechel on Errors about PLC configuration in CoDeSYs software
CODESYS Forge
talk
(Post)
I saved it as the same project but in a different location. I opened this "new project". I clicked on the "Direct Login from Automation Builder" button. It automatically directed me to CODESYS, where I was able to create the "Create Boot Project" but first I also clicked login again but inside CODESYS keeping the automation builder login online. Additional Information: The "Create Boot Project" function in CODESYS is used to create a project that will automatically start when the controller is booted up. To create a boot project, you must first create a new project in CODESYS. Once you have created a new project, you can then use the "Create Boot Project" function to create a boot application. The "Create Boot Project" function will create a new application that is based on the current project. The new application will be saved in the same location as the current project. You can then download the new application to the controller.
Last updated: 2024-02-01
Post by willbechel on Project Login Problem
CODESYS Forge
talk
(Post)
I saved it as the same project but in a different location. I opened this "new project". I clicked on the "Direct Login from Automation Builder" button. It automatically directed me to CODESYS, where I was able to create the "Create Boot Project" but first I also clicked login again but inside CODESYS keeping the automation builder login online. Additional Information: The "Create Boot Project" function in CODESYS is used to create a project that will automatically start when the controller is booted up. To create a boot project, you must first create a new project in CODESYS. Once you have created a new project, you can then use the "Create Boot Project" function to create a boot application. The "Create Boot Project" function will create a new application that is based on the current project. The new application will be saved in the same location as the current project. You can then download the new application to the controller.
Last updated: 2024-02-01
Post by lraja on Codesys Programming with phyBOARD®-Pollux i.MX8M Plus
CODESYS Forge
talk
(Post)
Dear All, I am trying to Developing a PLC using phyBOARD®-Pollux i.MX 8M Plus. It is very difficult to find the suitable Codesys control for i.MX8M. I have tried to install CODESYS Control for Linux ARM SL , but unable install it and I am getting the following error, [INFORMATION] Executing SSH command on root@192.168.0.10: Retrieving architecture from package management [ERROR] Expected exit value of command failed: expected 0, received 127 [INFORMATION] Standard output: sh: line 1: dpkg: command not found Kindly check and help phyBOARD®-Pollux i.MX 8M Plus Link : https://www.phytec.eu/en/produkte/single-board-computer/phyboard-pollux/
Last updated: 2023-09-23
Post by damian177 on Codesys V3.5 + Pixtend v1.3 + RaspberryPi
CODESYS Forge
talk
(Post)
Hi, I use Pixtend v1.3 with my RaspberryPi with Codesys V3.5 SP15 Patch1. Actually in my project I used two packages: - CODESYS Contro for Raspberry PI 3.5.15.10 - PiXtend for CODESYS 1.3.8.0 Now I would like to extend my project about the IIot Libraries SL package, I installed them. Next I added SMS_Service_SL 1.0.0.8 version library and I have problem with compile my project because I get error: [ERROR] PiXtend_DemoProject_q: Library Manager [Device: PLC Logic: Application]: Could not open library '#CAADTUtil'. (Reason: The placeholder library 'CAADTUtil' could not be resolved.) Any have idea what can I do to properly add SMS library to my project?
Last updated: 2023-09-26
Post by alex2 on Error Highlighting Not Working in CODESYS v3.5 SP10 on Windows 11
CODESYS Forge
talk
(Post)
Hello everyone, I'm currently using CODESYS v3.5 SP10 on Windows 11, and I've noticed that syntax errors are not automatically underlined in red as they normally should be. Is there a specific setting that needs to be enabled for this feature to work? If so, could you please let me know where to find it? I’ve already tried uninstalling and reinstalling CODESYS, but that didn’t resolve the issue. Also, i have a teammate who have exactly the same computer as me and he didnt encounter any issue. Thank you in advance for your help!
Last updated: 2025-05-13
Post by abuckie on Getting raw value as full resolution for ADS1115
CODESYS Forge
talk
(Post)
I just found this and I am getting a value larger than 16 bit, around 81000 something. I am reading a 5 volt value and I am using level shifters for the i2c bus. This is how I have the channel configured: ADS1115.usiAddress := 16#48; ADS1115.ChannelConfigs[0].Active := TRUE; ADS1115.ChannelConfigs[0].PGA := FSR_6144mV; ADS1115.ChannelConfigs[0].InputMux := Single_0; RawAnalogValue := ADS1115.Channels[0].Value; It looks like every value is a multiple of 3. Any idea where to look to fix this? I think i found what I want to change in UpdateChannels Channels[FChannelNo].Value := INT_TO_REAL(WORD_TO_INT(LValue) * GetFullScaleRange(ChannelConfigs[FChannelNo].PGA)) / 2048.0; I try to edit it but I can't, sorry if this is a basic question, I am new to CODESYS.
Last updated: 2025-05-22
Post by rockallsue on Frustration-Fueled Feedback on Project File Management and Git Integration
CODESYS Forge
talk
(Post)
Some developers export ST code manually and edit it in VSCode, then copy it back. However, a more practical approach might be using automation scripts (PowerShell, Python) to extract and inject code into the CODESYS project. You could also check if CODESYS Automation Server or CODESYS API allows better ST access for external tools. https://www.codesys.com/the-system/releases-updates-lifecycle/release-plan-roadmap.html Network drive issues are particularly painful. As a mitigation, you could try using local project storage with periodic cloud sync instead of directly saving to a network drive. Using Rsync or Syncthing for automatic but safe synchronization might reduce risks of file corruption.
Last updated: 2025-06-03
Post by i-campbell on build (F11) / generate code using a python script file
CODESYS Forge
talk
(Post)
hello, please enjoy. # i-campbell 2024 import subprocess from scriptengine import * # with a project already open # save if not yet saved # check pool objects if it is a library # generate code only for the active application if it is a project # beep thanks to https://devblogs.microsoft.com/scripting/powertip-use-powershell-to-send-beep-to-console/ if projects.primary: # check project is open if projects.primary.dirty: # save projects.primary.save() if projects.primary.path.lower().endswith('.library'): projects.primary.check_all_pool_objects() # check all pool objects for lib else: projects.primary.active_application.generate_code() # generate if not lib # note, there could be more applications than the active application, # this script does not generate those else: system.write_message(Severity.Error,'no project open') ps_output = subprocess.check_output(["powershell", "-Command", "[console]::beep(500,300)"]) # beep
Last updated: 2024-04-10
Post by william on Unit testing support / libraries for EcoStruxure Machine Expert (CODESYS)
CODESYS Forge
talk
(Post)
Hi, We are investigating available libraries and frameworks for automated PLC unit testing in Schneider EcoStruxure Machine Expert. Specifically, we are looking for: Assertion libraries or test frameworks compatible with Machine Expert CODESYS‑based solutions that are not TwinCAT‑specific Any official or community‑recommended approach for unit testing FB/FC logic offline We have found several open‑source examples, but many appear to be TwinCAT‑dependent and therefore not compatible. Are there any known libraries, best practices, or recommended approaches for implementing unit tests in Machine Expert? Thanks in advance.
Last updated: 2026-02-19
Post by rossanoparis on Upgrading CODESYS runtime from v4.7 to v4.9 using a bash script leads to lose the licences stored in the soft container
CODESYS Forge
talk
(Post)
System information - Controller: KUNBUS RevPi CONNECT-S - OS: Linux buster 32bit 5.10.103-rt62-v7l #1 SMP PREEMPT_RT armv7l GNU/Linux - CODESYS v3.5 SP19 Patch 2 I'm facing a problem related to codesys licences using a procedure based on a bash script. Such bash script detect the presence of new .deb files and install them on system. My automation solution don't allow to be maintained by dedicated personal, thus even the CODESYS runtime SW must be installed using an "automatic" procedure instead of using the CODESYS tool. remark I've been using the following procedure since the runtime v4.5 without any issue. Before installing the new runtime packages, I need to copy the file CODESYSControl_User.cfg (here attached) because of new section which is necessary to add in order to allow some folders to be written by CODESYS runtime v4.9 Up to now, this has been unnecessary, this is the main difference between my previos bash file and the new one. remark If I skip this action, everythings goes fine, but my CODESYS application can't work as it needs to access some folders on controller's file system. Process - Before the procedure: the licenses are OK (see attached file lic-01.png) - After the procedure: the new CODESYS runtime version is correctly installed, but the software container with v1.19 and all licences disappear (see attached file lic-02.png) This is the synthetic content of bash script I'm using. # Stop runtime sudo service codesyscontrol stop sudo service codesysedge stop # Move the new CODESYSControl_User.cfg file # New configuraton with folders declared sudo mv -f CODESYSControl_User.cfg /etc # Install runtime package echo N | sudo apt-get install -y --allow-downgrades codesyscontrol_raspberry_4.9.0.0_armhf.deb # Install edge gateway package echo N | sudo apt-get install -y --allow-downgrades codesysedge_edgearmhf_4.9.0.0_armhf.deb # Reboot controller sudo reboot Thanks in advance
Last updated: 2023-09-19
Post by ryandmg on Web Client (HMI) Disconnects from Webvisu (Weidmuller u-OS)
CODESYS Forge
talk
(Post)
Ohhh OK. Yeah this seems to be timing like you said. Yeah I read through that document and came to the same conclusion. I haven't tried setting them both to 200ms. Maybe I'll give it a shot. Thanks so much for your input. Its greatly apreciated.
Last updated: 2023-09-06
Post by ivanmaltar on Update Raspberry Pi error
CODESYS Forge
talk
(Post)
Hello, from today, I got an error when I try to open 'Tools/Update Raspberry Pi' and I got this error: There is no value with the specified name associated with this subkey. This feature worked before. I did not do any changes to Codesys installation. Codesys version is SP19.1, and CODESYS Control For Raspberry Pi 4.8.0.0
Last updated: 2023-11-30
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.