OK, thanks for your comments, it sounds like it should work. I'll see if the issue reoccurs.
Hi, Unfortunately I can't upload full projectarchive, but I've attached screenshot showing the 2 different instances (hTTPClient_0 and hTTPClient_1), based on the single Codesys example. I'm using HTTP client ver 1.0.1.2 in Codesys V3.5 SP15 Patch 4 on a Festo CPX-CEC-S1-V3. I hope that helps. I haven't been able to recreate the issue so perhaps it was network fault. I'd just like clarification that two instances of the client block should/shouldn't be acceptable. thanks
I'm using the Codesys HTTPClient function block. I have two instances in separate CFCs, each talking to a different IP address (2 x Raspberry Pi). It's been working ok, but yesterday the Codesys program was stuck waiting for replies from both devices. Sanity check: is it ok to use multiple instances of the HTTPClient to talk to different IP addresses? Or do I need to use only one instance and somehow manage the different requests so they can't be simultaneous? thanks
Have you tried this? https://store.codesys.com/http-client-example.html?___store=en It gives an xDone / xError, if you're not interested in the actual response.
Unfortunately Trend is not supported by my PLC. If I change PLC type then it appears in Codesys.
Thank you dkugler for confirming. Using Trend (instead of Trace) allows the display of absolute time, which at least makes more sense to the user than the controller runtime. Unfortunately it is not supported by my PLC, so I will have a look at XY chart.
Thanks for your reply Morberis. I didn't even know Trend existed, as I'm stuck on 3.5.12 (waiting for Festo to update their PLC support to a newer stack). I had a play with https://forge.codesys.com/prj/codesys-example/trend-example/home/Home/ in 3.5.15 and it looks more suitable for what I want. Just adding the option of absolute timestamps is better than Trace.
Hast du die Zeit zurückgesetzt? (Google translated) I have the same request to reset the Trace time
Did you ever get this to work? I have the same request.
Thanks quirzo. I was concerned that if two or more tasks are waiting, then they would both try to access the RS232 task on the same scan cycle when it became available. I wouldn't know which command was actually sent. Instead I created a queue as an array where each task writes to it's own index in the array. If a bit is set then I know one or more commands are in the array and work through them one-by-one. The order the commands are sent doesn't matter to me so I don't need FIFO. Priority is always...
Thanks quirzo. I was concerned that if two or more tasks are waiting, then they would both try to access the RS232 task at on the same scan cycle when it became available. I wouldn't know which command was actually sent. Instead I created a queue as an array where each task writes to it's own index in the array. If a bit is set then I know one or more commands are in the array and work through them one-by-one. The order the commands are sent doesn't matter to me so I don't need FIFO. Priority is...
I'm using a single RS232 comms POU to send commands to multiple devices (all syringe pumps). The first pump is connected directly to the PLC via RS232. That pump can then forward commands to other dasiy chained pumps over RS485. The different pumps are all operating independently. The problem is the RS232 POU can be called from multiple tasks. What is the best way of locking the POU so only one task can send a command at a time? I'd want the other tasks to wait until the comms is free before continuing...
I'm interested in best practice for naming POUs in large projects. I'm a relative newbie and haven't been able to find any examples of large CODESYS projects. My latest project now has around 30 POUs, mainly ST, but the top level is Ladder. The machine runs several parallel processes on multiple parts, each process may have child subroutines. At the moment I have prefixed the POU names with a Pxxx code to give a bit of structure (see screenshot). In this example: P200_Xaxis has child processes P210_Process1,...
I'm interested in best practice for naming POUs in large projects. I'm a relative newbie and haven't been able to find any examples of large CODESYS projects. My latest project now has around 30 POUs, mainly ST, but the top level is Ladder. The machine runs several parallel processes on multiple parts, each process may have child subroutines. At the moment I have prefixed the POU names with a Pxxx code to give a bit of structure (see screenshot). In this example: P200_Xaxis has child processes P210_Process1,...