Search talk: codesys controller for pfc200 slave

 
<< < 1 .. 884 885 886 887 888 > >> (Page 886 of 888)

Post by ulvis on CFC Pages Cut&Paste is not working at its best CODESYS Forge talk (Post)
In the CFC page oriendted editor, if I copy some elements consisting of an input connector, some connected logic and an output connector and then paste this on a another page then the pasted elements get inserted with an offset to the right so that the rightmost connector falls outside of the page, in the grey hatched area. So far so good. Then I mark all the elements and try to drag them into the correct placement, collectively. THIS IS NOT POSSIBLE! I only get the "forbidden" icon tooltip. One has to drag & drop the INDIVIDUAL elements to move the elements around. What am I doing wrong?
Last updated: 2025-05-15

Post by ulvis on CFC Cut & Paste not working at its best. CODESYS Forge talk (Post)
In the CFC page oriendted editor, if I copy some elements consisting of an input connector, some connected logic and an output connector and then paste this on a another page then the pasted elements get inserted with an offset to the right so that the rightmost connector falls outside of the page, in the grey hatched area. So far so good. Then I mark all the elements and try to drag them into the correct placement, collectively. THIS IS NOT POSSIBLE! I only get the "forbidden" icon tooltip. One has to drag & drop the INDIVIDUAL elements to move the elements around. What am I doing wrong?
Last updated: 2025-05-15

Post by durallymax on Dynamical scaling of bar graph without the bar itself CODESYS Forge talk (Post)
I'm a fan of the analog indicators from ISA101. To recreate these, I use a number of rectangles that are dynamically sized and colored based on the input configuration. To keep it standard and easy, everything is built around 100px height. Then when instantiated in a frame, it can be resized as needed with the math remaining the same. The math logic is in a METHOD called by the rear most rectangle. These indicators do not use a "filling" bar graph, rather a fixed bar graph with a carrot to track the current value.
Last updated: 2025-06-06

Post by berebri on TLS Verschlüsselung mit MQTT - Validate CA CODESYS Forge talk (Post)
Sorry - I should have posted this in the German-Froum... Hallo zusammen, ich bin dabei mit MQTT_Client_SL eine verschlüsselte Verbindung zu einem MQTT-Broker (mosquitto) aufzubauen. Das funktioniert auch. Jetzt möchte ich das Zertifikat vom Broker verifizieren, ähnlich wie das auch bei dem Programm "MQTT Explorer" möglich ist (dort funktioniert es). D.h. ich möchte das über das Zertifikat der CA verifizieren, dass ich mit dem Client verbunden bin. Kann mir da jemand Hilfe geben was ich dazu machen muss? Ich vermute mal, dass ich dazu NBS.TLSContext verwenden muss und habe dazu auch einiges gelesen, konnte es aber bei mir nicht ans Laufen bringen. Wie bringe ich dem Client bei, über NBS.TLSContext das richtige CA-Zertifikat für die Verifikation zu verwenden? Kann mir da jemand bitte helfen? Dankeschön :-)
Last updated: 2025-06-16

Post by berebri on TLS-Verschlüsselung bei MQTT-Client - CA Zertifikat prüfen CODESYS Forge talk (Post)
Hallo zusammen, ich bin dabei mit MQTT_Client_SL eine verschlüsselte Verbindung zu einem MQTT-Broker (mosquitto) aufzubauen. Das funktioniert auch. Jetzt möchte ich das Zertifikat vom Broker verifizieren, ähnlich wie das auch bei dem Programm "MQTT Explorer" möglich ist (dort funktioniert es). D.h. ich möchte das über das Zertifikat der CA verifizieren, dass ich mit dem Client verbunden bin. Kann mir da jemand Hilfe geben was ich dazu machen muss? Ich vermute mal, dass ich dazu NBS.TLSContext verwenden muss und habe dazu auch einiges gelesen, konnte es aber bei mir nicht ans Laufen bringen. Wie bringe ich dem Client bei, über NBS.TLSContext das richtige CA-Zertifikat für die Verifikation zu verwenden? Kann mir da jemand bitte helfen? Dankeschön :-)
Last updated: 2025-06-16

Post by hclai on Maximum Array Index Issue CODESYS Forge talk (Post)
I was trying to use a table object in visualization. I want to dynamically show the valid rows in the table. However, it does not work when there is 1 row. i put the maximum array index to 1. it does not show the 1st row. when i change to 2, it show the second row only. my project with older visualization profile version is working perfectly fine. I did some test and realized that i must use a Row Selection variable to change from 0 to 1. With this change of Row selection, then the row 1 will show up.
Last updated: 2025-06-19

Post by rafa on MODBUS TCP SERVER DONT AUTO-STARTUP CODESYS Forge talk (Post)
Dear all, I have a project where I have two ModbusTCP communication drivers in the application. It's working normally until a power outage or the installation panel is restarted. As soon as the PLC CPU is restarted, the Ethernet port is OK, but the TCP Server displays an "UNDEFINED" error. I can't reset the error using the diagnostic confirmation or the "mbserver.xConfirmError" bit. I noticed that the error only appears in the "mbserver.byModbusError" memory and the description is "UNDEFINED." The "mbserver.xError" memory doesn't flag an error. When using the warm restart function and then START CPU, the devices return to normal operation. The following demonstration images; The main question is: How can I make devices boot automatically?
Last updated: 2025-07-15

Post by viksym on How to get the motor scaling value from code CODESYS Forge talk (Post)
If anybody finds this in the future, I managed to do it like this: scalingValue := EncoderPulseCountPerRev / ABS(AxisName.fScaleFactor); No need to use MC_ReadParameter as I am able to read this value directly from the axis object. Using an absolute value of the fScaleFactor is there in case the axis is set as inverted, in which case it would be a negative value. I was not able to figure out how to get EncoderPulseCountPerRev programatically, but since all my servos use an encoder with pulse count per revolution of 16#800000, the final equation looks like this: scalingValue := 16#800000 / ABS(AxisName.fScaleFactor);
Last updated: 2025-08-19

Post by pernockham on Gateway in China - "Gateway not connected" CODESYS Forge talk (Post)
Trying to communicate (from Europe) with/to a unit located in china, the communication seems blocked/stopped. The edge gateway is installed in a linux environment and was possible to link to my Automation server account using the "Automation service tool". However it seems the unit cannot communicate with the Automation server (a Network scan will give the message "Gateway not connected"). (I have tested the eq. setup with units locally which works.) Anyone having experience situation similar to this and if its possible to make this work? Will a VPN be needed possibly? Other tips?
Last updated: 2025-09-04

Post by caliberbishop on Having trouble using the Web Client SL library CODESYS Forge talk (Post)
Hello, I'm trying to use the Web Client SL library, I installed it in the IDE (did not purchase a license yet, as this is still a proof of concept so demo mode is good enough) and added it to the library manager. However, when trying to define a FB of the type WebClient I get a "Identifier 'WebClient' not defined" error message, setting the type to Web_Client_SL.WebClient did not work as well. Opening the example project the FBs defined there give the same error message. From the problem in the example project I deduce this is not a syntax problem, so maybe a license problem, but there should be a working demo mode, so what am I missing? IDE v 3.5.21.30 Library v 1.12.0.0 Thanks
Last updated: 2025-10-04

Post by ton on How to create a stopwatch? CODESYS Forge talk (Post)
One i wrote this to measure elepse time When xMeasure is true is starts en when false it stops and time is messured. FUNCTION_BLOCK FB_ElapseTime VAR_INPUT xMeasure: BOOL; END_VAR VAR_OUTPUT xRisingEdge: BOOL; xFallingEdge: BOOL; tElapsed: TIME; ltElapsed: LTIME; ltPrev_Elapsed: LTIME; ltElapsedMax: LTIME; END_VAR VAR xLastValue: BOOL; LTIMEStart: LTIME; LTIMEEnd: LTIME; tonReset: TON:= (IN:= TRUE, PT:= TIME#30S0MS); END_VAR ------------------------------------------- xRisingEdge:= (xLastValue XOR xMeasure) AND xMeasure; xFallingEdge:= (xLastValue XOR xMeasure) AND NOT xMeasure; IF xRisingEdge THEN ltPrev_Elapsed:= ltElapsed; LTIMEStart:= LTIME(); END_IF IF xMeasure OR xFallingEdge THEN LTIMEEnd:= LTIME(); END_IF ltElapsed:= LTIMEEnd - LTIMEStart; ltElapsedMax:= MAX(ltElapsedMax, ltElapsed); tElapsed:= LTIME_TO_TIME(ltElapsed); xLastValue:= xMeasure; tonReset(); IF tonReset.Q THEN tonReset.IN:= FALSE; ltElapsedMax:= LTIME#0NS; END_IF Meaby this will help.
Last updated: 2023-12-09

Post by manuknecht on Using SMC_MOVTYP.INITPOS without specifying the start position CODESYS Forge talk (Post)
I am using the object SMC_GEOINFO to generate a trajectory and move a system accordingly using the SMC_INTERPOLATOR function block similar to the sample project CNC10_DynamicPath.project. According to the documentation, the movement type INITPOS does not require a start position in the SMC_GEOINFO object, which is confirmed in the documentation of the SMC_GEOINFO object. When using the movement type INITPOS however, the motion will still start from the starting point defined in the SMC_GEOINFO object (0,0,0 if not specified otherwise). Does someone know how to resolve this or is there an example project that makes use of the INITPOS movement type without specifying the starting point? Thanks in advance!
Last updated: 2023-12-15

Post by sawicpx on CANbus Remapping PDOs During Runtime CODESYS Forge talk (Post)
Hello, I am working on an application where I need to remap PDOs to a different CANopen object during runtime depending on what value is at a specific register. I have gotten to the point where I put the device into Preoperational State using the CIA405.NMT function. I then reconfigure the PDO 180x and 1a0x obejcts usings SDOs to point to a new canopen object on the device however when I go to restart the Device from PREOP to OP using the CIA405.NMT function the device is reset back to the original configuration as per the initial setup. I am wondering is there any way to change the PDOs at runtime is there some more functionaility I can access to do this. Any direction is appreciated!
Last updated: 2023-12-22

Post by fajean on Issues with "Add all instance path" CODESYS Forge talk (Post)
In the past, we have routinely used the "add all instance paths" function to automatically add variables to VAR_CONFIG lists. My recollection is that compiling a project did not require VAR_CONFIG to be fully populated, and, once successfully compiled, instance paths could be added. Errors related to missing declarations, if I recall correctly, were thrown when downloading to the PLC, they did not prevent a successful compile. At some point, it stopped working. Missing declarations in a VAR_CONFIG now cause a compile error, so the application is never "current", the only reason I can see being the missing VAR_CONFIG declarations themselves (no other error). We observe the same behavior across all our projects. This is really aggravating, and I must be missing something simple. We use 3.5 SP17p3, 64 bits. Can anyone help?
Last updated: 2023-12-29

Post by matthew on New Ladder Diagram conversion does not work due to missing features CODESYS Forge talk (Post)
Hi It looks like in the new ladder there is no way to remove unused FB call parameters or update the function block? It's quite often where you have a function block with multiple uses and not all the parameters are required. Need the ability to leave an input/output blank without getting an compile error Expression expected instead of '' Also double clicking on the FB no longer opens the underlying FB code and view what it was doing online. Dragging and dropping a variable does not work, only using the selection works. Will these be available in the V1.0 release or just best to stick to the old ladder until it's available? Thanks
Last updated: 2024-01-28

Post by alexgooi on Function Blocks and arrays of function blocks CODESYS Forge talk (Post)
Hi Jack, I think you have to look at a FB in a different way. A Function block (Class) can contain its own data. In other words don't define loose data in your GVL, but define a instance of a FB (Object) in your GVL: Example: Function_Block Basic_Class VAR_INPUT Open_Command: BOOL; END_VAR VAR_OUTPUT Opened: BOOL; END_VAR if Open_Command then Opened := TRUE; ELSE Opened := FALSE; END_IF Global Variables Objects: ARRAY[1..100] OF Basic_Class; //Here you ar defining you objects END_VAR In your code you can directly acces the data and couple it to the IO: GVL.Objects[1].Open_Command := %IX0.0; %QX0.0 := GVL.Objects[1].Opened; //To call the code itself use: GVL.Objects[1](); If you want to take this a step further you are also able to add methods and properties to the FB/Class end thereby creating a OOIP program
Last updated: 2024-02-15

Post by dhumphries on Toggling Visualizations using HMI Physical Buttons CODESYS Forge talk (Post)
Nothing wrong with ladder, in a lot of applications it is simpler than ST or CFC, you're a lot less likely to have syntax issues in a ladder diagram than in structured text as long as you stick with traditional ladder elements. Your attempt was almost valid, but you tried to change the currentvisu variable using a blend of structured text and ladder, which isn't allowed. You need to use the MOVE operator and define the visualization name as a string on the input side and the visuelems.currentvisu as the target on the output side.
Last updated: 2024-02-28

Post by eschwellinger on Zielsystem stimmt nicht mit dem verbundenen Gerät überein CODESYS Forge talk (Post)
na ja es gibt halt einfach die Möglichkeiten: 1. Man installiert Raspberry PI OS 32Bit -> dann geht PI SL und PI MC Multicore als Target 2. Man installiert Raspberry PI OS 64Bit dann muss es PI64Bit sein falls der Übersetzungsfehler nicht in einer Bibliothek ist (die du vielleicht nicht ändern kannst) https://faq.codesys.com/pages/viewpage.action?pageId=128253958 Hier der Hinweis was man tun muss das dein IEC Code für 32Bit als auch 64Bit Targets funktioniert Also entweder zurück auf Raspberry PI OS 32 Bit: nur zur Info noch was im Config file steht für welche Plattform/Produkt [CmpRasPi] Architecture=aarch64 (-> 64Bit PI) oder Architecture=armv7l (-> PI MC Multicore) oder Architecture=armv6l (-> PI SL Single Core)
Last updated: 2024-03-11

Post by bschraud on Zielsystem stimmt nicht mit dem verbundenen Gerät überein CODESYS Forge talk (Post)
Zu der o.g. Fehlermeldung "cmperrors interfaces, 3.5.5.0 (system): C0338: Die Bibliothek 'cmperrors interfaces, 3.5.5.0 (system)' wird nur in 32-Bit-Applikationen unterstützt": Wie kann ich die Bibliothek finden, die den Fehler verursacht? Beim Doppelklick auf die Fehlermeldung würde ich einen entsprechenden Hinweis erwarten. Aber es passiert gar nichts. Wenn ich im Bibliotheksverwalter manuell den Baum durchsuche, finde ich nur Referenzen auf CmpErrors2Interfaces, die ja 64bit kompatibel sind. Leider konnte ich bisher nur eine SSD mit einem 64bit OS für den RPi zum Laufen bringen. Deswegen gehen mir langsam die Ideen aus. Vielen Dank für die Hilfe
Last updated: 2024-03-18

Post by struccc on Release SP20 - Changes in behaviour? CODESYS Forge talk (Post)
Dear all, I've just started to migrate some of my ancient projects to SP20. There is one strange error (?) I have noticed so far. In a method call, depending on the circumstances I would like to return reference to an object, or an invalid reference: METHOD Add_EVT_OUT : REFERENCE TO FB_MSG VAR END_VAR IF __ISVALIDREF(refMSG_Entry) THEN Add_EVT_OUT REF= MANAGER.AddMsg_EVT_OUT( refMSG_Entry, _Get_EVT_Message(MSG_EVENT.OUT), _Get_EVT_AddCode(MSG_EVENT.OUT) )^; ELSE Add_EVT_OUT := 0; END_IF So far setting a reference variable to 0, did this. But now, the expression Add_EVT_OUT := 0; gives an error: [ERROR] DB_WTP_370: Add_EVT_ACK MSG_TRIGGER_EXT: C0032: Cannot convert type 'BIT' to type 'REFERENCE TO FB_MSG' Naturally... I can write: Add_EVT_OUT := DWORD#0; But is this the correct way? Is there any constant I could use instead, like "NULL"? Or this is totally wrong and to be avoided?
Last updated: 2024-03-24

Post by bschraud on Zielsystem stimmt nicht mit dem verbundenen Gerät überein CODESYS Forge talk (Post)
Dank umfangreicher Hilfe durch den Kontron Support kann ich nun wieder übersetzen. Es waren einige Bibliotheken auf einem älteren, nicht 64bit-kompatiblen Stand. Beim Öffnen des Projektes erscheint zwar ein Dialog zum Aktualisieren der Bibliotheken. Diesen hatte ich auch mit "Auf neueste setzen" bestätigt. Trotzdem waren etliche Bibliotheken im Projekt veraltet. Leider habe ich noch keine Stelle in der Online Hilfe gefunden, die die Zusammenhänge in der Bibliotheksverwaltung und das Vorgehen bei Fehlern erklärt. (Z.B. wie man vermeiden kann, dass eine Komponente automatisch eine ältere Bibliotheksversion lädt, obwohl eine aktuelle Version der gleichen Bibliothek schon hinzugefügt wurde.) Vielen Dank für die Hilfe!
Last updated: 2024-03-25

Post by ac-spr on Runtime variable that indicates a user is online to the code CODESYS Forge talk (Post)
Looking to access a variable at runtime that indicates a user is online to the code. essentially want to use this value to feedback to the user on the HMI. we use turck and bosch rexroth devices if this information helps. I was hoping there was a variable at the application level, or a library that could be used but I was unable to find anything. I know there's a pop up when you try to login/ go online to the code when a user is already logged in, so the system does provide an indication that it knows already online, but has no access to a value from what I can see. Any help is appreciated
Last updated: 2024-04-22

Post by eurowolf on SoftMotionLight Lizenz nach Programmupdate weg CODESYS Forge talk (Post)
Hallo, auf einer Sabo MKS855.20 habe ich die SoftMotionLight-Lizenz installiert. Zur Programmierung nutze ich V3.5 SP16.0. Die im Projekt verwendete SML 4.7.0.0, SML_Drive_CAN_GenericDSP42 3.5.7.0, CANopen_Manager_Softmotion 3.5.16.0. In der Regel habe ich keine Probleme mit der SoftMotionLight, nur bei dieser Anlage ist es mir jetzt zum Zweiten mal passiert, das ich ein Programmupdate einspiele und die SML in den Demo-Modus wechselt. Die Lizenz ist doch auf der SPS gespeichert, warum wird dann behauptet, dass die SML im Demo-Modus arbeitet. Da ich z. Zt. beim Kunden vor Ort bin und dieser sich im Ausland befindet, benötige ich kurzfristig eine Lösung. Auf E-Mails bekomme ich leider keine Rückmeldung.
Last updated: 2024-05-14

Post by paro on Modbus Client Request Not Processed CODESYS Forge talk (Post)
Hi, works in my case if I increase the timeout! to_udint(t#100ms) -> 100 -> 100us.. FUNCTION_BLOCK MODBUS_master_example_ST VAR initDone : BOOL := FALSE; aIPAddress : ARRAY [0..3] OF BYTE := [127,0,0,1]; clientTcp: ModbusFB.ClientTcp; // buffer to read input registers aDataInputRegisters : ARRAY[0..9] OF UINT; // some client requests clientRequestReadInputRegisters: ModbusFB.ClientRequestReadInputRegisters; xExecute: BOOL; uistart: UINT := 100; udiTimeout1: UDINT; END_VAR IF NOT initDone THEN initDone := TRUE; // configure clientTcp clientTcp(aIPaddr:=aIPAddress, uiPort:=502, udiLogOptions := ModbusFB.LoggingOptions.All); // configure clientRequestReadInputRegisters clientRequestReadInputRegisters(rClient:=clientTcp, uiUnitId:=1, udiTimeout:=1000000); // 1sec END_IF // call the client FB's clientTcp(); clientRequestReadInputRegisters(rClient:=clientTcp,xExecute := xExecute AND NOT clientRequestReadInputRegisters.xBusy ,uiStartItem:=uistart, uiQuantity:=3, pData:=ADR(aDataInputRegisters[0]));
Last updated: 2024-05-30

Post by viksym on Get text from textlist CODESYS Forge talk (Post)
Does anybody know how to get a specific text from a text list within a program. Obviously it works in a visualization, but because I will have an HMI that has it's own system and I will have to send variables to this HMI via an OPC UA connection, I need to be able to get a text into a string. I tried using the VisuElems like this, but it only returns an empty "" and nothing else. IF trig THEN sText := VisuElems.cmpDynamictext.DynamicTextGetDefaultText(ADR(sTextList), ADR(sAlarmID))^; //sText := VisuElems.cmpDynamictext.DynamicTextGetText(ADR(sTextList), ADR(sAlarmID))^; trig := FALSE; END_IF Any help and idea is highly appreciated because I am getting desperate here.
Last updated: 2024-05-31

<< < 1 .. 884 885 886 887 888 > >> (Page 886 of 888)

Showing results of 22199

Sort by relevance or date