You can use C3.5 by using the 3S firmware on the 8202 https://us.store.codesys.com/codesys-control-for-pfc200-sl-1.html
You can use C3.5 by using the 3S firmware on the 8202 https://us.store.codesys.com/codesys-control-for-pfc200-sl-1.html
Trying to connect to a Codesys V3 datasource but am unsuccessful. The error information for the datasource reads: Failed (not nearer specified) Error ID: 418 Can anyone shed light on what that error means?
There appears to be a limit to the number of OPC Servers that can be connected simultaenously. 1-10 work but adding an 11th makes one of the previously linked ones unavailable. Is this a soft setting that can be adjusted? Using 3.5.18.30 on Win x64
Device Tested: Codesys Control Win V3 x64 (3.5.18.0) Codesys Version: 3.5 SP18 64bit Configuration: Codesys is acting as a Modbus Slave (ModbusTCP Slave Device). General Configured Parameters: Holding Registers: 10 (%QW) Writeable Input Registers: 10 (%QW) Coils: 0 Discrete Inputs: 0 Data Model: 0/0/0/0 In a global variables list I declared the following: UI_Word_1 AT %QW0 : WORD; UI_Word_2 AT %QW1 : WORD; UI_Word_3 AT %QW2 : WORD; Behavior: Unable to use the "Write Values" function in the Debug...
Devices Tested: Opto 22 Groov Epic PR 1 (3.5.17.10) and Codesys Control Win V3 x64 (3.5.18.0) Codesys Version: 3.5 SP18 64bit Configuration: Codesys is acting as a Modbus Slave (ModbusTCP Slave Device). General Configured Parameters: Holding Registers: 500 (%QW) Writeable Input Registers: 2 (%QW) Coils: 200 (%QX) Discrete Inputs: 0 Data Model: 0/0/0/0 [-img src=2022-07-21 13_21_42-Window.png width=50%: missing =-] Modbus Configurator automatically configured variables visible in the I/O Mapping section....
Moderator Please Close This Topic -- Further Testing Shows My Initial Observations Were Wrong Devices Tested: Opto 22 Groov Epic PR 1 (3.5.17.10) and Codesys Control Win V3 x64 (3.5.18.0) Codesys Version: 3.5 SP18 64bit Configuration: Codesys is acting as a Modbus Slave (ModbusTCP Slave Device). General Configured Parameters: Holding Registers: 500 (%QW) Writeable Input Registers: 2 (%QW) Coils: 200 (%QX) Discrete Inputs: 0 Data Model: 0/0/0/0 [-img src=2022-07-21 13_21_42-Window.png width=50%: missing...
In the General tab or your Modbus TCP Slave configuration, check "Writeable". Make sure you do not have a Watchdog enabled unless you want values zeroed when the master disconnects. Either map your values in the Modbus TCP Slave Device I/O Mapping tab or define your variables to overlay on the address range mapped for the Holding Registers. I can't quite workout what the "Holding and input register data areas overlay" means.
In the General tab or your Modbus TCP Slave configuration, check "Writeable". Make sure you do not have a Watchdog enabled unless you want values zeroed when the master disconnects. Either map your values in the Modbus TCP Slave Device I/O Mapping tab or define your variables to overlay on the address range mapped for the Holding Registers.
Looking for a solution to this problem as well. It looks as if setting Holding Registers to be "Writeable" is part of the solution. Unfortunately, all holding registers are cleared when the Modbus Master disconnects.
Having a similar issue. It seems that having coils and registers enabled maps them over the top of each other. With coils disabled I can write to registers externally but not from within the project. Furthermore when there is no activity for an external modbus the values set externally reset to 0.
Devices Tested: Opto 22 Groov Epic PR 1 (3.5.17.10) and Codesys Control Win V3 x64 (3.5.18.0) Codesys Version: 3.5 SP18 64bit Configuration: Codesys is acting as a Modbus Slave (ModbusTCP Slave Device). General Configured Parameters: Holding Registers: 500 (%QW) Writeable Input Registers: 2 (%QW) Coils: 200 (%QX) Discrete Inputs: 0 Data Model: 0/0/0/0 [-img src=2022-07-21 13_21_42-Window.png width=50%: missing =-] Modbus Configurator automatically configured variables visible in the I/O Mapping section....
Tripped myself up by accidentally adjusting the starting addresses in the data model field. Thanks for your help!
That's what I assumed. Even though the TCP Slave shows running as soon as I start polling I still get the illegal address reply. I'll keep poking at it but I appreciate the reply!
I've configured a Modbus TCP Slave underneath my ethernet adapter but can't seem to find the appropriate decimal offset to externally poll the configured registers. Holding Registers begin at %QW0 Input Registers begin at %QW20 Coils begin at %QB80 Discrete Inputs begin at %QB82 All attempts at polling the registers result in an illegal data address exception. Could someone please point me at the documentation describing the decimal offsets for a Codesys 3.5 Modbus TCP Slave?
I've configured a Modbus TCP Slave underneath my ethernet adapter by can't seem to find the appropriate decimal offset to externally poll the configured registers. Holding Registers begin at %QW0 Input Registers begin at %QW20 Coils begin at %QB80 Discrete Inputs begin at %QB82 All attempts at polling the registers result in an illegal data address exception. Could someone please point me at the documentation describing the decimal offsets for a Codesys 3.5 Modbus TCP Slave?
I've configured a Modbus TCP Slave underneath my ethernet adapter by can't seem to find the appropriate decimal offset to externally poll the configured registers. Holding Registers begin at %QW0 Input Registers begin at %QW20 Coils begin at %QB80 Discrete Inputs begin at %QB82 All attempts at polling the registers result in an illegal data address exception. Could someone please point me a the documentation describing the decimal offsets for a Codesys 3.5 Modbus TCP Slave?
Marcel, Its a novel solution but it seems break if I load page 3 and then try to load any of the other pages. However, it appears to abstract for multiple clients without issue.
Hi Marcel, Sample project archive attached.
Currently, I am using a web browser element in a "pop-up" visualization that is called via an OnMouseUp Open Dialog command. The open dialog command passes an object to the Dialog which contains the URL string and the Show bool for the browser element. As part of the OnMouseUp event I am setting using an Execute ST call to set the Show bool to true. This seems to load the URL from the last object that was passed into the Dialog. It it possible to have a visualization execute some code once it loads...
SOLUTION: Found that "Use CurrentVisu variable" in the General Settings tab of the VisualizationManager got checked. Unchecking this option let the clients operate independently.
IDE: 3.5 SP17 Patch 2 Runtime: Win V3 X64 3.5.17.20 It seems that using the "Change Shown Visualization" option on a mouse down event changes the visualization for all connected clients to the target visualization instead of change it only for the client that had the mouse down event. Is there a different way to switch between visualizations so-as not to affect other clients?
Thanks!
Hello asnik, Did you perhaps find a solution for monitoring mouse events?
Thanks for the info! VAR_IN_OUT_AS_POINTER worked as documented for me. I'll fall back to the other suggestions if that falls apart. Thank you!
It seems that text fields link the text variables utilized in a pop-up display the value that was present when the pop-up was loaded but do not update as the value changes. I am calling up the "popup" by using the "Open Dialog" option on a mouse down event. Is it possible for the text field in such a popup to stay current?
It seems that text fields link the text variables utilized in a pop-up display the value that was present when the pop-up was loaded but do not update as the value changes. Is it possible for the text field in a popup to stay current?
Project targeting Codesys Control Win V3 x64 v 3.5.17.20. The Codesys 3.5 environment is 3.5 SP17 Patch 2 +. In this project I have 10 OPC UA Server datasources defined. All 10 datasources are WAGO 750-8100 PLCs configured identically but running unique projects. All 10 datasources appear to be connected and healthy (Connection State βConnectedβ, Error information βOKβ). However, there is always one or two datasources for which there is no actual exchange of data. There is no pattern to which datasource...
Hi @eschwellinger the browser will not be running on the PLC so unfortunately I cannot issue a SysProcessExecuteCommand to kill the browser
Is it possible to create a button in a visualization that would interact with the current client's browser? Specifically looking to close a chrome browser running in kiosk mode from within the webvisu.
Post created in error in this forum. How does one delete a post?
Is it possible to track activity for a given WebVisu client with the intention of returning to a home screen after a period of inactivity? The VU.IVisualizationClient doesn't provide the timeLastMouseEvent. I understand that using VisuElems directly is frowned upon.
Is it possible to track activity for a given WebVisu client with the intention of returning to a home screen after a period of inactivity? The VU.IVisualizationClient doesn't provide the timeLastMouseEvent. I understand that using VisuElems directly is frowned upon.
Is it possible to create add a trace control which is unique per client? I know CURRENTCLIENTID can be used to retrieve the client session. The trace object results in a task exception if the variable is dynamically set (gvl.arrayofvalues[CURRENTCLIENTID])
Marcel, As written it will refresh any client on that visualization page not just one with an extended duration. I would have to have a different custom filter for every visualization in the project. Prior to posting my question I already had a customer VisuClientIteration and ClientFilter based on your recommendation in this thread (https://forge.codesys.com/forge/talk/Deutsch/thread/f14041c158/?limit=25#9c5f). Do you see any issue with implementing the custom Iteration with the HandleClient method...
Marcel, Is the official stance to no longer use the method proposed by Rick/illustrated in the sample? Is there a sample project you could point me towards that accomplishes the same using visu utils?
Marcel, I'll check to see if the behavior is browser agnostic and then report if necessary. In the interim there is an issue that I need to work around. Is there a way to reference the "CurrentVisuName" parameter of the current client as it works through the client filter (VU.IVisualizationClientFilter)?
It appears that if a WebVisu keeps the same page up for a number of days it will eventually "lose" some of the page's elements. I have not figured out if the root problem is with the Codesys Visualization or with the Chrome browser. For this reason I am looking for a way to trigger a refresh of a webvisu client if the WebVisu hasn't been navigated away from for some period of time. If it possible to have the FBChangeVisu function (https://help.codesys.com/webapp/t6Wggu4AU17ivuxOCz5MhwO5thc%2FFbChangeVisu;product=VisuUtils;version=3.5.12.0)...
After a windows update I am unable to access the webvisualizations via HTTPS. HTTP still works as expected. When launchung the Codesys Control (Win V3 x64) I get the errors below. 2021-02-17T03:11:58.732Z: Cmp=CmpWebServer, Class=1, Error=0, Info=0, pszInfo= ********** 2021-02-17T03:11:58.732Z: Cmp=CmpWebServer, Class=1, Error=0, Info=0, pszInfo= Web Server 2021-02-17T03:11:58.732Z: Cmp=CmpWebServer, Class=1, Error=0, Info=0, pszInfo= Root directory : $PlcLogic$/$visu$ 2021-02-17T03:11:58.732Z: Cmp=CmpWebServer,...
@eschwellinger Hi Edwin, I'm trying to replicate your solution by having the script Stop/Start the codesyscontrol with UPS state change but have been unsuccessful. Was your only change to add these lines to bb_core_power.py? Double quotes or single quotes around the start/stop command? if isUPS: subprocess.run("sudo bash /etc/init.d/codesyscontrol start", shell=True) else: subprocess.run("sudo bash /etc/init.d/codesyscontrol stop", shell=True)