Post by timvh on Current Visu name without Current Visu Variable
CODESYS Forge
talk
(Post)
To change the current visualization for (all) webclients: Add the library “Visu Utils” and use the following example code: VAR xChangeVisu: BOOL; fbChangeVisu : VU.FbChangeVisu; END_VAR // Change to Visu2 when setting xChangeVisu to TRUE fbChangeVisu( xExecute:= xChangeVisu, xDone=> , xBusy=> , xError=> , itfClientFilter:= VU.Globals.OnlyWebVisu, //itfFilter, eError=> , sVisuName:= 'Visu2'); IF fbChangeVisu.xDone OR fbChangeVisu.xError THEN xChangeVisu := FALSE; END_IF
Last updated: 2025-08-13
Post by nz-dave on Bool turning on in case stament in wrong state?
CODESYS Forge
talk
(Post)
pretty sure its not. ive done a cross reference and only have one write that sets it to true. Only way i can stop it is to remove the function block call from the main pou that is running said case. its got me stumped:/
Last updated: 2023-12-16
Post by timvh on Device diagnosis ( EtherCAT IO card )
CODESYS Forge
talk
(Post)
You can get the state by just using the name of your node (same name as in device tree): VAR etcState: IoDrvEthercatDriverLib.ETC_SLAVE_STATE; END_VAR etcState := EJ1100.wState; Alternatively, you can iterate through the device tree to get the status of all (Ethercat) nodes. See here an example (no guarantee it works, just give as suggestion): PROGRAM P_IO_State VAR CONSTANT uiMAX_NR_OF_TERMINALS : UINT := 100; END_VAR VAR // general device diagnosis // can only be used when the Device - PLC Settings - Advanced settings - enable diagnosis for devices is enabled // this will add the DED library coupler: DED.INode; terminal: DED.INode; aDeviceState: ARRAY[0..uiMAX_NR_OF_TERMINALS - 1] OF DED.DEVICE_STATE; uiTerminalCount : UINT; uiIndex : UINT; // for each terminal check if it implements device diagnostics xQueryResult: BOOL; itfDevice : DED.IDevice2; xDiagAvailable: BOOL; eError: DED.ERROR; xEverythingOK: BOOL; END_VAR uiTerminalCount := 0; // start at the top of the device tree with the first EtherCAT coupler coupler := EtherCAT_Master.FirstChildNode; WHILE coupler <> 0 DO // for each coupler that is found start at the first terminal terminal := coupler.FirstChildNode; WHILE terminal <> 0 AND uiTerminalCount < uiMAX_NR_OF_TERMINALS - 1 DO // for each terminal that is found get the status through the device diagnosis interface xQueryResult := __QUERYINTERFACE(terminal, itfDevice); IF xQueryResult THEN aDeviceState[uiTerminalCount] := itfDevice.GetDeviceState(xDiagnosisInfoAvailable => xDiagAvailable, eError => eError); uiTerminalCount := uiTerminalCount + 1; END_IF terminal := terminal.NextSiblingNode; END_WHILE coupler := coupler.NextSiblingNode; END_WHILE uiIndex := 0; xEverythingOK := TRUE; WHILE uiIndex < uiTerminalCount DO IF aDeviceState[uiIndex] <> DED.DEVICE_STATE.RUNNING THEN xEverythingOK := FALSE; EXIT; END_IF uiIndex := uiIndex + 1; END_WHILE
Last updated: 2025-02-06
Post by mxj262 on FB having single input but initialized with Array
CODESYS Forge
talk
(Post)
I am adding elements of an ARRAY using pointer to access each element inside a FOR loop and the FOR loop does not stop! What is the right way to use pointers in such case?? I have another loop that is not using pointer and it stops but the loop using pointer keep on adding. METHOD FB_Init: BOOL VAR_INPUT bInitRetains: BOOL; // TRUE: the retain variables are initialized (reset warm / reset cold) bInCopyCode: BOOL; // TRUE: the instance will be copied to the copy code afterward (online change) END_VAR VAR_IN_OUT // basically REFERENCE TO window_buffer: ARRAY [*] OF INT; // array of any size END_VAR THIS^.windowPtr := ADR(window_buffer[0]); THIS^.windowSize := UPPER_BOUND(window_buffer, 1) - LOWER_BOUND(window_buffer, 1) + 1; FUNCTION_BLOCK FB500 VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR windowPtr: POINTER TO INT; windowSize: DINT; currentIndex: UINT; element1:INT; element2:INT; i:INT; j:INT; sum:DINT:=0; END_VAR element1:=windowPtr[0]; // read the first element of the Array dynamic memorry element2:=windowPtr[1]; FOR i:=0 TO (TO_INT(windowSize-1)) BY 1 DO // this loop does not stop Sum:=sum + windowPtr[i]; END_FOR FOR j:=0 TO 5 BY 1 DO // this loop stops j:=j+1; END_FOR https://ibb.co/k3DhkZT
Last updated: 2024-05-06
Post by blitz on Can't get SMC_SmoothPath to work
CODESYS Forge
talk
(Post)
This code works well: PROGRAM PLC_PRG VAR execute : BOOL; abort : BOOL; doMDI : BOOL; manualDataInput : STRING(1024) := 'N5 G01 X0.00 Y200.00 N6 G01 X200.00 Y200.00 N7 G01 X200.00 Y0.00 N8 G01 X0.00 Y0.00'; stringStreamArray: ARRAY[0..NUMBER_OF_CHAINS-1] OF SMC_StringStream2 ; i : UDINT; readNCFromStream : SMC_ReadNCFromStream; sentencesFromStringSteam : SMC_GSentenceQueue ; interpreter : SMC_NCInterpreter; interpreterGeoInfoBuffer: ARRAY[1..GEO_INFO_BUFFERS_SIZE] OF SMC_GeoInfo; roundPath : SMC_RoundPath; roundPathGeoInfoBuffer: ARRAY[1..GEO_INFO_BUFFERS_SIZE] OF SMC_GeoInfo; END_VAR VAR CONSTANT MDI_FILE_NAME : STRING := 'MDI.nc'; NUMBER_OF_CHAINS : UDINT := 15; GEO_INFO_BUFFERS_SIZE : DINT := 500; END_VAR readNCFromStream.bExecute := interpreter.bExecute := roundPath.bExecute := execute; readNCFromStream.bAbort := interpreter.bAbort := roundPath.bAbort := abort; IF doMDI THEN stringStreamArray[0].Init(MDI_FILE_NAME); stringStreamArray[0].AppendData(manualDataInput); stringStreamArray[0].SetEndOfData(); i := 0 ; WHILE i < NUMBER_OF_CHAINS DO readNCFromStream.aStream[i] := stringStreamArray[i]; i := i + 1 ; END_WHILE readNCFromStream.bExecute := TRUE; IF readNCFromStream.bBusy THEN ; END_IF END_IF readNCFromStream( fDefaultVel := 10, fDefaultAccel := 10, fDefaultDecel := 10, fDefaultVelFF := 10, fDefaultAccelFF := 10, fDefaultDecelFF := 10, sentences := sentencesFromStringSteam ); interpreter( sentences:= sentencesFromStringSteam, nSizeOutQueue:= SIZEOF(interpreterGeoInfoBuffer), pbyBufferOutQueue:= ADR(interpreterGeoInfoBuffer)); roundPath( poqDataIn := interpreter.poqDataOut, dRadius := , dAngleTol := , nSizeOutQueue := SIZEOF(roundPathGeoInfoBuffer), pbyBufferOutQueue := ADR(roundPathGeoInfoBuffer));
Last updated: 2026-01-09
Post by lepewe4ka on Sysmac Studio to Codesys
CODESYS Forge
talk
(Post)
Could you send me an example? I would like to generate a data structure using XML files.
Last updated: 2023-09-20
Post by lepewe4ka on Sysmac Studio to Codesys
CODESYS Forge
talk
(Post)
Could you send me an example? I would like to generate a data structure using XML files.
Last updated: 2023-09-20
Post by vladimirsmall on Send data to USB
CODESYS Forge
talk
(Post)
Hello/ Need send some file ( for example Array of string) to USB. Which library need used for this. Thank you
Last updated: 2024-07-20
Post by damian177 on Problem with downloading OPC UA tags by Data Source Manager
CODESYS Forge
talk
(Post)
After 3 hours is some progress - please find in attachment - progress1.jpg
Last updated: 2024-09-04
Post by lsislsis on RPI Serial port connects with no errors but not data being transmitted or received
CODESYS Forge
talk
(Post)
Is there any solution because we have the same problem with other hardware?
Last updated: 2024-09-30
Post by tonyadrem on update data/tim
CODESYS Forge
talk
(Post)
Hello How to update the dates from timestamp to the actual time? THX!
Last updated: 2025-08-25
Post by tonyadrem on update data/tim
CODESYS Forge
talk
(Post)
Hello How to update the dates from timestamp to the actual time? THX!
Last updated: 2025-08-25
Post by trycyclepower on How to transfer data from DINT to Union(16 Bools) which I need to use in Few FBs
CODESYS Forge
talk
(Post)
Thanks a lot, it worked.
Last updated: 2023-12-14
Post by eschwellinger on Data Transferring between 2 PLCs in a same PC
CODESYS Forge
talk
(Post)
.. this will not work on the same pc
Last updated: 2024-02-06
Post by hasangenc on DI4 USB - Transfer Data
CODESYS Forge
talk
(Post)
Hi! Did you find any solution to your problem. I'm having the same right now. Best Regards.
Last updated: 2024-02-19
Post by hasangenc on DI4 USB - Transfer Data
CODESYS Forge
talk
(Post)
Well, Hi again. I solve the problem, if anyone having the same problem, I might help. You can reach me through this platform.
Last updated: 2024-02-22
Post by egau on Git - User identification data is lost when codesys is closed
CODESYS Forge
talk
(Post)
It bothers me for sure.
Last updated: 2024-04-04
Post by nano on Persistent variable storage
CODESYS Forge
talk
(Post)
use the persistence manager. with the persistence-manager, you're aböe to define how, when and where you store your data
Last updated: 2024-06-16
Post by mos89p on Data source and safety PLC
CODESYS Forge
talk
(Post)
it works only for me when i specify an IP adress in communication tab
Last updated: 2024-06-17
Post by albertovalente on How extract JSONElement containing Array data
CODESYS Forge
talk
(Post)
Hi Creator: hazarath, Have you fix the problem? because I have the same issue Thanks a lot
Last updated: 2025-11-12
Post by albertovalente on How extract JSONElement containing Array data
CODESYS Forge
talk
(Post)
Hi Creator: hazarath, Have you fix the problem? because I have the same issue Thanks a lot
Last updated: 2025-11-12
Post by jbcregen on Accessing parameters from a structure or function block with the web interface
CODESYS Forge
talk
(Post)
Confirmed. The Data Analyzer tool can indeed access all OPC-UA symbols. Thanks !
Last updated: 2025-12-02
Post by ranadheer on Publish Multiple Topics via MQTT
CODESYS Forge
talk
(Post)
could you suggest the process you followed to make publish the data through the broker application (Mosquitto)
Last updated: 2025-12-10
Post by ranadheer on Publish Multiple Topics via MQTT
CODESYS Forge
talk
(Post)
could you suggest the process you followed to make publish the data through the broker application (Mosquitto)
Last updated: 2025-12-10
Post by martinlithlith on CODESYS Control for Raspberry Pi SL on Raspberry Pi 4b
CODESYS Forge
talk
(Post)
hi! a quick question - is it possible to run CODESYS Control for Raspberry Pi SL license on a raspberry pi 4b? i know it says all models in the data sheet, but im not sure it the data sheet has been updated seince the MC-processors for pi. best, Martin
Last updated: 2023-09-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.