Post by salvadegianluca on List files in a directory with SysDiropen And SysDirRead
CODESYS Forge
talk
(Post)
Good morning; I'm facing an issue that seems being caused by the library itself. I'm trying to create the list of all the files that are stored inside a psecific directory. Unluckily the first file is allways hidden. VAR CONSTANT arysEmptyArray:ARRAY[iArrayMinDimension..iArrayMAXDimension] OF STRING := [(iArrayMAXDimension - iArrayMinDimension)('')]; iArrayMinDimension:INT := 1; iArrayMAXDimension:INT := 99; END_VAR VAR_INPUT sDirectoryToInspect:STRING; sSearchFilter:STRING; END_VAR VAR_IN_OUT xCheckFileInsideDirectory:BOOL; END_VAR VAR arysListOfFoundFiles:ARRAY[iArrayMinDimension..iArrayMAXDimension] OF STRING; sNullString:STRING; iNullIndex:INT := 0; libInfoAboutThePath:DirInfo; libResultOfThePathMonitoring:CmpErrors.RTS_IEC_RESULT; libInstanceToMonitorThePath:CmpErrors.RTS_IEC_HANDLE; sEntityToSearch:STRING; dMaxEntityDimension:DINT := SIZEOF(sEntityToSearch); libFileInfo:DirInfo; sFilteredFileName:STRING; iIndexToScrollArrays:INT; END_VAR IF xCheckFileInsideDirectory THEN arysListOfFoundFiles:=arysEmptyArray; iIndexToScrollArrays:=iArrayMinDimension; libInstanceToMonitorThePath:= SysDirOpen(szDir:= sDirectoryToInspect,szDirEntry:=sNullString,diMaxDirEntry:= iNullIndex,pDirInfo:= ADR(libInfoAboutThePath),pResult:= ADR(libResultOfThePathMonitoring)); WHILE libResultOfThePathMonitoring = Errors.ERR_OK AND iIndexToScrollArrays <= iArrayMAXDimension DO sEntityToSearch:= ''; libResultOfThePathMonitoring:=SysDirRead(hDir:=libInstanceToMonitorThePath,szDirEntry:=sEntityToSearch,diMaxDirEntry:=dMaxEntityDimension,pDirInfo:=ADR(libFileInfo)); sFilteredFileName:= FUN_06_00_FindItemInString_0(sFilter:=sSearchFilter,sSource:=sEntityToSearch); IF sFilteredFileName <> '' THEN arysListOfFoundFiles[iIndexToScrollArrays]:=sFilteredFileName; iIndexToScrollArrays:=iIndexToScrollArrays + 1; END_IF IF libResultOfThePathMonitoring <> Errors.ERR_OK THEN libResultOfThePathMonitoring:= Errors.ERR_OK; END_IF END_WHILE libResultOfThePathMonitoring:=SysDirClose(hDir:= libInstanceToMonitorThePath); xCheckFileInsideDirectory:=FALSE; END_IF How is possible to solve this issue? Any known work around?
Last updated: 2024-09-17
Post by salvadegianluca on List files in a directory with SysDiropen And SysDirRead
CODESYS Forge
talk
(Post)
Good morning; I'm facing an issue that seems being caused by the library itself. I'm trying to create the list of all the files that are stored inside a psecific directory. Unluckily the first file is allways hidden. VAR CONSTANT arysEmptyArray:ARRAY[iArrayMinDimension..iArrayMAXDimension] OF STRING := [(iArrayMAXDimension - iArrayMinDimension)('')]; iArrayMinDimension:INT := 1; iArrayMAXDimension:INT := 99; END_VAR VAR_INPUT sDirectoryToInspect:STRING; sSearchFilter:STRING; END_VAR VAR_IN_OUT xCheckFileInsideDirectory:BOOL; END_VAR VAR arysListOfFoundFiles:ARRAY[iArrayMinDimension..iArrayMAXDimension] OF STRING; sNullString:STRING; iNullIndex:INT := 0; libInfoAboutThePath:DirInfo; libResultOfThePathMonitoring:CmpErrors.RTS_IEC_RESULT; libInstanceToMonitorThePath:CmpErrors.RTS_IEC_HANDLE; sEntityToSearch:STRING; dMaxEntityDimension:DINT := SIZEOF(sEntityToSearch); libFileInfo:DirInfo; sFilteredFileName:STRING; iIndexToScrollArrays:INT; END_VAR IF xCheckFileInsideDirectory THEN arysListOfFoundFiles:=arysEmptyArray; iIndexToScrollArrays:=iArrayMinDimension; libInstanceToMonitorThePath:= SysDirOpen(szDir:= sDirectoryToInspect,szDirEntry:=sNullString,diMaxDirEntry:= iNullIndex,pDirInfo:= ADR(libInfoAboutThePath),pResult:= ADR(libResultOfThePathMonitoring)); WHILE libResultOfThePathMonitoring = Errors.ERR_OK AND iIndexToScrollArrays <= iArrayMAXDimension DO sEntityToSearch:= ''; libResultOfThePathMonitoring:=SysDirRead(hDir:=libInstanceToMonitorThePath,szDirEntry:=sEntityToSearch,diMaxDirEntry:=dMaxEntityDimension,pDirInfo:=ADR(libFileInfo)); sFilteredFileName:= FUN_06_00_FindItemInString_0(sFilter:=sSearchFilter,sSource:=sEntityToSearch); IF sFilteredFileName <> '' THEN arysListOfFoundFiles[iIndexToScrollArrays]:=sFilteredFileName; iIndexToScrollArrays:=iIndexToScrollArrays + 1; END_IF IF libResultOfThePathMonitoring <> Errors.ERR_OK THEN libResultOfThePathMonitoring:= Errors.ERR_OK; END_IF END_WHILE libResultOfThePathMonitoring:=SysDirClose(hDir:= libInstanceToMonitorThePath); xCheckFileInsideDirectory:=FALSE; END_IF How is possible to solve this issue? Any known work around?
Last updated: 2024-09-17
Post by salvadegianluca on List files in a directory with SysDiropen And SysDirRead
CODESYS Forge
talk
(Post)
Good morning; I'm facing an issue that seems being caused by the library itself. I'm trying to create the list of all the files that are stored inside a psecific directory. Unluckily the first file is allways hidden. VAR CONSTANT arysEmptyArray:ARRAY[iArrayMinDimension..iArrayMAXDimension] OF STRING := [(iArrayMAXDimension - iArrayMinDimension)('')]; iArrayMinDimension:INT := 1; iArrayMAXDimension:INT := 99; END_VAR VAR_INPUT sDirectoryToInspect:STRING; sSearchFilter:STRING; END_VAR VAR_IN_OUT xCheckFileInsideDirectory:BOOL; END_VAR VAR arysListOfFoundFiles:ARRAY[iArrayMinDimension..iArrayMAXDimension] OF STRING; sNullString:STRING; iNullIndex:INT := 0; libInfoAboutThePath:DirInfo; libResultOfThePathMonitoring:CmpErrors.RTS_IEC_RESULT; libInstanceToMonitorThePath:CmpErrors.RTS_IEC_HANDLE; sEntityToSearch:STRING; dMaxEntityDimension:DINT := SIZEOF(sEntityToSearch); libFileInfo:DirInfo; sFilteredFileName:STRING; iIndexToScrollArrays:INT; END_VAR IF xCheckFileInsideDirectory THEN arysListOfFoundFiles:=arysEmptyArray; iIndexToScrollArrays:=iArrayMinDimension; libInstanceToMonitorThePath:= SysDirOpen(szDir:= sDirectoryToInspect,szDirEntry:=sNullString,diMaxDirEntry:= iNullIndex,pDirInfo:= ADR(libInfoAboutThePath),pResult:= ADR(libResultOfThePathMonitoring)); WHILE libResultOfThePathMonitoring = Errors.ERR_OK AND iIndexToScrollArrays <= iArrayMAXDimension DO sEntityToSearch:= ''; libResultOfThePathMonitoring:=SysDirRead(hDir:=libInstanceToMonitorThePath,szDirEntry:=sEntityToSearch,diMaxDirEntry:=dMaxEntityDimension,pDirInfo:=ADR(libFileInfo)); sFilteredFileName:= FUN_06_00_FindItemInString_0(sFilter:=sSearchFilter,sSource:=sEntityToSearch); IF sFilteredFileName <> '' THEN arysListOfFoundFiles[iIndexToScrollArrays]:=sFilteredFileName; iIndexToScrollArrays:=iIndexToScrollArrays + 1; END_IF IF libResultOfThePathMonitoring <> Errors.ERR_OK THEN libResultOfThePathMonitoring:= Errors.ERR_OK; END_IF END_WHILE libResultOfThePathMonitoring:=SysDirClose(hDir:= libInstanceToMonitorThePath); xCheckFileInsideDirectory:=FALSE; END_IF How is possible to solve this issue? Any known work around?
Last updated: 2024-09-17
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 tehthoams on Library Search not working
CODESYS Forge
talk
(Post)
Hello All! Having a strange issue. When adding a library, I'm unable to search. Each time a window pops up 'creating the search index' and then has 0 results. I have the same behavior when using the library repository and pressing the 'Find' button. I wonder if there is a way to reset or fix this issue? It is making it very difficult to search and find proper libraries to add to my project. Much appreciated.
Last updated: 2023-10-17
Post by mrbartpawlowski on OMAC PackML library 1.0.04
CODESYS Forge
talk
(Post)
Hello all, Can someone point me to the OMAC PackML State Machine library documentation, I can't find any description of the block functionality ? I was looking into https://content.helpme-codesys.com/en/libs/index.html but there's no PackML there. I'm new to Codesys and don't know if I'm doing something wrong here ? In library tab in codesys whenever I want to see documentation I'm getting an error. Regards Bart
Last updated: 2024-08-15
Post by mrbartpawlowski on OMAC PackML library 1.0.04
CODESYS Forge
talk
(Post)
Hello all, Can someone point me to the OMAC PackML State Machine library documentation, I can't find any description of the block functionality ? I was looking into https://content.helpme-codesys.com/en/libs/index.html but there's no PackML there. I'm new to Codesys and don't know if I'm doing something wrong here ? In library tab in codesys whenever I want to see documentation I'm getting an error. Regards Bart
Last updated: 2024-08-15
Post by martinla on New Codesys Library Dependencies
CODESYS Forge
talk
(Post)
When creating a new Codesys library, I am getting 2 errors for missing libraries. I can see that I am using newer versions of these in the library manager (3.5.17.0 and 3.5.19.0 opposed to 3.5.8.0 and 3.5.7.0 stated in the errors). IDE Version is V3.5 SP19 Patch 6. The "Download missing libraries..." button in Messages list is not doing anything. Why is it looking for older versions of these libraries? Can this be fixed by using the newer versions? How can I download & install the older version of these libraries?
Last updated: 2024-02-29
Post by carohe on VisuNamespace != null
CODESYS Forge
talk
(Post)
Hello, this error occured frequently over the past couple of weeks. I found out, when adding a webvisu, CODESYS added Visu libraries in the library manager. One of the libraries was the "VisuElemsAlarm" library. In my case it added this one with the version 4.3.0.0. However another library that also contained the "VisuElemsAlarm", used the "VisuElemsAlarm" with the version "4.4.0.0". After changing the Version "4.4.0.0" and uninstalling this version, the error has not occured anymore. Regards, carohe
Last updated: 2024-04-02
Post by installwhat on raspistepper error after install
CODESYS Forge
talk
(Post)
I've had issues getting the raspistepper installed, all due to errors upon installation. The closest I get is the pictured error. The functions are in the sm3_shared library. I can add this library but that leaves 2 issues. I don't actually know, and I really want to understand this, why the required dependencies haven't been installed correctly. If I add the library it's only available with through the namespace. What can I do to both understand and resolve this? Thanks edit codesys 64 3.5.20.0 - same error on other versions too sm3 raspi stepper 0.0.0.5
Last updated: 2024-04-20
Post by culius on Official MQTT-Client: MAX_RECEIVE_BUFFER_SIZE_EXCEEDED
CODESYS Forge
talk
(Post)
Thank you very much for your reply. That helped, it is editable if the library is at root level. Unfortunately, I noticed that I am not using the MQTT client SL, but the AzureMQTTClient from the Azure IoT Hub Client SL library. At first glance, there is no parameter to increase the message size. Does anyone know how to increase this in the library or is it simply not possible here?
Last updated: 2024-06-08
Post by agilename on J1939 manager DM1 message reading
CODESYS Forge
talk
(Post)
https://content.helpme-codesys.com/en/CODESYS%20CANbus/_can_f_j1939_diagnosis_application.html you need this : VAR J1939_ECU:j1939.J1939RemoteECUDiag; DM1_ :j1939.DM1_Read; DTCliste : J1939.idtchandlerList; DTCWriter : j1939.DTCBufferWriter; arDTC:ARRAY[0..MaxDTC]OF j1939.DTC; END_VAR VAR CONSTANT MaxDTC:UDINT :=100; END_VAR DM1_( xEnable:=TRUE, xDone=> , xBusy=> , xError=> , itfSourceECU:= J1939_ECU, //My CAN J1939 ECU itfDTCHandlerList=> DTCListe , udiDTCCount=> , MalfunctionIndicatorLamp=> , RedStopLamp=> , AmberWarningLamp=> , ProtectLamp=> , xReceived=> , eError=> ); DTCWriter( xEnable:= TRUE, itfDTCHandlerList:=DM1_, eError=> , pDTCBuffer:=ADR(arDTC) , udiDTCBufferCount:=MaxDTC , udiDTCReceiveCount=> , udiDTCLostCount=> , xReceived=> );
Last updated: 2024-09-05
Post by wayne-riesterer on Assignment Efficiency - Repetitive Assignment vs IF statement
CODESYS Forge
talk
(Post)
Hello Can anyone see any problems with constant assignment as in the following statement: Coils[0] := Coils[0] OR (Buttons[0] AND Sensors[0] > 6); Rather than using the more verbose and vertically-larger: IF NOT Coils[0] AND Buttons[0] AND (Sensors[0] > 6) THEN Coils[0] := TRUE; END_IF Also, is the test expression short-circuited in the latter case? In other words, will the runtime move on after it sees Coils[0] = FALSE AND? Thanks
Last updated: 2025-03-07
Post by totorovic on CSVReaderInit returns error : INVALID_HANDLE
CODESYS Forge
talk
(Post)
Actually no solution. We are waiting Codesys reply. Latest version of library : licence error message Version 1.0.0.5 : INVALID_HANDLE error message
Last updated: 2023-08-21
Post by i-campbell on Ping By Name
CODESYS Forge
talk
(Post)
What library is that? Net Base Services Is there a version 9.2 ? I've not heard of a version 9.2
Last updated: 2023-08-25
Post by damian177 on Codesys V3.5 + Pixtend v1.3 + RaspberryPi
CODESYS Forge
talk
(Post)
I solved my problem by adding CAA DTUtil Extern library. Now works.!
Last updated: 2023-09-28
Post by chiali on Recipe issue.
CODESYS Forge
talk
(Post)
High, and Thanks, but how could I guess about this library. Normally it should be added automatically! Thanks again. Best regards.
Last updated: 2023-10-27
Post by helcioburd on When using the Element Collections library, is there a proper way to remove a dynamically created collection from memory?
CODESYS Forge
talk
(Post)
I am having exactly the same question...
Last updated: 2023-10-31
Post by kumareasu on Hydraulic Axis Controller
CODESYS Forge
talk
(Post)
I want to make Hydraulic Axis Controller with Linear encoder feedback. Any library available ?
Last updated: 2023-12-08
Post by ron-rp on Errors with VisuUserManagement library
CODESYS Forge
talk
(Post)
I dont even need to clean, just compile again and the error disappears hopefullt someone knows what to do with it..
Last updated: 2024-07-14
Post by pazderai on CanOpen write issue
CODESYS Forge
talk
(Post)
Anyway, any idea how to get command byte 0x22 for sdo write if I use codesys cia405 canopen library?
Last updated: 2024-07-16
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 bamir on Calculate Time Between Two Events Using RTC
CODESYS Forge
talk
(Post)
Hi Just wanted to know which library is used to get sys_time
Last updated: 2024-08-14
Post by jeffersonhui on SysLibMem.lib Where To Download?
CODESYS Forge
talk
(Post)
Hi, Does anyone know where I can download the SysLibMem.lib library for Codesys 2.3?
Last updated: 2024-08-22
Post by trusty-squire on How to revert to previous version library
CODESYS Forge
talk
(Post)
Hi, I'm experiencing a bug with the latest version of SoftMotion CNC library (4.17), where the 3DPath object in Visu is missing all the important properties. I've verified that a previous app I was working on with library version 4.16 did not have this issue and the issue is duplicated in that project when I update it to 4.17. I've already submitted a bug report, but for the time being I need to revert the project I'm currently working on back a revision. I've tried right clicking on the library but the option to select the version is greyed out. Can anyone help me?
Last updated: 2024-09-05
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.