virtual plc vPLC configure nics
CODESYS Forge
talk
(Thread)
virtual plc vPLC configure nics
Last updated: 2025-02-03
Post by mubeta on Profibus DP master with EL6731 and automatic restart of slaves
CODESYS Forge
talk
(Post)
The problem is looking for a bug somewhere in CoDeSys in that, when the slave returns, the cyclic data exchange resumes, but the diagnostics do not update and the node continues to resulting off-line. it is not a problem with the PB master, but with its 3S/CoDeSys management. CoDeSys 3.5.19.20 runtime. Any ideas on how to fix it? Thank you.
Last updated: 2025-02-03
Post by mubeta on Profibus DP master with EL6731 and automatic restart of slaves
CODESYS Forge
talk
(Post)
Not connected, but found using: Scan for Devices
Last updated: 2025-02-03
Remote to PLC device in City-B from City-A
CODESYS Forge
talk
(Thread)
Remote to PLC device in City-B from City-A
Last updated: 2025-02-04
Problem with edge gateway config mode
CODESYS Forge
talk
(Thread)
Problem with edge gateway config mode
Last updated: 2025-02-04
Post by imdatatas on Problem with edge gateway config mode
CODESYS Forge
talk
(Post)
I encountered the same problem. (Windows10 x64 single language OS). As @eschwellinger mentioned, I uninstalled the latest EdgeGateway version and installed version 3.5.20.0. Now, when I right-click and select "Allow Edge Gateway...", Config mode is activated without any error or warning window and I do not need to manually type [CmpEdgeGateway] for EdgeGateway version 3.5.20.0.
Last updated: 2025-02-04
Post by imdatatas on Remote to PLC device in City-B from City-A
CODESYS Forge
talk
(Post)
Hello, In an example scenario like below figure, can the developer in City-A connect to the device in City-B remotely using only "Codesys Automation Server" and "Edge Gateway" with the following structure? If no, what should be done with Automation Server for this remote connection requirement? If yes, how should it be configured for this remote connection requirement? Thank you in advance for your answers. Regards, Imdat
Last updated: 2025-02-04
UNION statement is not supported in the ethercat data exchange
CODESYS Forge
talk
(Thread)
UNION statement is not supported in the ethercat data exchange
Last updated: 2025-02-05
Post by mubeta on UNION statement is not supported in the ethercat data exchange
CODESYS Forge
talk
(Post)
Hi all, I am using a unionn statement for merge in integer data type some values that are received in byte from the i/o cards, but, using this simple and light technique, is not recognized by the ethercat data exchange and in fact the tags are not updated. In my opinion it's a very big bug.
Last updated: 2025-02-05
Ticket #69: Links to help.codesys.com are dead
co♻e: unittest framework for CODESYS
tickets
(Ticket)
Hi! On the start page are a few dead links to help.codesys.com. You may point to the new help system under helpme-codesys.com. The old system is sadly discontinued.2025-02-06 08:23:47.046000 Ticket #69: Links to help.codesys.com are dead co♻e: unittest framework for CODESYS counit tickets tickets False /lib/counit/tickets/69/ Ticket Links to help.codesys.com are dead False 1 2025-02-06 08:23:46.939000 69 Links to help.codesys.com are dead open Hi! On the start page are a few dead links to help.codesys.com. You may point to the new help system under helpme-codesys.com. The old system is sadly discontinued. False False 0 0 0 None v1.1.0.0 ingo None
Last updated: 2025-02-06
(no subject)
co♻e: unittest framework for CODESYS
tickets
(Thread)
Last updated: 2025-02-06
Post by ulvis on Modbus TCP Security
CODESYS Forge
talk
(Post)
Anyone?
Last updated: 2025-02-06
Modbus TCP Security
CODESYS Forge
talk
(Thread)
Modbus TCP Security
Last updated: 2025-02-06
Post by ulvis on Modbus TCP Security
CODESYS Forge
talk
(Post)
Anyone?
Last updated: 2025-02-06
Post by malie on 3.5.19.7 Alarme importieren in Gruppe funktioniert nicht
CODESYS Forge
talk
(Post)
Hallo, ich hab das Problem eine Alarmliste nachdem exportieren mit oder ohne Eweiterung der Liste wird nicht wieder importiert. Unter Meldungen "Import von Alarmen" steht: "Ein Element mit dem gleichen Schlüssel wurde bereits hinzugefügt.(Zeile 0, Spalte 0)" "Import der Alarme erfolgreich abgeschlossen" Es erscheinen aber nirgends die Alarme, in vorherigen Versionen hat das immer ohne Probleme geklappt. Auch ein ändern der ID und der anderen Spalten, hinzufügen und entfernen von Spalten hat leider nicht geklappt. Selbst wenn ich eine Zeile in der Alarmgruppe erstelle die Funktioniert, diese exportiere, die Zeile lösche und wieder importiere kommen immer die gleichen Meldungen und kein Alarm wird importiert. Ich hab die Funktion schon länger nicht mehr gebraucht, deshalb kann ich nicht sagen seit welcher CoDeSys Version die Funktion nicht mehr funktioniert. Hat hier jemand eine Lösung? Gruß Max
Last updated: 2025-02-06
Post by andre-luis on Device diagnosis ( EtherCAT IO card )
CODESYS Forge
talk
(Post)
Hi, In our project, it is not rare to have I/O cards issues. I wanted to have a way to check their statuses ( Eg. INIT, OP, PREOP, etc.. ) I was trying to use the GetDeviceDiagnosisInfo method from the IoConfig_Globals, but there is no info available on the Web with a simple example; does someone have a link to some tutorial or anything else ? Kind Regards, Andre.
Last updated: 2025-02-06
Post by pernockham on Slider instance value when accessed through "execute ST-code"
CODESYS Forge
talk
(Post)
I have a time which I want to modify with a slider. I have confirmed it is possible to set the value of the slider by to_real(time) (I can see that the slider changes according to 'my_time_value's value). Slider variable: to_real(my_time_value); However I fail to access the current slider instance value when I want to write back the value as time (write to a variable will not work as I need a type-conversion before assignment). my_time_value := to_time(slider-instance-value); I tried with this^.? but could not see anything interesting and also THIS^.GEN_Instance.? but nothing resemble what could be the sliders value. Anyone that knows? Thanks!
Last updated: 2025-02-06
Post by andre-luis on Device diagnosis ( EtherCAT IO card )
CODESYS Forge
talk
(Post)
Hi @TimvH, In the meantime, I did some experiments and could find a way to achieve similar result. I made some tests, removing the last card from the array, seeing the change on status. PROGRAM P_IOS_STATUSES VAR devStateInput : DEVICE_STATE; devStateOutput : DEVICE_STATE; devStateEncoder : DEVICE_STATE; END_VAR devStateInput := IoConfig_Globals.EL1819.GetDeviceState(); devStateOutput := IoConfig_Globals.EL2809.GetDeviceState(); devStateEncoder := IoConfig_Globals.EL5151.GetDeviceState(); GVL.bInputCardOK := ( devStateInput = DEVICE_STATE.RUNNING ); GVL.bOutputCardOK := ( devStateOutput = DEVICE_STATE.RUNNING ); GVL.bEncoderCardOK := ( devStateEncoder = DEVICE_STATE.RUNNING ); Many thanks for your quick and extensive reply.
Last updated: 2025-02-06
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 ingo on Test1
CODESYS Forge
test-talk-23
(Post)
Last updated: 2025-02-07
Test5
CODESYS Forge
test-talk-23
(Thread)
Test5
Last updated: 2025-02-07
Post by ingo on Test2
CODESYS Forge
test-talk-23
(Post)
Last updated: 2025-02-07
Post by ingo on Test3
CODESYS Forge
test-talk-23
(Post)
Last updated: 2025-02-07
Post by ingo on Test4
CODESYS Forge
test-talk-23
(Post)
Last updated: 2025-02-07
Post by ingo on Test5
CODESYS Forge
test-talk-23
(Post)
Last updated: 2025-02-07