seems a bug in 4.14.0.0 version
WHEREAS, I have already searched various posts and forums, where mostly there are few references and mostly geared toward integration in TwinCAT. I am looking for how to properly configure the EL6731 board as a DP master, (where I have its 3S license), with CoDeSys 3.5.19.x. I have three types of slaves, all integrated with their GSD descriptors. In the tab for the various slaves, I don't see options related to node restart on 'station return'. On the card manual, I read that for each slave I should...
Hello, When I add 2 nics in vPLC this happens to me..., why is it? If I just put one of the two NICs, the vPLC runtime instance starts running correctly...
Hello, When I add 2 nics in vPLC this happens to me..., why is it? If I just put one of the two NICs, the vPLC runtime instance starts running correctly...
I guess that the printer expects to receive an array of byte values. So where it is described that it expects to receive: Hercules String : 1B4F513030311B7532626C61636B04 it actually expects to receive an array of bytes with the values 1B,4F,51,30,30, etc. So what you can do is create an array of bytes and assign the byte value to each item in the array: VAR abyToSend : ARRAY[0..99] OF BYTE; END_VAR abyToSend[0] := 16#1B; // ASCII Escape character, hexadecimal representation uses 16# as prefix abyToSend[1]...
Hello, When I add 2 nics in vPLC this happens to me..., why is it?
Hi rmaas, Do you have any explenation how to send it to Hercules? Thank you!
here a helpful explanation of the additional byte of every codesys string: https://forge.codesys.com/forge/talk/CODESYS-V2/thread/3d792b587f/#1046 good luck and happy coding!
Hi, The '' characters in Codesys are there only to indicate it is a STRING type. They are not actually added to the string, maybe you are adding them unintentionally in the concat function? You can send your data from Codesys to Hercules to verify... Another option is to send the data as an array of bytes instead of a string, with every byte representing 1 ASCII character. https://www.ascii-code.com/ This way you are 100% sure Codesys is not adding any unwanted characters.
Guten Morgen, ich habe ein Problem mit dem Lesen von IO Link Geräten. Wir nutzen einen Festo IO-Link Master den ich mittels der Funktionen ETC_ADS_IoLinkRead und ETC_ADS_IoLinkWrite lesen und schreiben möchte. Dazu implementiere ich die Bibliothek EtherCATStackLibrary 4.6.1.0. Hier geht schon das erste Problem los. Diese Bibltiothek möchte eine weitere Bibliothek nutzen, die "CmpSysEthernet". Diese muss ich über die Platzhalter manuell auf "SysEthernet 3.5.19.0" linken. Dann sind erstmal keine Fehler...
@trusty-suire, The problem is not encoding. The problem is that codesys ands ' ' to the string. And the printer can't handle these character.
@trusty-suire, The problem is not encoding. The problem is that codesys ands ' ' to the string. And the printer can't handle these character.
I don't fully understand the issue, but if the encoding is a problem you can try testing with WSTRING datatype instead of STRING. https://content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_datatype_wstring.html
Still no registration available
Good afternoon. I want to communicate with a Domino Industrial Printer using its Codenet protocol. The printer wants a series of Hexadecimal characters with no spaces or '00' characters. Because of that i chose the option to make the prefix and subfix for my code in a string. I have variable data in another string. With a complete program of a lot of CONCAT functions i eventually get the format of code that the printer accepts ( tested it with the hercules tool). Hercules String : 1B4F513030311B7532626C61636B04...
Good afternoon. I want to communicate with a Domino Industrial Printer using its Codenet protocol. The printer wants a series of Hexadecimal characters with no spaces or '00' characters. Because of that i chose the option to make the prefix and subfix for my code in a string. I have y variable data in another string. With a complete program of a lot of CONCAT functions i eventually get the format of code that the printer accepts ( tested it with the hercules tool). Hercules String : 1B4F513030311B7532626C61636B04...
first i would try to update to 4.18.0.0 (latest) SoftMotion version and try if same problem still occure.
hello It is any solution to use this fb in application other pou?
Hello, I have the same Issue !!!
Thanks for the comment. I'm using Weidmueller UC20-WL2000-AC's and changing the broadcast address to match the current subnet this worked for me as well!
you could use either the PI package or Arm / Arm 64 SL packages on the PI
Linux ARM SL is ready for Rapsberry pi5 now ?
thanks...I changed to I POINTER which is perfect.
to get the address just use ADR( ) variables defined in a VAR_IN_OUT block are references pointing to the passed variables. VAR_IN_OUT MyVar: bool; END_VAR VAR adrMyVar: __XWORD; END_VAR adrMyVar := ADR(MyVar);
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?
It's suspected that the CPU loading is the Linux Kernal in the Wago PFC200 dealing with IGMP multicast traffic (@ 250 uSec) from inverters on site. The inverters use the ethernet network and IGMP to synchronize, the customer removed the switch that shipped with the system, and thus removed IGMP Snooping that was plug-and-play within the provided switch.
Hallo, ab wann kann Codesys CAN-FD? Sprich, ab welcher Version steht ein CAN-FD Master zur Verfügung? In Q2 2025 soll es bei Beckhoff den EL6753 (EL6753 | EtherCAT-Klemme, 1-Kanal-Kommunikations-Interface, CANopen, Master/Slave) geben. Diesen würde ich gerne verwenden um mit meinem CAN-FD-Slave zu kommunizieren. Und nun stellt sich die Frage, ob dies dann überhaupt mit Codesys schon möglich ist. https://www.beckhoff.com/de-de/produkte/i-o/ethercat-klemmen/el6xxx-kommunikation/el6753.html Grüße S...
hi all I have a FB with IN/OUT variable. Inside the FB, I want to get the address of the IN/OUT variable. If I use __SYSTEM.VAR_INFO, I get the address of the FB copy rather than 'external' variable. VAR_IN_OUT MyVar: bool; END_VAR VAR Info: __SYSTEM.VAR_INFO; END_VAR Info := __VARINFO(MyVar); This give me the address of MyVar but I actually want the address of the variable passed to MyVar Any clues please?? thanks, ph
hi all I have a FB with IN/OUT variable. Inside the FB, I want to get the address of the IN/OUT variable. If I use __SYSTEM.VAR_INFO, I get the address of the FB copy rather than 'external' variable. VAR_IN_OUT MyVar: bool; END_VAR VAR Info: __SYSTEM.VAR_INFO; Info := __VARINFO(MyVar); This give me the address of MyVar but I actually want the address of the variable passed to MyVar Any clues please?? thanks, ph
I don't recommend using 'Communication Manager'. Under 'Communication Manager', the 'NodeId' type of OPC UA can only be of type 'OPAQUE'. This will bring compatibility issues to the development of the upper computer.
Hello, I'm running the lastest version of Codesys 3.5 SP20 Patch 5, with the lastest version of Chrome. And I still get this "Webvisu not supported due to missing browser feature HTML5-Canvas" fallback with a quite simple webvisu containing some buttons, images, textboxed and a grid. What can I do? is that a configuration to change? Thanks!
How is that possible to put a Function Block Method in the Task Configurator, as they did in the CNC3DEditor.project example? In that exmaple, I removed the gCNCMachine.SlowTaskCall method from the Task Configuration and I can't put it back. https://us.store.codesys.com/cnc-3d-editor.html Thanks!
Hallo Alex, hier im Deploytool gibt man nur an welches Packet man installiert - das deploy Tool schaut auf dem Zielsystem: Ist es ein Arm64 oder Arm 32 System: Abhängig davon wird für 64Bit: Für Pi MC: armv7l Für Pi SL: armv6l Für Pi 64: aarch64 Beispiel Pi 64B it OS [CmpRasPi] Architecture=aarch64 in /etc/codesyscontrol/CODESYSControl_User.cfg gesetzt. Sprich wenn du das ändern willst kannst du das in diesem Config File ändern oder aber hier im Deploy Tool:
Hallo Alex, hier im Deploytool
Hallo Alex, hier im Deploytool
I also couldn't find it at first, but please check this: C:\Program Files\CODESYS ..your version..\CODESYS\CODESYS Virtual Safe Control SL\Delivery\Manuals\
Thanks Tim that worked well. saved the config from work pc, imported to home laptop. it downloaded packages and the program opened with no errors and started straight up! legend!
Hello, I was browsing the "CODESYS Virtual Safe Control for Linux SL" documentation page, and it says the following : For more information about the development of safety-critical applications with CODESYS, see: * Safety Manual H1 – SafetyManual.pdf, which is stored in the directory ../<user>/CODESYS Virtual Safe Control Linux SL/Delivery/Manuals</user> What does this path refers to ? I can't find it in CODESYS installation directories. Best regards
Is it possible to change the variable being traced during runtime? I would like to use the CURRENTCLIENTID in combination with an array of real numbers to alter the traced variable in a display window, without needing to create separate visualizations for each variable.
Does the OPC UA server have a generic username and password? It doesn't seem to be the same as the device username and password.
Does the OPC UA server have a generic username and password? It doesn't seem to be the same as the device username and password.
Wo ist es in diesem Tool möglich, die Umschaltung (SingleCore/MultiCore/MultiCore64) zu machen ???
I changed the interfaces to br0 & br1 as they are designated on the Wago PFC200. That issue is resoved. However, on site I have very high system cpu usage, system as in Linux. Presently it is not known why - my bench system does not exhibit such high system usage. In the past this was due to IGMP network traffic every 250uSec from synchronized inverters.
just now i have tried loading the achive file from today at work. using 3.5.20.4 same as at work. when i open the project it says " prject inspection, this project has been saved with a different version(codesys v3.5 sp20 patch 4).? one option in the above "project inspection" window just wants to download that same version again. the other option leads no where as it say the required add ons cant be resolved. just end up going around in circles.
cheers i will give that a go.
I have a debian linux host running Control SL. I tried to manage IP-addresses through codesys/Control SL but that was not successful. What works though is manually editing the network-interfaces config file. /etc/network/interfaces. Is there a way to set this up so that IP-addresses can be managed from within codesys instead? Thanks! / Per
Could you send a screenshot of the Ethernet "General" settings? In that screen you can also search for the Ethernet interface you would like to use for your communication. Did you do that? Did you change any settings manually in the CODESYSControl_user.cfg?
Is it really the same CODESYS version with the same add-ons? Maybe open the CODESYS installer on your home laptop, and export the configuration. On your work PC open the CODESYS installer and import the configuration.
we need some screenshots.
The server doesn’t allow anonymous users. You need to configure a username/password for the connection.
I have tried Achives but still get many errors. just now have tried to load a projectachive from last night and the visualization is [unknowen] as well as a action from the main pou.
Trying to connect Codesys OPC server to Ignition, but I get this fault "java.lang.Exception: no anonymous token policy found"
CODESYS Control for PFC200 4.13.00 CODESYS IIoT Libraries SL 1.11.0.0 Application Based License: CODESYS Control Standard M I have (2) projects with similar code base and both using Wago PFC200. On the second project I am seeing 2 things that I have not been able to resolve: 1) Errors in the log under the Ethernet Item: IoDrvEthernet: [PCI\E1Q51CE62] Could not be found on target! Please check the Ethernet settings. 2) Exception for CPU Load. "Processorload watchdog: plcload=100, maxplcload=95" I...
CODESYS Control for PFC200 4.13.00 CODESYS IIoT Libraries SL 1.11.0.0 Application Based License: CODESYS Control Standard M I have (2) projects with similar code base and both using Wago PFC200. On the second project I am seeing 2 things that I have not been able to resole: 1) Errors in the log under the Ethernet Item: IoDrvEthernet: [PCI\E1Q51CE62] Could not be found on target! Please check the Ethernet settings. 2) Exception for CPU Load. "Processorload watchdog: plcload=100, maxplcload=95" I have...
Vielen Dank. Das ist natürlich etwas eleganter zu prüfen ob ein ASCII Wert von meinen Zeichen abweicht. Der INT Zähler ist bei dir in der Deklaration anders benannt als im Code, aber das Konzept in meinem Code integriert funktioniert scheinbar.
Hi Timo, FUNCTION Sonderzeichen_Check : bool VAR_INPUT sInputString : STRING; // Zu prüfender String END_VAR VAR i: INT; iAsc: INT; END_VAR Sonderzeichen_Check:= TRUE; FOR i:= 0 TO len(sInputString) - 1 DO iAscii:= sInputString[i]; //Get ASCII value //Check value between 48('0') and 65('9') or between 65('A') and 90('Z') or between 97('a') and 122('z') or IF iAscii >= 48 AND iAscii <= 57 OR iAscii >= 65 AND iAscii <= 90 OR iAscii >= 97 AND iAscii <= 122 THEN //iAscii valit ELSE Sonderzeichen_Check:=...
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...
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...
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 eigentlich 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 einen Ansatz? Oder gibt es...
Did you find a solution for this? Experiencing the same when I'm setting up the server using "Communicartion manager"
CO-TRUST CTH300 Target Version:3.5.11.60 Codesys Version:3.5.20.20
CO-TRUST CTH300
Hi! I was thinking of switching the OPC server config from "Symbol Configuration" to the "Communication manager" in the device tree. I Have a lot of arrays of structs that I have previously declared in the "Persistent Variable" object in the device tree. It seems as it is not supported to directly expose persistant variables to the OPC server like the "older" way of doing it in the symbol config. Is this correct? Do you recommend to just do it the old fashioned way, or should I edit the structure...
Thanks for your answers! Both ways worked as intented. Really appreciate it :)
I would just use projectachives instead of using projects if you work with different pc's then all project related libs and devices are included.
Hi All Not sure what im missing here but i seem to have a lot of issues when i start a project say at home then try to open it at work the next day on another pc, using same version of Codesys. I try the build option when opening the project but still get loads of placeholder,library and some random errors i'm not to sure about. have tied project Archive, which is better, but not perfect. Can someone tell me what im doing wrong!. Cheers
Here, it seems to me that we are getting completely off track with the observed problem. If questions clarifying the details of the installation are problematic, it's best to include those details in the original question then... I had already written this elsewhere. The program before being brought into machines was exhaustively tested in SW emulation and the problem did not occur. Testing the full program in emulation is entirely different from creating a simplified program to isolate the function...
How are the servo drives controlled? EtherCAT, step/dir pulses, other? CANOpen, 1 Mb/s, bus load 35%, cycle time 2ms. Another thought is that - if it's step/dir pulse based control - the pulses from the PLC to the drive are getting missed/lost at high frequencies? If that's the case then there would be multiple troubleshooting steps/corrections that could be investigated. Here, it seems to me that we are getting completely off track with the observed problem. You could try to create a simplified...
How are the servo drives controlled? EtherCAT, step/dir pulses, other? CANOpen, 1 Mb/s, bus load 35%, cycle time 2ms. Another thought is that - if it's step/dir pulse based control - the pulses from the PLC to the drive are getting missed/lost at high frequencies? If that's the case then there would be multiple troubleshooting steps/corrections that could be investigated. Here, it seems to me that we are getting completely off track with the observed problem. You could try to create a simplified...
How are the servo drives controlled? EtherCAT, step/dir pulses, other? Another thought is that - if it's step/dir pulse based control - the pulses from the PLC to the drive are getting missed/lost at high frequencies? If that's the case then there would be multiple troubleshooting steps/corrections that could be investigated. You could try to create a simplified program, with all the same parameters, that only has an MC_SetPosition FB you manually trigger and see if you are still getting the same...
How are the servo drives controlled? EtherCAT, step/dir pulses, other? Another thought is that - if it's step/dir pulse based control - the pulses from the PLC to the drive are getting missed/lost at high frequencies? If that's the case then there would be multiple troubleshooting steps/corrections that could be investigated. You could try to create a simplified program, with all the same parameters, that only has an MC_SetPosition FB you manually trigger and see if you are still getting the same...
How are the servo drives controlled? EtherCAT, step/dir pulses, other? Another thought is that - if it's step/dir pulse based control - the pulses are getting missed/lost at high frequencies? If that's the case then there would be multiple troubleshooting steps/corrections that could be investigated. You could try to create a simplified program, with all the same parameters, that only has an MC_SetPosition FB you manually trigger and see if you are still getting the same results? Also, I just google...
How are the servo drives controlled? EtherCAT, step/dir pulses, other? Another thought is that - if it's step/dir pulse based control - the pulses are getting missed/lost at high frequencies? If that's the case then there would be multiple troubleshooting steps/corrections that could be investigated. You could try to create a simplified program, with all the same parameters, that only has an MC_SetPosition FB you manually trigger and see if you are still getting the same results?
How are the servo drives controlled? EtherCAT, step/dir pulses, other? Another thought it - if it's step/dir pulses - the pulses are getting missed/lost at high frequencies? If that's the case then there would be multiple troubleshooting steps/corrections that could be investigated. You could try to create a simplified program, with all the same parameters, that only has an MC_SetPosition FB you manually trigger and see if you are still getting the same results?
hi, i used another way declaration: pApp : POINTER TO APPLICATION; pAppInfo : POINTER TO APPLICATION_INFO; ProjectName : STRING (24) ; CodesysVersion : STRING (15) ; code: //library : // CmpApp // IoDrvEthernet // // Get Pointer to current application pApp := CmpApp.AppGetCurrent( pResult:= 0 ); // Get Pointer to Application information pAppInfo := CmpApp.AppGetApplicationInfo(pApp:= pApp, pResult:= 0 ); ProjectName := pAppInfo^.pstProjectName^ ; //convert codesys version to string CodesysVersion...
VAR RuntimeVersion: VERSION; END_VAR RuntimeVersion := __SYSTEM.Constants.RuntimeVersion; PS, when I call the SysTargetGetVersion on a Control Win, I get the value 50664488 = 16#03051428 equals version 3.5.20.40
Hi! I want to read the codesys version into the project, so I can highlight it in the SCADA system. VAR dwVersion : DWORD; END_VAR SysTarget.SysTargetGetVersion(pulVersion := ADR(dwVersion)); This gives me the value 100859909. I tried to search ths up and found som older post (https://forge.codesys.com/forge/talk/Runtime/thread/a55981ff4d/) that said each 4 bytes reads a number in the version. Example is 50662666 = 16#03050D0A which reads to V3.5.13.10 When I run this code I get the value 100859909,...
What do you want to accomplish?
What do you want to accomplish?
Hello, I have found the following instruction in the online help( https://content.helpme-codesys.com/en/libs/CmpSupervisor/3.5.17.0/SupervisorOperationSetTimeout.html ): Sets a (new) timeout for the given operation Supervision must be disabled to modify the timeout and should be enabled afterwards. However, I don't quite understand how to do this? Where can I disable and later enable Supervision? Is it through Codesys application or device menu? I don't find instructions clear.
Hello, I have found the following instruction in the online help( https://content.helpme-codesys.com/en/libs/CmpSupervisor/3.5.17.0/SupervisorOperationSetTimeout.html ): Sets a (new) timeout for the given operation Supervision must be disabled to modify the timeout and should be enabled afterwards. However, I don't quite understand how to do this? Where can I disable and later enable Supervision? Is it throght Codesys application or device menu? I don't find instructions clear.
Hi! How did you solve it?
Have you had any luck figuring this issue out?
Have you had any figuring this issue out?
Hi. I want to create a FB with bacnet objects. FUNCTION_BLOCK PT1000 VAR_INPUT System: STRING; In: REAL; Name:STRING; END_VAR VAR_OUTPUT Out: REAL; Out_St: Struct_PT1000; END_VAR VAR {attribute 'instance-path'} {attribute 'noinit'} Tag: STRING; Instance:DINT; //AnalogInn : WagoSysBACnet.FbAnalogInput_large(1); This works. Objectname is AnalogInn. identifier is 1 END_VAR I want to name object based on FB PT1000. In FB P1000, I want to write eUnits, Name and so on. How can i do this???
Hi , Can i monitor a other Canbus and use the data ? Ive got a mobile crane. So i want to add a device with an unused adres. Then Read the Joystick and use some buttons for an optional device
Registration not available
Hallo, bisher war die Benutzung der Symbolkonfiguration für die OPC-UA Variablen recht easy einsetzbar. Im UAExpert Tool konnte man im Klarnamen den String sehen. var1 = client.get_node("ns=4;s=|var|WAGO 750-8212 PFC200 G2 2ETH RS.Application.PLC_PRG.fbTest.StateActual") Die Anbindung an die Python opcua Library hat so eigentlich gut funktioniert. Auch zum debuggen im UAExptert, konnte man den Value so sehen wie die Varibale heißt. In meinem Fall ein Enum. Was seit längerer Zeit nicht mehr funktionier...
UDP has no packet ordering mechanism, and Modbus protocol has no order checking mechanism nor session establishment. I'm sorry but this is false, Modbus IP based have the Transaction Identifier. Transaction Identifier - It is used for transaction pairing, the MODBUS server copies in the response the transaction identifier of the request. Modbus UDP make more sense than Modbus TCP in a local environment.
Hello, I am already able to run an OPC UA method in Codesys. Now my question, how can I interact with other tasks (e.g. read an SDO from EtherCAT and return it by the function)? The OPC UA method seems to be called only once (I tried to return BOOL or UINT values). Up to now I only found to do a while loop to wait for the result of the other task. Is there a better way to do it? Is this the way OPC UA functions should be used (for "not too long" function calls) or should I use another mechanism (method:...
Hello, I am already able to run an OPC UA method in Codesys. Now my question, how can I interact with other tasks (e.g. read an SDO from EtherCAT and return it by the function)? The OPC UA method seems to be called only once (I tried to return BOOL or UINT values). Up to now I only found to do a while loop to wait for the result of the other task. Is there a better way to do it? Is this the way OPC UA functions should be used (for "not too long" function calls) or should I use antother mechanism...
Hello, I am wondering if it is possible to have OPCua Server with Control for linux ARM64. Indeed I am not able to add symbol configuration.
Here is the archive of the simulation project: https://drive.google.com/file/d/1n74Qy-1yLPpI2OK4FaZO5q50y2uTa0Wr/view?usp=drive_link
Hallo, Wenn ich meine Projekte im Simulations - Modus laufen lasse bekomme ich für alle devices die Meldung "No driver found". Auf meinem Raspberry Pi laufen sie aber. Ich kann nicht genau sagen seit wann dies auftritt, bin mir aber recht sicher, dass es mal funktioniert hat. Ich habe Codesys 3.5 SP20 Patch 4. Ich würde mich freuen, wenn jemand helfen könnte. Danke und viele Grüße.
Die Geräte Bibliothek von Stefan Dreyer ist dafür gedacht, um Treiber für deine Sensoren zu erstellen, damit sie an einem MUX-Board betrieben werden können. Auch ist ein Betrieb ohne MUX-Board möglich. Der Aufbau ist relativ einfach und besteht aus folgenden Komponenten: -Initialize (hier wird die .devdesc.xml eingelesen) -BeforeWriteOutputs (ruft initDevice auf und ist für ausgehende Signale gedacht) -initDevice (initialisiert den Sensor) -AfterReadInputs (Selbsterklärend, Werte einlesen und Signalkonversation)...
After correspondence with Mr Schwellinger from Codesys the resolution for this was to uninstall the SL 4.14 and install SL 4.13 on the device. Once this was done the licensing worked as expected. I noted that the container then showed a Version 3.00 and not 0.00.
No errors in any condition. The function terminate correctly with the 'done' bit. Now I leave the machine and I don't know when I will be there again. The assumption you made I had considered. The operational limits of the axis are all fit for purpose, and this function should operate virtually without even noticing the motion limits. In fact in practice with the axis at low speed the function corrects any numerical value of the position in the range 0 ... 360° without any problem whatsoever in a...