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
Post by nano on Library for arrays
CODESYS Forge
talk
(Post)
habe a look at __new and __delete operators. have in mind that in this case u have a look at memory see https://help.codesys.com/api-content/2/codesys/3.5.15.0/en/_cds_operator_new/
Last updated: 2024-01-14
Post by ryusoup on JSONByteArrayWriter problem?
CODESYS Forge
talk
(Post)
Hello, I am trying to implement a FB to make JSON formatted WSTRING type message using JSON Utilities 1.9.0.0 included in the IIoT library. In my case, I want to set some objects or arrays and set values to them later. But when I wrote as the sample below, // init builder builder(pJsonData:=pJsonData, diRootObj=>diRootObj); // set the 1st key to root diKey1 := builder.SetKeyWithArray(wsKey:="key1", diParentIndex:=diRootObj, eError=>eError); // set a value to the 1st key wsValue:="value01"; builder.SetValue(Value:=wsValue, diParentIndex:=diKey1, eError=>eError); // set the 2nd key to root diKey2 := builder.SetKeyWithArray(wsKey:="key2", diParentIndex:=diRootObj, eError=>eError); // set a value to the 2nd key wsValue:="value02"; builder.SetValue(Value:=wsValue, diParentIndex:=diKey2, eError=>eError); // set a value to the 1st key again wsValue:="value03"; builder.SetValue(Value:=wsValue, diParentIndex:=diKey1, eError=>eError); // set a value to the 2nd key again wsValue:="value04"; builder.SetValue(Value:=wsValue, diParentIndex:=diKey2, eError=>eError); // write build result writer(xExecute:=TRUE, pwData:=ADR(wsResult), udiSize:=SIZEOF(wsResult), xAsyncMode:=FALSE, jsonData:=pJsonData^); the result was: { "key1": ["value01"], "key2": ["value02", "value03", "value04"] } while my expection was: { "key1": ["value01", "value03"], "key2": ["value02", "value04"] } Inspecting pJsonData^, JSONData itself seems to be ok, so I believe the issue is something caused by the writer FB. Does anyone know how to fix it? Thanks,
Last updated: 2023-10-04
Post by trusty-squire on Display Units/Scale on Path3D visualization
CODESYS Forge
talk
(Post)
Hi, Is it possible to display the units along the X,Y axis of the Path3D element? It correctly shows the CNC path to be followed, but there's no indication of scale or size of what's being displayed. I looked at the documentation and my first inclination is that this is not possible, and the option option would be to somehow recreate the Path3D functionality into the XY Chart visu element - which is not ideal. Any suggestions or pointers would be appreciated!
Last updated: 2024-11-08
Post by paulg on RasPi CAA Serial example - unexpected behavior during debug
CODESYS Forge
talk
(Post)
I've trimmed down the CAA Serial Codesys example to only listen on one port but, when stepping through the Case structure in debug mode, it jumps out of the structure during a specific point in every scan (I'll point it out below after describing the setup and listing the code). I'm using a Pi 4 Model B, and I have an Arduino Nano Every plugged in via USB which is streaming the following serial message at 1 Hz: Time since opening connection: 1 s Time since opening connection: 2 s ...and so on. The Pi shows the Nano at /dev/ttyACM0 so I edited CODESYSControl_User.cfg to read: Linux.Devicefile=/dev/ttyACM The code in my PLC_PRG is (ignore some of the comments, I hadn't deleted them out from the original example): PROGRAM PLC_PRG VAR xStartTest : BOOL:= TRUE; iState : INT; xTestDone : BOOL;(* True, when the test was done succesfully *) (* Settings to communicate with the COM Port *) aCom1Params : ARRAY [1..7] OF COM.PARAMETER; como1 : COM.Open; comc1 : COM.Close; comw1 : COM.Write; comr1 : COM.Read; //sWrite : STRING := 'Test String!'; sRead : STRING(25); szRead : CAA.SIZE; xCom1OpenError : BOOL; xCom1CloseError : BOOL; xCom1WriteError : BOOL; xCom1ReadError : BOOL; END_VAR //This example shows the communication of two COM Ports with each other. //The first one writes a string of characters, which is read by the second one. //After successful execution, the two COM Ports are closed and the test is done. IF xStartTest THEN CASE iState OF 0: //The parameters are set for the COM Port aCom1Params[1].udiParameterId := COM.CAA_Parameter_Constants.udiPort; aCom1Params[1].udiValue := 1; // the correct Port should be adapted aCom1Params[2].udiParameterId := COM.CAA_Parameter_Constants.udiBaudrate; aCom1Params[2].udiValue := 115200; aCom1Params[3].udiParameterId := COM.CAA_Parameter_Constants.udiParity; aCom1Params[3].udiValue := INT_TO_UDINT(COM.PARITY.NONE); aCom1Params[4].udiParameterId := COM.CAA_Parameter_Constants.udiStopBits; aCom1Params[4].udiValue := INT_TO_UDINT(COM.STOPBIT.ONESTOPBIT); aCom1Params[5].udiParameterId := COM.CAA_Parameter_Constants.udiTimeout; aCom1Params[5].udiValue := 0; aCom1Params[6].udiParameterId := COM.CAA_Parameter_Constants.udiByteSize; aCom1Params[6].udiValue := 8; aCom1Params[7].udiParameterId := COM.CAA_Parameter_Constants.udiBinary; aCom1Params[7].udiValue := 0; //The first Port is opened with the given parameters como1(xExecute := TRUE, usiListLength:=SIZEOF(aCom1Params)/SIZEOF(COM.PARAMETER),pParameterList:= ADR(aCom1Params)); IF como1.xError THEN xCom1OpenError := TRUE; iState := 1000; END_IF //After a successful opening, the next state is reached IF como1.xDone THEN iState := 15; END_IF 15: // the reading process is started comr1(xExecute := TRUE,hCom:= como1.hCom, pBuffer:= ADR(sRead), szBuffer:= SIZEOF(sRead)); IF comr1.xError THEN xCom1ReadError := TRUE; END_IF //After completion the size of the written bytes are saved IF comr1.xDone OR comr1.xError THEN szRead := comr1.szSize; iState := 20; END_IF 20: // If everything was successful the ports are closed and the handles are released comc1(xExecute := TRUE,hCom:= como1.hCom); IF comc1.xError THEN xCom1CloseError := TRUE; END_IF IF comc1.xDone OR comc1.xError THEN iState := 25; END_IF 25: // The first port is closed and the used handle released xTestDone := TRUE; xStartTest := FALSE; iState := 0; como1(xExecute := FALSE); comw1(xExecute := FALSE); comc1(xExecute := FALSE); ELSE iState := 0; END_CASE END_IF I realize as I write this that the .udiPort should be 0 and not 1, but that shouldn't be causing the issue I'm seeing. I'm forcing xStartTest:=TRUE every scan so that I can step into each line and observe what's happening. What I see is that the port parameters are set and the port is opened with no errors, but the code jumps out of the case structure to the last line every time it reaches (and I step into) the iState:=15 line (at the end of the iState:=0 block). So every scan cycle it goes through the block for iState=0 and jumps out at the same spot. I'm a little new to PLC programming so I may be misunderstanding the flow, but shouldn't this case structure keep moving down in the same scan? If it only handles one case per scan, why doesn't the value of iState persist? Thanks! Update: I restarted the Codesys control today and I was then able to see an error for como1.eError of "WRONG_PARAMETER". I tried doing some digging and another post made me think I should add another line to CODESYSControl_User.cfg, so I now have: [SysCom] Linux.Devicefile=/dev/ttyACM portnum := COM.SysCom.SYS_COMPORT1 So now when I set .udiPort to 1, I get "NO_ERROR" but I also don't read anything from the port (i.e. szRead = 0 always). If I try setting the port to 0 (which I'm confused about, because I added a COMPORT1 line but the device shows on the Pi as ACM0), I get the "WRONG_PARAMETER" error again. Is there an easier way to troubleshoot the Pi and view what ports the Codesys runtime is actually able to see while the Pi is running?
Last updated: 2024-06-06
Post by eschwellinger on Deploy LicenseServer for Linux SL
CODESYS Forge
talk
(Post)
As I see from your logs I think the Timeprovider is not accurate enough in your case. Things to check - at the moment you run it on the same device? (for tesing purpose ok) I would set 127.0.0.0 as IP and set it not really to Core 0 ( many other stuff is there)
Last updated: 2025-11-20
Post by ahuckphin on Issues with Modbus Slave with Raspberry Pi
CODESYS Forge
talk
(Post)
I have a DFRobot RS485 temperature & humidity sensor (SEN0438) connected to my Raspberry Pi via a USB to RS485 adapter. I am able to connect and read the sensor data when running a python code locally. However in Codesys, I encounter this error "A bus error has occurred." and "There was no response in time". Could this be because of Modbus Server Channel and Modbus Server Init configuration on my part? Admittedly I am new to Codesys. To get to this stage, I: 1. added some lines to CODESYSControl_User.cfg 2. added "Modbus_COM" in Codesys and set "Serial Port Configuration" under "General" 3. added "Modbus_Master_COM_Port" in Codesys and checked transmission mode is set to "RTU" 4. added "Modbus_Slave_COM_Port" in Codesys and checked server address is set to 1 (also set 1 in my sensor) 5. added 1 channel and 1 init for "Modbus_Slave_COM_Port" under "Modbus Server Channel" and "Modbus Server Init"
Last updated: 2024-07-10
Post by alex-n on Problem with keeping up the distance between two axes
CODESYS Forge
talk
(Post)
We use Inovance AC802 as PLC, IS810N Drive, library 4.10, connection via Ethercat and no any suprise at work.
Last updated: 2026-06-02
Post by e13740e on Parameterized Property syntax for array element processing
CODESYS Forge
talk
(Post)
Hello. I'm trying to create a Parameterized Property(CDS V3.5 SP21) to avoid copy-pasting code for processing array elements. I can't seem to get any result. Perhaps I am making a mistake with the syntax. None of the declaration options below are accepted by the compiler. If you know and use them (Parameterized Properties) in your work, please let me know. Thank you in advance. Option 1: PROPERTY <property_name> : <data_type> VAR_INPUT <index_name> : <index_type>; // One or more index parameters are declared here END_VAR</index_type></index_name></data_type></property_name> GET Code that uses <index_name> to return a value END_GET</index_name> SET Code that uses <index_name> and the implicit variable <property_name> to write a value END_SET</property_name></index_name> END_PROPERTY Option 2: PROPERTY <property_name> (<index_name> : <index_type>) : <data_type></data_type></index_type></index_name></property_name> GET Code that uses <index_name> to return a value END_GET</index_name> SET Code that uses <index_name> and the implicit variable <property_name> to write a value END_SET</property_name></index_name> END_PROPERTY
Last updated: 2025-10-09
Post by e13740e on Parameterized Property syntax for array element processing
CODESYS Forge
talk
(Post)
Hello. I'm trying to create a Parameterized Property(CDS V3.5 SP21) to avoid copy-pasting code for processing array elements. I can't seem to get any result. Perhaps I am making a mistake with the syntax. None of the declaration options below are accepted by the compiler. If you know and use them (Parameterized Properties) in your work, please let me know. Thank you in advance. Option 1: PROPERTY <property_name> : <data_type> VAR_INPUT // One or more index parameters are declared here <index_name> : <index_type>; END_VAR</index_type></index_name></data_type></property_name> // Accessor for reading GET // Code that uses <Index_Name> to return a value END_GET // Accessor for writing SET // Code that uses <Index_Name> and // the implicit variable <Property_Name> to write a value END_SET END_PROPERTY Option 2: PROPERTY <property_name> (<index_name> : <index_type>) : <data_type></data_type></index_type></index_name></property_name> // Accessor for reading GET // Code that uses <Index_Name> to return a value END_GET // Accessor for writing SET // Code that uses <Index_Name> and // the implicit variable <Property_Name> to write a value END_SET END_PROPERTY
Last updated: 2025-10-09
Post by joanm on Programmatically change the IP addresses of the Modbus TCP slave devices
CODESYS Forge
talk
(Post)
Hello all, I am working in a project in which there are multiple Modbus TCP slaves. I need to be able to change the IP addresses of those devices from the HMI and I was planning to use the process depicted here: https://faq.codesys.com/display/CDSFAQ/Modbus+TCP+Slave%3A+Dynamic+Setting+of+the+IP+Address I can see the port number is what is used to specify which slave device we want to modify the IP address of. This said, can I freely set arbitrary port numbers to each device? I mean, can I set the first device to be at port 502, the second one at port 503... Any drawback or restriction? Is there any other way to reference to the device without having to change the port numbers? Thank you all in advance.
Last updated: 2024-01-04
Post by hafizapik99 on Webvisu not showing Codesys V3.5 SP13 Patch 4
CODESYS Forge
talk
(Post)
Hello, I am using a Hitachi Micro EHV+ for a small project, and I wanted to have a Web visu, done with Codesys V3.5 SP13 Patch 2. I test the Visu screen and it works well in Codesys, but I get a blank page when i enter the web visu in a browser. Here is the setting under web visualization: Update rate (ms): 5000 (previously set to 2500 also not working) Default communication size: 100000 (previously set to 50000 also not working) Under Visu_Task tab: Priority: 3 The Visu_Task interval is set to 2500ms (previously set to 200ms also not working) I'm using Google chrome with the latest update, the Javascript is enabled with HTML5. Any advice?
Last updated: 2024-04-06
CNC Jumps G20 - SMC_NCInterpreter and long time to process
CODESYS Forge
talk
(Thread)
CNC Jumps G20 - SMC_NCInterpreter and long time to process
Last updated: 2024-08-03
Temu Coupon Code $100 Off [acr639380] First Time User
CODESYS Forge
talk
(Thread)
Temu Coupon Code $100 Off [acr639380] First Time User
Last updated: 2024-10-18
Temu coupon code $100 off [acp856709] first time offer
CODESYS Forge
talk
(Thread)
Temu coupon code $100 off [acp856709] first time offer
Last updated: 2024-10-25
Temu Coupon Code $100 Off [acu934948] First Time User
CODESYS Forge
talk
(Thread)
Temu Coupon Code $100 Off [acu934948] First Time User
Last updated: 2024-10-25
Temu Coupon Code $100 offβ§ [act892435] for First-time Users
CODESYS Forge
talk
(Thread)
Temu Coupon Code $100 offβ§ [act892435] for First-time Users
Last updated: 2024-10-26
Temu Coupon Code [acu577459 & acq615756] first time customers
CODESYS Forge
talk
(Thread)
Temu Coupon Code [acu577459 & acq615756] first time customers
Last updated: 2024-10-26
Temu Coupon Code [acr552049 & acq615756] first time customers
CODESYS Forge
talk
(Thread)
Temu Coupon Code [acr552049 & acq615756] first time customers
Last updated: 2024-10-26
Temu Coupon Code 90% Off [acq615756] for First-Time Users
CODESYS Forge
talk
(Thread)
Temu Coupon Code 90% Off [acq615756] for First-Time Users
Last updated: 2024-10-26
Temu Discount Code UAE β£ ["^"acr900074"^"] for First-time Users
CODESYS Forge
talk
(Thread)
Temu Discount Code UAE β£ ["^"acr900074"^"] for First-time Users
Last updated: 2024-10-26
Temu Discount Code Romania βΉ ["^"act900074"^"] for First-time Users
CODESYS Forge
talk
(Thread)
Temu Discount Code Romania βΉ ["^"act900074"^"] for First-time Users
Last updated: 2024-10-26
[30% off] Temu Coupon Code β€ [acr900074] for First-time Users
CODESYS Forge
talk
(Thread)
[30% off] Temu Coupon Code β€ [acr900074] for First-time Users
Last updated: 2024-10-26
Temu Discount Code Chile β» ["^"acq615756"^"] for First-time Users
CODESYS Forge
talk
(Thread)
Temu Discount Code Chile β» ["^"acq615756"^"] for First-time Users
Last updated: 2024-10-26
Post by nz-dave on MC_HOMING
CODESYS Forge
talk
(Post)
also get this error in place of the other from time to time.
Last updated: 2025-04-04
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.