Post by jeroenaero on CodeSys Raspberry pi I2C driver not found
CODESYS Forge
talk
(Post)
okay, the weird thing is the driver is only continuous running when i enable debug output. if debug is not enabled it's continuous switching from running to not running. i will check again and download the libraries Which versions of libraries do you use, can you send a screenshot?
Last updated: 2024-11-08
Post by timvh on Converting each character to a string into ASCII
CODESYS Forge
talk
(Post)
Nice puzzle for a Saturday afternoon :-). Here my suggestion: VAR sInput : STRING := 'R123'; byChar : BYTE; sOutput : STRING; i: INT; END_VAR sOutput := ''; IF LEN(sInput) = 0 THEN RETURN; END_IF FOR i := 0 TO LEN(sInput) - 1 DO byChar := sInput[i]; sOutput := Concat(sOutput, TO_STRING(byChar)); END_FOR
Last updated: 2024-11-09
Post by andrax on CodeSys Raspberry pi I2C driver not found
CODESYS Forge
talk
(Post)
I took a look at your project. First of all, a Raspbery Pi4 is installed. You must use the GPIOs_A_B(GPIOs B+/Pi2). The error ULINT can't be set to IDINT.... with your project as well. If I change your project to ‘CODESYS_Control_for_Raspberry_Pi_SL’ the error is gone.
Last updated: 2024-11-09
Post by jeroenaero on CodeSys Raspberry pi I2C driver not found
CODESYS Forge
talk
(Post)
I don't have a multiplexer so it very weird that it connects with that multiplexer. If i do a I2C scan on the PI terminal, i only get the device addresses 0x48 and 0x51. One for the ADC and one for RTC. I will try again with your libraries
Last updated: 2024-11-12
Post by dkugler on EtherCAT Master: How many error frames till bus error
CODESYS Forge
talk
(Post)
The story behind: I have had a EhterCAT fieldbus system where sometimes error frames occured. I noticed that the master is tolerant for some error frames, but if there are very much error frames the bus goes in error state. Does somebody know the limit of error frames above the bus changes to error state?
Last updated: 2024-12-03
Post by reinier-geers on Energie price
CODESYS Forge
talk
(Post)
On a website i can get the energie price. But how does that work in codesys? There is a video of Rest client. But i can find the HTTP library. If i type on my browser : https://enever.nl/api/stroomprijs_vandaag.php?token=ANWB i get {"status":"true","data":"Please provide a valid API token. More information at https:\/\/enever.nl\/prijzenfeeds\/","code":"2"}
Last updated: 2024-12-03
Post by reinier-geers on Energie price
CODESYS Forge
talk
(Post)
On a website i can get the energie price. But how does that work in codesys? There is a video of Rest client. But i can find the HTTP library. If i type on my browser : https://enever.nl/api/stroomprijs_vandaag.php?token=ANWB i get {"status":"true","data":"Please provide a valid API token. More information at https:\/\/enever.nl\/prijzenfeeds\/","code":"2"}
Last updated: 2024-12-03
Post by xabier on Kinematics Robot Delta 2 Axis
CODESYS Forge
talk
(Post)
Hi, I have a customer and this customer design this robot...The customer need move ...I would like if Codesys has this Kinemtaics I attached photo of the robot.(this robot has 2 Axis) I have checked all kinematics has Codesys but not has the same....Someone help me Please?? Thanks XABI
Last updated: 2024-12-11
Post by gorditron on I2C Communication with
CODESYS Forge
talk
(Post)
Hello, I have problems with the I2C communication to an ADS7828 AD converter. I don't get any value back from the chip. I use a Kontron chip (ARM 32SC) with Linux as the operating system. I also use the CmpCharDevice library. ADS7828 parameters Address: A1 = 0 / A0 = 0 = SD = 1 = Single End C2 = 0 / C1= 0 / C0= 0 / Channel 0 PD1 = Internal Reference and PD0 = AD Converter ON Here is my code: VAR b_i2cAdr : BYTE := 16#48; (* Standard I2C-Adresse des ADS7828 *) x_Init: BOOL;(* Flag für die Initialisierung *) b_config_byte: BYTE;(* Konfigurationsbyte für den ADS7828 *) ab_cmd_buffer : ARRAY [0..0] OF BYTE; (* Buffer für den Befehl *) ab_data_buffer : ARRAY [0..1] OF BYTE; (* Buffer für die empfangenen Daten *) ui_adc_value_1 : UINT; (* Ausgelesener ADC-Wert *) I2C_Handle: RTS_IEC_HANDLE; (* Handle für das I2C-Device *) di_result_open: DINT;(* Ergebnis der Funktionsaufrufe *) di_result_adr: DINT;(* Ergebnis der Funktionsaufrufe *) di_result_wr_cmd: DINT;(* Ergebnis der Funktionsaufrufe *) di_result_rd_cmd: DINT;(* Ergebnis der Funktionsaufrufe *) di_result_close: DINT;(* Ergebnis der Funktionsaufrufe *) END_VAR //*** Init from the I2C communication port *** IF NOT x_Init THEN I2C_Handle := CDOpen(szFile:= '/dev/i2c-0', dFlags:= O_RDWR, pResult:= ADR(di_result_open)); //* I2C opening * //*** set of the I2C address *** CDIoctl(hFile:=I2C_Handle , dRequest:=1795 , dParameter:=b_i2cAdr , pResult:=ADR(di_result_adr) ); x_Init := TRUE; END_IF (* Hauptlogik *) IF I2C_Handle <> 0 THEN (* Konfigurationsbyte setzen: Single-Ended Kanal 0, interne Referenz *) b_config_byte := 16#8C; (* 10001100b: AIN0, interne Referenz, Single-Ended *) ab_cmd_buffer[0] := b_config_byte; (* Schreiboperation zum Konfigurieren des Chips *) CDWrite(hFile:= I2C_Handle, pbyBuffer:= ADR(ab_cmd_buffer), udCount:= SIZEOF(ab_cmd_buffer), pResult:= ADR(di_result_wr_cmd)); IF di_result_wr_cmd = 0 THEN (* Leseoperation, um den ADC-Wert zu erhalten *) CDRead(hFile:= I2C_Handle, pbyBuffer:= ADR(ab_data_buffer), udCount:= SIZEOF(ab_data_buffer), pResult:= ADR(di_result_rd_cmd)); IF di_result_rd_cmd = 0 THEN (* ADC-Wert aus den Daten extrahieren *) ui_adc_value_1 := SHL(TO_UINT(ab_data_buffer[0]), 8) OR TO_UINT(ab_data_buffer[1]); ELSE (* Fehler beim Lesen der Daten *) ui_adc_value_1 := 0; (* ADC-Wert auf 0 setzen *) END_IF ELSE (* Fehler beim Schreiben der Konfiguration *) ui_adc_value_1 := 0; END_IF END_IF
Last updated: 2024-12-13
Post by totorovic on Project loses 'Download time' information
CODESYS Forge
talk
(Post)
I continue this topic by myself, I'm very happy with the Codesys support / community ;-) This information (Download time) should be stored in the compileinfo : https://content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_cmd_load.html But the file is not text-readable (see attached file) so how to solve if download time is empty?
Last updated: 2024-12-19
Post by gseidel on Strange problem with the ‘MC_SetPosition’ function
CODESYS Forge
talk
(Post)
Hi Gustavo, can you reduce the problem to a project that reproduces the issue without the real servo drives? (You could set the servo drives to virtual and strip away as much as possible from the application.) If you can attach a project, we will have a look. Best regards, Georg
Last updated: 2025-01-10
Post by timo on String nach erlaubten/unerlaubten Zeichen durchsuchen
CODESYS Forge
talk
(Post)
Hallo, Ich bastele gerade an einer möglichst einfachen Möglichkeit mit der ich prüfen kann ob ein String Sonderzeichen enthält. Mein Ansatz ist ein ST FB mit einer Case Schrittkette. Ich vergleiche jedes Zeichen des Strings mit allen Zeichen eines vorher definierten Strings erlaubter Zeichen, der A-Z, a-z und 0-9 enthält und ggf angepasst werden kann, wenn ich weitere Zeichen erlaube. Leider wird meine j Zählervariable nicht richtig ausgeführt. Hat da jemand eine Idee? Oder gibt es eine einfachere Lösung/einen fertigen FB den ich mir anschauen kann? FUNCTION_BLOCK Sonderzeichen_Check VAR_INPUT inputString : STRING; // Zu prüfender String startCheck : BOOL; // Startsignal END_VAR VAR_OUTPUT ok : BOOL; // TRUE, wenn keine ungültigen Zeichen END_VAR VAR i : INT := 1; // Input-String Zähler j : INT := 1; // erlaubte Zeichen Zähler allowedChars: STRING := 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; // Erlaubte Zeichen currentChar : STRING[1]; // Aktuelles Zeichen step : INT := 0; // Schritt END_VAR CASE step OF 0: // Warten auf Start IF startCheck THEN step := 10; END_IF 10: // Initialisierungen i := 1; j := 1; ok := TRUE; // Standard: ok step := 20; 20: // Durchgehen des Eingangs-Strings IF i <= LEN(inputString) THEN currentChar := MID(inputString, i, 1); // Aktuelles Zeichen step := 30; ELSE step := 70; // Alle Zeichen ok END_IF 30: // Durchgehen der erlaubten Zeichen IF j <= LEN(allowedChars) THEN step := 40; // Zu Schritt 40 ELSE step := 60; // Ungültiges Zeichen END_IF 40: // Vergleich IF currentChar = MID(allowedChars, j, 1) THEN i := i + 1; // Nächstes Zeichen im Input step := 20; ELSE j := j + 1; // Nächstes erlaubtes Zeichen step := 30; END_IF 60: // Ungültiges Zeichen ok := FALSE; // Setze auf FALSE step := 0; 70: // Alle Zeichen ok step := 0; END_CASE
Last updated: 2025-01-20
Post by trusty-squire on Help with __SYSTEM.VAR_INFO
CODESYS Forge
talk
(Post)
Not knowing exactly what you want to accomplish, you can try to use VAR_INPUT MyVar: POINTER TO BOOL; END_VAR MyVar contains the address of your referenced variable, and MyVar^ dereferences it allowing you to access the value. If this doesn't meet your needs, could you add more detail on what you are trying to accomplish?
Last updated: 2025-01-26
Post by gatto on Removing a symbol from the IEC Symbols Editor grid
CODESYS Forge
talk
(Post)
Hi, I've never used Communication Manager, but I tried it and I saw that I can drag tags from left to right. If I click on a line on the right, it turns light blue. By pressing the DEL or CANC key (It depends on your keyboard language) I can delete the line
Last updated: 2025-02-12
Post by clarenced on Multiple applications on one device sharing variables.
CODESYS Forge
talk
(Post)
Sounds feasible, but how would I create this object so that both applications would use the same instance of it. If this did work, it's still not really the solution I am looking for as it would mean mapping every variable I want to use on the hmi through this object vs I was hopping all the GVL variables would be available.
Last updated: 2025-02-20
Post by cellohorst on File Creation Issue
CODESYS Forge
talk
(Post)
Nope! The file path is $$PlcLogic$$ and NOT $$PLCLogic$$. Otherwise a new folder ('PLCLogic') is created (at least with a linux rt - like raspberry or compute module) with the new file in it if you open the file with eFileMode := FILE.MODE.MRDWR. That is a bad bug that I'll report right after this comment.
Last updated: 2025-03-03
Post by lockupversus on High resolution displays with 150% scaling causes CodeSys IDE to be blurry
CODESYS Forge
talk
(Post)
What version of Windows are you using? If you are using older Windows, just upgrade to the latest version and use CodeSys IDE as usual. Nothing will happen. Some more complex options below. https://forge.codesys.com/prj/codesys-example/element-collect/home/Home/ https://store.codesys.com/en/mysql-library-sl.html Doodle Baseball
Last updated: 2025-03-05
Post by tvm on VisuFbFrameBase.SetInputPositionData: The element id for the input position cannot be determined
CODESYS Forge
talk
(Post)
This came up again today, so I'll post the fix for future reference. Happens with Schneider Machine Expert 2.2 and M262 controllers. Add this bit of code to a program called from the visu task //disable "VisuFbFrameBase.SetInputPositionData" log messages, which fill up the logs IF VisuElems.Private_Visu_Globals.g_ValueChangedListenerManager.GetListenerCount() > 0 THEN VisuElems.Private_Visu_Globals.g_ValueChangedListenerManager.RemoveValueChangedListener(VisuElems.Private_Visu_Globals.g_ValueChangedListenerManager.listenerForOnValueChanged); END_IF
Last updated: 2025-03-06
Post by gseidel on Dynamic limits invaild
CODESYS Forge
talk
(Post)
Hi jbu0105, which error doe you get, exactly? Is it error 11008, SMC_MOVE_INVALID_DYNAMICS? (It might help if you check the "Log" tab in the PLC device and copy the exact error.) Please double-check whether the inputs Velocity, Acceleration, Deceleration, and Jerk of MC_MoveCircularAbsolute have correct (positive) values. Best regards, Georg
Last updated: 2025-04-07
Post by respl on Anyone Ever use CAN with Kollmorgen S600 Drive
CODESYS Forge
talk
(Post)
Dear eschwellinger, Can you please share which library to use. Also if possible please share backup it really help us. On Codesys Store there are many ( CoDeSys Softmotion) option available. Please guide me to choose right product which has driver for servostar 600 as mention above. Regards, Rahul Sayre service.retrofilm@gmail.com +91-9607140005
Last updated: 2025-04-15
Post by jbu0105 on Setpoints Delta robot
CODESYS Forge
talk
(Post)
Hello, I am working on a delta robot. Now was i wondering if anyone knows whats the best way to program the different setpoints for the delta Robot. I would like to use the functions MC_MoveLinearAbsolute and the function MC_MoveCircularAbsolute with the transition on this function. Can anyone help me with al small setup?
Last updated: 2025-04-16
Post by jbu0105 on Setpoints Delta robot
CODESYS Forge
talk
(Post)
Hello, I am working on a delta robot. Now was i wondering if anyone knows whats the best way to program the different setpoints for the delta Robot. I would like to use the functions MC_MoveLinearAbsolute and the function MC_MoveCircularAbsolute with the transition on this function. Can anyone help me with al small setup?
Last updated: 2025-04-16
Post by pafarrell on EtherCAT quick start for advanced programmers
CODESYS Forge
talk
(Post)
It would be great if there was a thread that had some quick-start links for basic how-to. But one that advanced programmers can jump into. I found this video playlist by SoftMotion-Black, which was very, very helpful: https://www.youtube.com/playlist?list=PLkc8m2OD0r9xJyfTiCBb1vuU_d2yBhjZ_ This person has some other great vids like creating your own custom library, which is awesome for OEMS.
Last updated: 2025-05-14
Post by naduley on Multiple Branches
CODESYS Forge
talk
(Post)
I am trying to create multiple branches in my project and I keep getting gaps in the ladder logic "wiring". I'm not sure if this is a graphical error or something else but every thing I've tried to do to correct it does not work. Has anyone else run into this or know how to correct it?
Last updated: 2025-06-04
Post by arwie on Use MC_Home without enabling the drive for homing method 35
CODESYS Forge
talk
(Post)
This is a homing routine which is controlled by setting mode of operation and started by setting a bit in the control word. If MC_Home is not usable for this homing method then I need to implement the same functionality. But how?
Last updated: 2025-06-25
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
.