00 I have the same issue, and no answers on any forums that I can see.
Hello, I have a PLC in a remote location. I can connect to it, but when I use a different PC, it asks me to re-download to the PLC - which will a) interrupt production and b) cause version issues. Codesys being open-source, if someone else has made changes, I need to be able to connect, upload the current project, compare it with mine and then decide what next. Every time I connect, it says Warning: An application 'Application' is currently in RUN mode on the PLC. As there is no matching compile...
Hello, I have a PLC in a remote location. I can connect to it, but when I use a different PC, it asks me to re-download to the PLC - which will a) interrupt production and b) cause version issues. Codesys being open-source, if someone else has made changes, I need to be able to connect, upload the current project, compare it with mine and then decide what next. Every time I connect, it says there is no project on the target and must download - which I know is not true. What am I doing wrong?
I use these Teltonika routers with ZeroTier rather than OpenVPN - works better for me. I can show you how if you like?
Hello, Depends on the architecture of your PLC. If the PLC is a PC-based item with a normal desktop environment, then you probably can. I find it simpler to install an IIoT Router in the panel, and use an encripted VPN to link to my office PC / Laptop on demand.
Thankyou. worked fine.
OK! PSA for others: Data type INT fails because it has no decimal places, and using it in the math when it is any value below 1 simply returns 0. As it will always calculate to 0.xxx in the first part of the math, only the 0 without any decimal places is passed to the second part of the math - and anything multiplied by 0 is 0! I changed PumpFillSpeed to REAL, and then used REAL_TO_WORD.
Hello, I need to take an INT input, and convert it to a WORD value. VAR DRV2Speed : WORD; //IO card takes a WORD where 16000 = full 10V output (equivalent to 50Hz) PumpFillSpeed : INT; //Users enter a value between 0 and 50 END_VAR IF <conditions> THEN DRV2Speed :=INT_TO_WORD((PumpFillSpeed/50)*16000); END_IF </conditions> According to me this should work - but it stays at 0, no matter what. What am I doing wrong?