No. UX & GUI is not a Codesys GmbH priority, it seems :-(
Works fine :-)
CFC (page oriented) editor does vertical scroll by mousewheel and zoom by ctrl + mousewheel, allright. How do I do the horizontal scroll (pan) using the mousewheel? (I do not want to drag the scrollbar, I am sure you have guessed by now.)
Ah, I think I figured it out. I added a Command through "Customize": Now I find and can open the OPC UA Information Model Repository tool, allright. However, I get an error respons when trying to import a nodeset file for the ProfiNetEnergyMeter. I will have to look into whether this nodeset is the actual model to be imported or not. Maybe not....
I can not find the OPC UA Information Model Repository tool. My device is the CODESYS Control Win x64. I have (what I believe is) plain vanilla Codesys v3.5. SP18 installed. Also I have SBC QronoX ECS, a Codesys knock-off that is also based on 3.5.18.0, but it should be completely separate installations. According to Online Help one is to find the OPC Information Model Repository under toolbar menu "Tools": My Tools menu only shows this: So, am I blind? Also, the "CODESYS Installer" tool does not...
I can not find the OPC UA Information Model Repository tool. My device is the CODESYS Control Win x64. I have (what I believe is) plain vanilla Codesys v3.5. SP18 installed. Also I have SBC QronoX ECS, a Codesys knock-off that is also based on 3.5.18.0, but it should be completely separate installations. According to Online Help one is to find the OPC Information Model Repository under toolbar menu "Tools": My Tools menu opnlu has this: So, am I blind? Also, the "CODESYS Installer" tool does not...
EDIT: Problem solved (probably). It appears that advice on timing settings was not the best. Extendend Redundancy Settings- General- Timeout to 1500 ms and at least the restarted PLC2 did not 'overtake' PLC1.
Do you feel the call to investigate?
Could anyone elaborate a little on the 'CmpErrors2 interface' error 0x206, please? It reads "ERR_SOCK_WOULDBLOCK UDINT 16#206 Socket is in nonblocking mode but THIS call would block" So the nonblocking socket will block now, or what?
Could anyopne elaborate a little on the 'CmpErrors2 interface' error 0x206, please? It reads "ERR_SOCK_WOULDBLOCK UDINT 16#206 Socket is in nonblocking mode but THIS call would block" So the nonblocking socket will block now, or what?
@eschwellinger ?
Update: RedundancySyncronizeData() does give you full programatic control of when you syncronize the objects included in the Redundacy ConfigurationΒ΄s "Registered Areas" table. Like every 1 sec, 500 msec or whatever, but not at every program cycle. For fast "in-cycle-tune" data you may want to use the AREA_SYNCRO for speedier but less volumious data sets. (There is also a AREA_PASSIVE for the reverse direction) The maximum size of data included via "Registered Areas" is not known to me.
Unlike "before", now if PLC1 is "active" and PLC2 is "passive", then if PLC2 is rebooted - it will first sync with the live PLC1, but ultimately IT WILL AQUIRE ACTIVE STATE!!! Why does PLC2 not go to passive and leave the "active" PLC1 beeing undisturbed?? Beats me.... is this by design?
Thanx for sharing! I do not quite see why the project info lists 14 devices. I have only 2 PLC devices, one of which is just a dummy to hold the network configuration for that device. In reality there are 2 PLC devices in use, in redundant mode, but they get the same project code. I guess there are sub-devices representing interfaces and IO card slots, but these are not in use. All interfaces are used by protocols beeing defined in ST/FBD code. All IO is placed on RIO devices (that are not part of...
Hello, good fellows! What are your compile/build times for real-world sized projects? I am seeing build times of 1-2 minutes for a 20++ mb size project. And the wait is really straining.... Not to mention that the build seems to be double up. First, 'generate code', and then as one wants to go online the whole build appears to take place again... Anyway, this is the summary: and the project info that I could find: I do not know how to find the number of compiled lines. So I did a pdf print of the...
A beginners guide for setting up auto-complete/intellisense in VS Code (2022) for Codesys 3.5.17.10 Python Scriptlib's "scriptengine" path would be greatly appreciated :-)
For proper cyber security operation, continous audit log gathering and analysis may be a requirement. Is there a standard (protocol) for this gathering? I mean, directly from the PLC to an external log gathering 'database', not using the engineering tool. And does Codesys runtime devices support it or alternatives? (Specifically I am using SBC QrononX PLC + tool of 3.5.17.x series)
Ok, this is me beeing grumpy.... So many times working with the Codesys IDE I question if there are any UX designers on the team at all? Like for dialog 'Export' - where is the "Collapse All", "Select all /none", you know the usual stuff that we have become used to everywhere else in the sw world. Generally, I do not think that the Win 3.11 look is a plus. For sure the export dialog can collapse everything, but for a 10 device project it is 10 clicks to collapse, then a group select and select/deselect....
Ok, this is me beeing grumpy.... So many times working with the Codesys IDE I question if there are any UX designers on the team at all? Like for dialog 'Export' - where is the "Collapse All", "Select all /none", you know the usual stuff that we have become used to everywhere else in the sw world. Generally, I do not think that the Win 3.11 look is a plus. For sure the export dialog can collapse everything, but for a 10 device project it is 10 clicks to collapse, then a group select and select/d...
Not looking at the USER definition, but at the PROFILE definition I can at least answer the two first questions: *
Not looking at the USER definition, but at the PROFILE definition I can at least answer the two first questions: *
What are the criterias for an user account to become automatically locked? I.e. - is there a limit of failed attempts that will cause the account to be locked? - is there a time factor for number of attempts per time intervall? - is there a automatic unlock timeout? - or could you just point me in the direction of the relevant documentation? Regards, Erik
Did anyone investigate implementing the InfluxDB "lineprotocol"(?) directly in Codesys? I can use Telegraf to insert data, but would rather like a non-broker solution as that broker also has to be hosted somehwere.
Can this be found? Is the build info shown in the build output messages exposed through some compile time constant variables? For contractual reasons, the end customer requires some documentation regarding spare capacity of the commissioned controller. I was thinking this should be obtainable and reportable at runtime for the SCADA system to display in an info page or something. Any clues?
I will most definetly give the RedundancySynchronizeData() a try. Thanks, Edwim.
Actually, I learned today - when right clicking on the very top of the project tree, there is a "edit IO mappings" command that gives csv import/export to all mappings.
The restriction of 440 bytes for the redundancy system per-task-cycle-exchange (the AREA_SYNCRO) is ridiculous, IMHO! Even a single ethernet frame can contain at maximum 1.518 bytes, right? (1.440 bytes would be nice) What will it take for CODESYS to increase this area size or to give an asyncronous alternative, at least? As of now one will have to resort to custom data exchanges for whatever that does not fit in the AREA_SYNCRO. Doing a full SYNCRONIZE repeatedly is hardly the correct manner, either,...
The restriction of 440 bytes for the redundancy system per-task-cycle-exchange (the AREA_SYNCRO) is ridiculous, IMHO! Even a single ethernet frame can contain at maximum 1.518 bytes, right? (1.440 bytes would be nice) What will it take for CODESYS to increase this area size or to give an asyncronous alternative, at least? As of now one will have to resort to custom data exchanges for whatever that does not fit in the AREA_SYNCRO. Doing a full SYNCRONIZE repeatedly is hardly the correct manner, either,...
Ah, this is the CODESYS standard redundancy concept for a controller pair handling the active/standby, high availability, many names.... feature from CODESYS GmbH. You may not find it in the standard Codesys release, it is a OEM module provided by CODESYS to be integrated by the device hardware manufacturer. But I expect the properties of the the different data areas utilized to be of the same nature for all these implementations, as they are set by CODESYS GmbH. Thus, sizes of AREA_SYNCRO, AREA_PASSIVE,...
The restriction of 440 bytes for the redundancy system per-task-cycle-exchange (the AREA_SYNCRO) is ridiculous, IMHO! Even a single ethernet frame can contain at maximum 1.518 bytes, right? (1.440 bytes would be nice) What will it take for CODESYS to increase this area size or to give an asyncronous alternative, at least? As of now one will have to resort to custom data exchanges for whatever that does not fit in the AREA_SYNCRO. Doing a full SYNCRONIZE repeatedly is hardly the correct manner, either,...
How do I read out the task monitoring info at runtime in my plc program? Same info as in the IDE; https://help.codesys.com/webapp/_cds_obj_task_config_monitor;product=codesys;version=3.5.17.0
Is there a way do define the Modbus slave mappings in , and import them from, say MS Excel? If I have 400 objects with a few words each, like command mask word and some parameters, then what if I want to expand or modify my data set at a later time? Seems like a lot of work to edit the mapping table manually. Is there a way to define the mappings in StructuredText code programatically? It tried some "REFERENCE TO" juggeling, but that was not allowed. The Holding Registers must be writable from code...
Yes, Indeed. The problem was that the register items were still of type %IWx, i.e. read only registers. Only after deleting the mapped variables and fiddeling with the number of registers setting in the 'General' tab, did the type change to %QWx, for writable registers. The user-program can now clear the received registers after processing. @i-campbell, Thanx.
That has been tried, but I will try again.
It appears that Holding Registers are writable only from Modbus. These are then mapped to Codesys PLC variables. Is this mapping one-way only? For values updatable by PLC code I have used Input Registers. Is this by design? i.e. Scada (client) --> Modbus --> Holding Registers --> PLC (server) and Scada (client) <-- Modbus <-- Input Registers <-- PLC (server) Can Holding Registers be cleared in the PLC by PLC code? E.g. to clear a recieved command word after execution of local code.
Modbus UDP is extensively used for less capable devices that do not need to maintain the TCP socket. It has its flaws though. Luckily for now, my clients emergency phone devices are capable of Modbus/TCP so I will ditch the WAGO FbMbMasterUdp implementation in favour of a bog standard Codesys Modbus config editor setup. Thanks.
Any more info on this?
Well, actually, the 'Log' information of the "Redundancy Configuration" editor is for PLC2!! This is indeed explained in the HELP. (CODESYS Development System > Reference, User Interface > Objects > Object 'Redundancy Configuration' > Tab 'Log') But WTF , Codesys??? Why not simply put this information in the dialogue itself?
IMHO, the Redundancy Configuration / Log shows an entry of "Switchover: Changed state to Active" when I switch to Standby, and vice versa. Why is this? (I am pretty sure that I do not have my controllers mixed up.....)
You may also try this https://zerowidthjoiner.net/negativescreen. It alters the monitor uising methods buildt on the MS Win Magnifier tools. I did not find the text as crisp as I wanted, but that can be my eyes or lack of tweaking.
That should be straight forward using the Codesys OPC UA client. Sample here: https://store.codesys.com/en/opc-ua-client-example.html BUT, it requires that the device you are working with has a Runtime core that includes the "CmpOPCUAClient" component. This will be different from one hardware manufacturer to another. What device/controller/system are you working with?
For a redundant cpu setup I would like to communicate internally in one device between the redundant application and a top-side interface application. What are my options? Shared memory? Anything else?
When using CASE to implement a simple FSM I would like to mark the state names(e.g "STATE.IDLE_DISCONNECTED:") and add these (CTRL+F12) to the Bookmarks list - using the selected text as bookmark name. Can this be done without manually renaming the generated bookmark? How can one dock the Bookmarkslist to the left or rigt of the ST text editor window?
Well, better than nothing... "Syntax: {attribute 'displaymode':=<displaymode>} The following definitions are possible Binary format {attribute 'displaymode':='bin'} {attribute 'displaymode':='binary'} Decimal format attribute 'displaymode':='dec'} {attribute 'displaymode':='decimal'} Hexadecimal format {attribute 'displaymode':='hex'} attribute 'displaymode':='hexadecimal'}" </displaymode> What about display mode format 'ipv4address' ? (yes, a suggestion. Not all of us want to read hex allways.....
Well, better than nothing... "Syntax: {attribute 'displaymode':=<displaymode>} The following definitions are possible Binary format {attribute 'displaymode':='bin'} {attribute 'displaymode':='binary'} Decimal format attribute 'displaymode':='dec'} {attribute 'displaymode':='decimal'} Hexadecimal format {attribute 'displaymode':='hex'} attribute 'displaymode':='hexadecimal'}"</displaymode> What about display mode format 'ipv4address' ? (yes, a suggestion. Not all of us want to read hex allways......
Can the text editor dark theme be activated for online mode?
How do I mix multipple display modes (i.e. decimal, hex , binary) for individual symbols in the watch windows? (or is it only a common setting for all symbols????)
How do I mix multipple display modes (i.e. decimal, hex , binary) for indivudal symbols in the watch windows? (or is it only a common setting for all symbols????)