Post by nz-dave on Bool turning on in case stament in wrong state?
CODESYS Forge
talk
(Post)
I had the FB called via a for loop to call a few instances of my FB I have removed it the for loop and just called them 1 by 1. Seems to have sorted the problem. tho, i have other FB's and for loops doing the same thing but they are all fine. below is basically what was happening. var: mVibrator : ARRAY[1..GVL_Settings.Number_Of_Products] OF Main_Vibrator; end_var Controller(PRG) call: FOR v := 1 TO GVL_Settings.Number_Of_Products BY 1 DO; mVibrator[v] (); END_FOR So at state 30: the mVibrator[1].start was turning on 30: Main_Mixer.Start := TRUE; Process_State := 2; IF Main_mixer.Done THEN Main_Mixer.Start := FALSE; Control_State := 40; END_IF but its not till state 50: that it is actual in the code. 50: Main_Suction_valve.Open_Input := TRUE; mVibrator[1].Start := TRUE; Process_State := 4; IF GVL_Weigh_hopper.LoadCell_Weight = 0 THEN Main_Suction_valve.Open_Input := FALSE; mVibrator1.Start := FALSE; Control_State := 60; END_IF Thanks for your input.
Last updated: 2023-12-16
Post by mtho on JSON Utilities - JSON file written with invalid structure
CODESYS Forge
talk
(Post)
I'm using the JSON Utilities SL library to write configurations in my program to a file. I'm generating the JSON data using the builder function block and all appears to work correctly. When I write the jsondata to file, I'm finding that some of the JSON elements are not being written in the right location in the file. Rather than writing they keys under the parent object, they get written outside the root JSON object at the end of the file. If I then try to read the file back into the program, I get an invalid_structure error. I don't get any errors when populating the JSON data or when writing the file. I attached an example of the JSON writer output. The problems begin with key P200. Each P200 should go under MBR1 through MBR3. Among the rest of the keys, they are supposed to be under different parent objects. I am using default values for wsLineBreak and encoding.
Last updated: 2024-03-06
Post by manuknecht on High Cycle Times for SoftMotion_PlanningTask when using AxisGroup
CODESYS Forge
talk
(Post)
Hello all I am using an AxisGroup with the Gantry2 Kinematics to move a 2D-Gantry system. When creating the AxisGroup, the SoftMotion_PlanningTask is created automatically with a cycle time of 2 ms in my case. I realized that the maximum cycle time of this task can spike to very high values (up to 60 ms) at lower speeds of the motion, leading to synchronization issues and errors on the axes. The same behaviour - though not as drastic - can be observed with virtual axes too. Is this behaviour intended or to be expected? Can the cycle time or type of the SoftMotion_PlanningTask be changed to prevent these errors? Or is there another fix for this issue? I tried changing the cycle type to Freewheeling, which solved the synchronization issues, but caused an error on the AxisGroup after a while, reading SMC_CP_QUEUE_UNDERRUN. Thanks in advance and best regards Manuel
Last updated: 2024-03-07
Post by francescoc on Custom log CmpLog
CODESYS Forge
talk
(Post)
Hi, I am trying to create a log in my application. Since I cannot find any documentation regarding modifying the codesys configuration file to be able to log in ms, i tried to create a new log via CmpLog.LogCreate. Below is the part of the code where I create the logger and write a test string. In the log tab of codesys I actually see the new log that was created, but it is empty, and in the folder I cannot find any files. I can't find any detailed documentation. Can you guys give me support? Are there any examples? Thank you IF NOT FirstCycle THEN LogName:= 'LOGS/TestLog'; LogOptions.bEnable:= 1; LogOptions.iMaxEntries:= 5000; LogOptions.iMaxFiles:= 100; LogOptions.iMaxFileSize:= 5000; LogOptions.szName:= LogName; LogOptions.uiType:= CmpLog.LogTypes.LT_TIMESTAMP_RTC_HIGHRES; LogOptions.uiFilter:= CmpLog.LogClass.LOG_ALL; LogHandle:= CmpLog.LogCreate(pOptions := ADR(LogOptions), pResult:= ADR(Result)); LogHandle:= CmpLog.LogOpen(pszName:= LogName, pResult:= Result); Component_Manager.CMAddComponent2('TestLogNEW', 16#00000001, ADR(udiCmpIdNEW), 0); CmpLog.LogAdd2(LogHandle, udiCmpIdNEW, CmpLog.LogClass.LOG_INFO, 1, 1, 'Logger started...'); END_IF IF TestWrite THEN TestWrite:= FALSE; CmpLog.LogAdd2(LogHandle, udiCmpIdNEW, CmpLog.LogClass.LOG_INFO, 1, 1, 'Write test'); END_IF
Last updated: 2024-03-16
Post by jonasz on Deploy LicenseServer for Linux SL
CODESYS Forge
talk
(Post)
Good morning, I'm digging into this topic because I'm curious about resolving my problem in a test environment. In my previous message, I asked about the CODESYS Safe Timeprovider SL package (4.18.0.0), which I saw in the illustration. I noticed that it runs as a service. I am asking about this because from the perspective of an "ordinary" user, this service provides easier access to the settings of the time provider's operating parameters. The basic time provider configuration is outlined at https://content.helpme-codesys.com/en/CODESYS%20Control/_rtsl_virtual_safe_time_provider.html. Why my questions? They stem from my specific case, which is experiencing timeout issues. I know that my environment is currently only a test environment. I'm assuming a real-world scenario in which I won't be able to achieve a better result with my configuration, and I will ultimately need to increase the time provider's cycle time. By running the time provider service, I can easily influence the time provider's operation and thus eliminate the problem. I know, I know, safety systems are not life-enhancing extras.
Last updated: 2025-11-19
Post by andrebrandt on FB string and naming
CODESYS Forge
talk
(Post)
Hi all. I have a FB written in ST. FUNCTION_BLOCK NTC10k VAR_INPUT Syst:STRING; In:REAL; END_VAR VAR_OUTPUT Out:REAL; OTag:STRING; Out_St:Struct_NTC10K; END_VAR VAR Tag:STRING; InstanceName: STRING; Structure:Struct_NTC10K; END_VAR What i'm trying to do, is to pass data to structure. In structure i want to add a tag with systemnumber and sensorname. '320.001-RT401' In pou i use this RT401: NTC10k;, and tried this RT401: NTC10k(Tag:='RT401'); Anyone done this?
Last updated: 2024-09-26
Post by mini-developer on Profinet Exor connection drop
CODESYS Forge
talk
(Post)
Hello, I have a Exor HMI with 2 seperatred ETH interface's. It is Configured as PN Master on ETH interface 1 and the IO's are working, as long as the development PC is connected to the ETH 0 interface. When the PC is disconnected, the PN communication drops and a reconnection is started. I installed the newest device description for Codesys and Firmware for the Panel. The IO Gateway is from Weidmueller What could cause the Problem?
Last updated: 2024-10-16
Post by vincentger on using ADS1115
CODESYS Forge
talk
(Post)
Any reason the ADS1115 wouldnt work with SP20.1 and Runtime 10.0.0.0 on the Raspberry Pi . Using Bullseye or Buster i run into the same issue: Libary and integration works in general as described above BUT i am seeing "bleeding" between the analog inputs . Specifically consecutive ones: So sometimes the raw from AI1 shows on AI2, AI2 on AI3, .. AI4 on AI1. Even with filtering i cant smoothen that out properly and i feel like something is wrong. Almost like the bus is stumbling over itself, or the request from Codesys to the device.
Last updated: 2024-10-28
Post by varshag on Trying to pull Logged In user details and certain other variable values and in turn log to a database
CODESYS Forge
talk
(Post)
Hello All, I am new to Codesys and am trying to create a simple project which would let me log to a 6 column database table. I can use a push button on Visualization to initiate the logging. Column 1:Timestamp Column 2:Full name or Initials of Logged in operator Column 3,4,5,6: Certain variables Any help is highly appreciated. Thank you.
Last updated: 2024-11-07
Post by garrian on How to write multiple coils (Modbus FC15)
CODESYS Forge
talk
(Post)
Thanks! As far as I can see, the client can only send words. And on the server side there are an array for each of the functions: bool for coil and discrete, word for holding and input registers. I assume I can use holding register, then use bit mapping on the words instead of coils. But I really want to use the FC15/coils.
Last updated: 2024-11-17
Post by dogulas on Removing a symbol from the IEC Symbols Editor grid
CODESYS Forge
talk
(Post)
In the CODESYS IDE I have several symbols defined and I have IEC Symbol Publishing installed. On the IEC Symbol Publishing window and under the IEC Symbols Editor tab, I have dragged symbols from the tree on the left to the grid on the right. All this works fine. Now I want to remove one of the symbols from the grid on the right and I cannot see any way to do this. How can I remove a symbol from the grid on the right once I've added it?
Last updated: 2025-02-07
Post by hismoon on Inheritence of struct,
CODESYS Forge
talk
(Post)
Using a UNION instead of a STRUCT alone should give you that flexibility and only occupy memory once. And if you want to be really elegant, you could use an FB, which only holds PUBLIC VAR. Because a POU can use "EXTENDS"/inheritance. In CODESYS V3, an FB has a lot in common with C++ classes. Using ANY or ALIAS is rarely a good idea. It neither won't be pretty, nor have good readability and requires you to create a lot of error-prone things around it.
Last updated: 2025-03-14
Post by installwhat on Ethercat and profinet on together
CODESYS Forge
talk
(Post)
I'm curious about the impact of having profinet and Ethercat (specifically softmotion so frame at start of task?) running together. Since it's advised to access the data from the bus task should have both profinet io and ethercat on the same task? Are there any implications around this one should be aware of especially since the frame at task start is just, so far as I'm aware, an ethercat thing? Thanks
Last updated: 2025-04-08
Post by altus22 on RemoteTargetVisu creates Unresolved Reference
CODESYS Forge
talk
(Post)
In order to set the placeholder to empty, open the Library Manager and click on Placeholders in the Library Manager ribbon. If you left click in the library column for CmpEventMgr Implementation, it will show you the available library versions for CmpEventMgr Implementation. To update the runtime, open the Project menu and select Project Environment. That window will show you the current version of CmpUserMgr Implementation and if there is a newer version available in the Recommended column.
Last updated: 2025-04-17
Post by vsgn on Passing properties as VAR_IN_OUT variables.
CODESYS Forge
talk
(Post)
Hi, in my experience, the best options for such a case could be: 1. Pass a FunctionBlock via VAR_IN_OUT, containing all variables, mehods and properties needed for the logic of this graphic element (be aware of implementing correcly both get and set accessor for properties) 2. Pass an Interface via VAR_INPUT, of which you can use obviously only Properties and Methods. This is much more elegant for me. Here, you can just pass directly the instance of a FunctionBlock implementing such Interface as input. Hope you'll find this suggestions useful.
Last updated: 2025-05-13
Post by janp on IFM Controller Connection Issue
CODESYS Forge
talk
(Post)
Hi everyone, I’m using an IFM ecomatBasic CR413S controller and having trouble connecting it to CODESYS 3.5. I have CODESYS SP18 installed, as recommended in the manual, and I’ve tried different patches. I’ve also installed all the packages provided on the IFM website for this controller. I can successfully connect to the ecomatBasic template, but I’m unable to connect when using the CR413S-specific template that includes all the inputs and outputs. Has anyone encountered this issue or knows a solution? Best regards, Jan
Last updated: 2025-05-22
Post by janp on IFM Controller Connection Issue
CODESYS Forge
talk
(Post)
Hi everyone, I’m using an IFM ecomatBasic CR413S controller and having trouble connecting it to CODESYS 3.5. I have CODESYS SP18 installed, as recommended in the manual, and I’ve tried different patches. I’ve also installed all the packages provided on the IFM website for this controller. I can successfully connect to the ecomatBasic template, but I’m unable to connect when using the CR413S-specific template that includes all the inputs and outputs. Has anyone encountered this issue or knows a solution? Best regards, Jan
Last updated: 2025-05-22
Post by griinde on display values with frames
CODESYS Forge
talk
(Post)
i want to make a frame for use multiple places for showing pressure and temperature. ive tried to decleare a variable in the frame config, if i put a fixed value in the value text field it show correct until i simulate. and if i point to a variable i gvl it show the name of the variable, and when i simulate it shows rValue. is there a way to do what i want?
Last updated: 2025-08-16
Post by timvh on I want to show the current recipe name in the visualization screen
CODESYS Forge
talk
(Post)
Maybe the easiest solution for you is to add one STRING variable to your recipe and enter the name of the recipe in variable value. This is little bit double the work (naming the recipe and entering the value of the STRING variable), but in that case you always have the current value of the variable which you can read from the application and show in the visualization.
Last updated: 2025-09-04
Post by bmatlove on AXIS_REF_SM3 Error Codes?
CODESYS Forge
talk
(Post)
I'm trying to firm up alarming of axis faults. Declutter the code and figure out what's what. Diving into it, I see the AXIS_REF_SM3 function block provides uiDriveInterfaceError and dwErrorId, but I can't find any significance of these further than Drive interface error number Parameter number: 1014 and Drive specific error identifier, parameter number: 1031, respectively. Is there some corresponding appendix I could use to decode these? Also, is there any relation to the Error ID (of type SMC_Error) of the MC POUs? MC_Jog, MC_Reset, MC_MoveRelative, etc? If so, are the above errors redundant? Thanks in advance.
Last updated: 2025-09-22
Post by takashi on CODESYSControlWinCE Crash
CODESYS Forge
talk
(Post)
Hey all CODESYS-experts. I'm at a customer site, and we hade a power-failure and one of the devices apparently runs codesys and has crashed. It's an old device (out of warranty) that is bought many years ago. Now this device doesn't seem to boot. Any idea what to do in this case? We have access to the drive so we have access to the files. See screenshots.
Last updated: 2024-01-23
Post by hsmw-wolf on How to fix Codesys Simulation Exception ?
CODESYS Forge
talk
(Post)
Did anybody have a solution for this problem? I have the same issue and it occured as i wanted to continue work after the weekend. On Friday the simulation was working fine and on Monday thise error appears. There should be a more specific fault description to be honest. As I am writing I try to repair the installation and hope, that this will work. Still I am frustrated, because I don't know where to look for eliminating this fault. I am using CODESYS 3.5 SP19 Patch 5.
Last updated: 2024-01-29
Post by androidzz on Json Builder problem?
CODESYS Forge
talk
(Post)
Dear reader, I am using the codesys JSON utilities SL, 1.9.0.0 library. And then specifically the FB JSONBuilder. I need to create a main object with at least 2 objects in it. The first object is no problem, but I cannot insert the second object into the main object. See attached my code and the result I get. I am assuming that I am doing something wrong with the parent index but have tried a lot and can't get it done. Kind regards, Rob
Last updated: 2024-03-11
Post by esave on Stepper Drive with Ethercat
CODESYS Forge
talk
(Post)
I bought and installed SoftMotion Light now. When I try to add a SoftMotion Light Axis to my stepper drive and I go online it shows: "The license is missing or invalid". See picture What am I doing wrong? This is the right way right? First add your EtherCat XML-File from your stepper driver and then add the SoftMotion Light axis right? Thanks for your help esave
Last updated: 2024-04-25
Post by yannickasselin on How to sort JSON object in codesys
CODESYS Forge
talk
(Post)
Just adding: sSubscriberdata := ''; Right before your memcopy should fix the extra characters. It is because your are copying 36 characters into a string which can contain more than 36 characters and there is garbage left in the extra characters. Regarding the parsing of json, I usually build a structure that mirrors the json data and use the available methods in the IIoT library to parse the data and fill the structure.
Last updated: 2024-05-08
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.