Post by nico01 on Integer with comma in visualization
CODESYS Forge
talk
(Post)
Hello everyone, I created a visualization with a lot of REAL, with one or two digits after the decimal point. This causes me problems in terms of rounding and memory... is it possible to display an integer with a comma, like with PROFACE or SIEMENS? It's just an "abuse" of display, the comma is just on the visualization. This limits the memory (16 versus 64 bytes) and rounding is easier to manage... See print screen on proface software THANKS
Last updated: 2023-09-20
Post by matt-purcell on Which Lib to use, connect to a socket with URL instead of IP address
CODESYS Forge
talk
(Post)
Hello, I have a new project and I need to connect to a TCP socket using the URL instead of an explicit IP address, myendpoint@mydomain.com Which library is best suited for this? This is for a new enterprise project, the endpoint is a server in a datacenter running some real time application. We have big IP, it will automatically reassign the IP address to the backup server if a crash occurs so an explicit IP won't work for me. I've done this in RS logix, working now to migrate that code over to codesys. Thanks in advance!
Last updated: 2024-06-17
Post by maralani on Retain memory change to ZERO
CODESYS Forge
talk
(Post)
Hi, thanks for help, I add some retain variable , then some other variable change to zero , andI was not able to change the value
Last updated: 2023-09-19
Post by nano on Library for arrays
CODESYS Forge
talk
(Post)
habe a look at __new and __delete operators. have in mind that in this case u have a look at memory see https://help.codesys.com/api-content/2/codesys/3.5.15.0/en/_cds_operator_new/
Last updated: 2024-01-14
Post by smartcoco on Bit / Bool data types in function parameters
CODESYS Forge
talk
(Post)
Memory addressing is measured in bytes, with BOOL occupying one byte. BIT is quite unique as it occupies one bit. So, try not to use BIT in the program. You can use the Unpack function to solve your problem.
Last updated: 2024-01-18
Post by dkugler on Unable to load dynamic modules (Download failed: Application=Application)
CODESYS Forge
talk
(Post)
Maybe shared memory is an opinion for you to give it a try: https://content.helpme-codesys.com/en/CODESYS%20Examples/_ex_cds_shared_memory_communication.html
Last updated: 2024-02-16
Post by gurkan on OPCUA array max length?
CODESYS Forge
talk
(Post)
2000 works. When testing with UA Expert there is a timeout from the OPCUA Server when trying to subscribe to the variable CPU do not seems to be to affected. The memory(RAM) however is building up
Last updated: 2024-02-19
Post by john-robinson on Limiting Memory Access of an Array to Within its Bounds
CODESYS Forge
talk
(Post)
Thanks Tim! This was exactly the functionality we were looking for. We are already using implicit checks to check for divide by 0 errors, we will add implicit checking for array bounds.
Last updated: 2024-03-06
Post by hjohnson123 on PLC Memory consumption?
CODESYS Forge
talk
(Post)
Hi, How can you access the <root> of the Linux system? I'm struggling with this as the code above results in an invalid handle, as it cannot access '/'.</root> I am using Control for Raspberry Pi for context. Thanks.
Last updated: 2024-06-05
Post by viktorr on ShareMemory library documentation
CODESYS Forge
talk
(Post)
Hello, I was wondering if there was further documentation on the SharedMemory library in CodeSys outside of the code example provided, or maybe a way to access the source code of the shared memory implementation. Thank you in advance for any advice. - Viktor
Last updated: 2024-07-03
Post by viktorr on Shared Memory Requested Size
CODESYS Forge
talk
(Post)
Hello Derek, I recognize this is an older post, but i was wondering if found any ways to remedy this. I am running into what i think is the same problem you had here. Thank you in advance for any information, Viktor
Last updated: 2024-07-04
Post by ph0010421 on Stack overflow with really simple function
CODESYS Forge
talk
(Post)
Hello I wouldn't call an FB from inside a FUN; it feels wrong to me. I have had something similar. Try declaring the FB instances as GlobaVars rather than the instance memory.
Last updated: 2024-09-17
Post by jari-koivuluoma on Get text from textlist
CODESYS Forge
talk
(Post)
Are your texts WSTRING? maybe you should try WSTRING versions. I have a vague memory of having to switch to TextListUtils library also.
Last updated: 2024-09-19
Post by mondinmr on Why SysPipeWindows is not implemented in RTE?
CODESYS Forge
talk
(Post)
This library would be very useful for IPC communications. Using a UDP socket on localhost is unpredictable, as with slightly loaded machines it does not even guarantee packet delivery locally. Using TCP creates a lot of overhead. Message named pipes would be an excellent solution for Windows RTE. On Linux, since the release of the extension package, there is no issue, as it is sufficient to develop a component. However, although now 90% of our clients understand that Linux runtimes are better in every way compared to Windows RTE, especially from the security aspect (Not in kernel space) and the issues with Windows updates, 10% stubbornly insist (sometimes for trivial commercial reasons) on using Windows. Managing IPC with circular buffers in shared memory is quite ugly, or rather really ugly and unaesthetic. In the manuals, I saw the SysPipeWindows libraries, so I decided to test them, but unfortunately, I noticed that they are not implemented for RTE devices. Technically, I could try to open them as regular files, but SysFileOpen returns 16#27 or 16#39 depending on how I set the name (direction of the slashes). Here is the code to create shared memory and named pipes. Shared memory work great, named pipes no! #ifdef Q_OS_WIN32 SECURITY_ATTRIBUTES sa; SECURITY_DESCRIPTOR sd; InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION); SetSecurityDescriptorDacl(&sd, TRUE, NULL, FALSE); sa.nLength = sizeof(SECURITY_ATTRIBUTES); sa.lpSecurityDescriptor = &sd; sa.bInheritHandle = FALSE; const wchar_t* name = L"Global\\ShmTest"; HANDLE hMapFile = CreateFileMapping( INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(SharedData), name); if (hMapFile == NULL) { qCritical("Error creating shared memory"); return 1; } data = static_cast<SharedData*>(MapViewOfFile(hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(SharedData))); if (data == NULL) { qCritical("Error mapping shared memory"); return 1; } HANDLE hPipe = CreateNamedPipe( TEXT("\\\\.\\pipe\\MyPipe"), PIPE_ACCESS_DUPLEX, PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT, PIPE_UNLIMITED_INSTANCES, 1024 * 1024, 1024 * 1024, NMPWAIT_USE_DEFAULT_WAIT, &sa); if (hPipe == INVALID_HANDLE_VALUE) { qCritical("Error creating named pipe"); return -1; } if (!ConnectNamedPipe(hPipe, NULL)) { qCritical("Error connecting to named pipe"); return -1; } checkPipe(hPipe); #endif
Last updated: 2024-02-02
Post by davidbo on How to switch between dynamic IP address and dynamic?
CODESYS Forge
talk
(Post)
Well. One can do that, I have found a python script which can modify /etc/dhcpcd.conf and I suppose there is a way I can execute it from CODESYS and it seems to be the only way
Last updated: 2023-11-08
Post by lostcontrol on Bool turning on in case stament in wrong state?
CODESYS Forge
talk
(Post)
are you sure it is not used anywhere else.? does it have an address that could be duplicated perhaps? nothing external writing to it?
Last updated: 2023-12-16
Post by alexgooi on Codesys OPC DA server requires more then 2 GB of ram
CODESYS Forge
talk
(Post)
My colleague has found a tool online, Now it is possible to go to 4 GB instead of 2, which is plenty for now: https://www.techpowerup.com/forums/threads/large-address-aware.112556/ Use at own risk
Last updated: 2024-01-25
Post by nano on Dynamic setting of the modbus tcp/ip slave ip address
CODESYS Forge
talk
(Post)
habe a look to this faq, this should work for u https://faq.codesys.com/plugins/servlet/mobile?contentId=24510471#content/view/24510471
Last updated: 2024-02-17
Post by ragarcia on Error while using UpdateConfiguredIPSettings to change IP address
CODESYS Forge
talk
(Post)
I did check I cannot see any error log. It is when executing the Reconfigure function that I get an error as return from that function.
Last updated: 2024-02-19
Post by ralfk on Dynamic Setting IP Address from IEC code
CODESYS Forge
talk
(Post)
Hello together. I also want to try it but when enter Ethernet.UpdateConfiguredIPSettings I don't see this Option. what do I wrong. I hope somebody can help me.
Last updated: 2024-02-19
Post by ralfk on Dynamic Setting IP Address from IEC code
CODESYS Forge
talk
(Post)
Hello together. I also want to try it but when enter Ethernet.UpdateConfiguredIPSettings I don't see this Option. what do I wrong. I hope somebody can help me.
Last updated: 2024-02-19
Post by vkira on Radio module on wago 750-8217
CODESYS Forge
talk
(Post)
Hello. Tell me how to connect to the internal radio module PLC 750-8217. I use the gsm sms_01 library. I don't understand how to connect. via com port? what's the address?
Last updated: 2024-05-06
Post by alex-wall on Network Variables not updating
CODESYS Forge
talk
(Post)
This worked for me. I had four identical PLC's. Three of them worked just fine with 255.255.255.255 as the broadcasting address but the 4th would not update the variables. Changed it to 192.168.x.255 and everything worked.
Last updated: 2024-05-07
Post by pasillalej on No gateway with the given settings could be found
CODESYS Forge
talk
(Post)
Go to Online>Communication Parameters...>Gateway>TCP/IP> Click on "New..." and reestablish your connections with whatever IP address and set up information you have. Bypass whatever is necessary as you may have to redownload to the PLC.
Last updated: 2024-05-09
Post by mondinmr on First IO address of a CAADiagDeviceDefault.
CODESYS Forge
talk
(Post)
I have a device CAADiagDeviceDefault: IoConfig_Globals.Axis_A In our library, we perform introspection of the Etc_SlaveDiag. In that case, we have connectors, and by searching for them by address, I can find them in the IO mapping using the offset and size provided by EtherCAT. However, a Lenze i700 drive, instead of placing the IO mapping in the Etc_SlaveDiag device, places it in a sub-device CAADiagDeviceDefault. So, when I perform introspection, I cannot find the IO correspondences. Yet, in the CAADiagDeviceDefault, I do not find the connectors and cannot do the matching. Is there a way with a pointer or reference to a CAADiagDeviceDefault to obtain the address of the first input and the address of the first output? This is because we have our own motion library with many EtherCAT devices that automatically configure the mappings, but I can't manage to do so with the Lenze i700.
Last updated: 2024-08-22
To search for an exact phrase, put it in quotes. Example: "getting started docs"
To exclude a word or phrase, put a dash in front of it. Example: docs -help
To search on specific fields, use these field names instead of a general text search. You can group with AND
or OR
.