Of course there is! =) just edit file/etc/ssh/sshd_config and restart ssh service. but you'll lose the possibility of runtime management through "update Linux", so there enother question - how to change default port in codesys it-self?
Hi, Got same problem, appeared after 4.3.1.0 update. Prabably problem is in performance. I am using virtual machine, so adding one more core and several GB to RAM still not solved, but atleast did system more stable. Try optimise your main program or set less task interval. Regards, I will be your mate in solving this mistery =)
Hi. Not shore, but looks like problem was on Ethernet switch through which connection was. Actually ping was jumping on 300ms and more. So problem was solved by connecting straight on Ethernet port it'self. Got lesson to check your periphery =)
Hello! Got Another issue... I was able to use my early method of connection to profinet slave ( https://forge.codesys.com/forge/talk/Runtime/thread/c7f677ad27/#86e2 ) and everything was fine until I used windows hyper-v server (almost same as proxmox virtual environment on ubuntu server, but on windows server). For some reason proxmox hangs up on rebooting and have very long start on this mini-pc, so it cannot be used. After virtual plc starts, all the connected devices after 20 seconds keep sending...
Hello! Got Another issue... I was able to use my early method of connection to profinet slave (https://forge.codesys.com/forge/talk/Runtime/thread/c7f677ad27/#86e2) and everything was fine until I used windows hyper-v server (almost same as proxmox virtual environment on ubuntu server, but on windows server). For some reason proxmox hangs up on rebooting and have very long start on this mini-pc, so it cannot be used. After virtual plc starts, all the connected devices after 20 seconds keep sending...
hello! With over ~100 adapters i got new issues: - if scanner have more then ~20 adapters, connected devices over ~20 gone failed with error about buffer size, so now I have 5 scanners with 20 adapters each; - with such number of adapters, time by time got connection timed out. The only way for now is to change timeout value on each adapter, so I want to assign a single parameter somewhere. - with changing IP addresses of adapters they are hunging-up with error 100 (Duplicate Forward Open), but it...
Need to set IO task
Hollo! I have several controllers with same program. By default for each controller PN_Controller is "controller" and it conflicts with error "invalid station name". I don't want connect to each of them and change names manually. I want to set Name dependence from IP, e.g. "controller-1-120". Is there any way to do it? Thanks.
Thank you, very much! Now I need to test all delays.
Hello! I have big project with over 100 devices and each have 64 bytes in I/O. When I try to compile it, there is popups an error. Don't know how error sounds in english but on russian is: "ΠΠ΄ΡΠ΅Ρ '%QW2048' Π²Π½Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°: PΠ°ΡΡΡΠΈΡΠ°Π½Π½ΡΠΉ ΡΠ΄Π²ΠΈΠ³: 4098, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ: 4096" - which means: "Address '%QW2048' out of range: calculated shift: 4098, dedicated size: 4096". I assume that I/O memory was exceed 4096 Bytes. Is there any way to extend this bound? Thanks.
Thanks, It works, and I got other parameters ID within XML =)
Thanks, It works =)
I have several EDS files and use'em in project. Now I want to recognize node using their Generic Parameters to assign correspond IP-addresses. For example: Node := Scanner.FirstChildNode; FOR node_index := 0 TO Scanner.ChildNodeCount-1 DO Node := Node.NextSiblingNode; RemoteAdapter_diag := Node; vendor_code := get_vendor_code(RemoteAdapter_diag); if vendor_code = eds1_vendor_code then RemoteAdapter_diag.IPAddress := eds1_IP; elsif vendor_code = eds2_vendor_code then RemoteAdapter_diag.IPAddress :=...
I have several EDS files and use'em in project. Now I want to recognize node using their names to assign correspond IP-addresses. For example: Node := Scanner.FirstChildNode; FOR node_index := 0 TO Scanner.ChildNodeCount-1 DO Node := Node.NextSiblingNode; RemoteAdapter_diag := Node; vendor_code := get_vendor_code(RemoteAdapter_diag); if vendor_code = eds1_vendor_code then RemoteAdapter_diag.IPAddress := eds1_IP; elsif vendor_code = eds2_vendor_code then RemoteAdapter_diag.IPAddress := eds2_IP; end_if...
I have several EDS files and use'em in project. Now I want to recognize node using their names to assign correspond IP-addresses. For example: Node := Scanner.FirstChildNode; FOR node_index := 0 TO Scanner.ChildNodeCount-1 DO Node := Node.NextSiblingNode; RemoteAdapter_diag := Node; vendor_code := **get_vendor_code(RemoteAdapter_diag)**; if vendor_code = eds1_vendor_code then RemoteAdapter_diag.IPAddress := eds1_IP; elsif vendor_code = eds2_vendor_code then RemoteAdapter_diag.IPAddress := eds2_IP;...
I have several EDS files and use'em in project. Now I want to recognize node using their names to assign correspond IP-addresses. For example: Node := Scanner.FirstChildNode; FOR node_index := 0 TO Scanner.ChildNodeCount-1 DO Node := Node.NextSiblingNode; RemoteAdapter_diag := Node; vendor_code := get_vendor_code(RemoteAdapter_diag); if vendor_code = eds1_vendor_code then RemoteAdapter_diag.IPAddress := eds1_IP; elsif vendor_code = eds2_vendor_code then RemoteAdapter_diag.IPAddress := eds2_IP; end_if...
I have several EDS files and use'em in project. Now I want to recognize node using their names to assign correspond IP-addresses. For example: Node := Scanner.FirstChildNode; FOR node_index := 0 TO Scanner.ChildNodeCount-1 DO Node := Node.NextSiblingNode; RemoteAdapter_diag := Node; vendor_code := get_vendor_code(RemoteAdapter_diag); if vendor_code = eds1_vendor_code then RemoteAdapter_diag.IPAddress := eds1_IP; elsif vendor_code = eds2_vendor_code then RemoteAdapter_diag.IPAddress := eds2_IP; end_if...
I have several EDS files and use'em in project. Now I want to recognize node using their names to assign correspond IP-addresses. For example: vendor_code := get_vendor_code(EthIP_eds1); if vendor_code = eds1_vendor_code then EthIP_eds1.IPAddress := eds1_IP; elsif vendor_code = eds2_vendor_code then EthIP_eds1.IPAddress := eds2_IP; end_if where "EthIP_eds1" is EtherNet/IP Remote Adapter - node in device tree. So the question: anybody know how to get this "Device Generic Parameters" in program?
I have several EDS files and use'em in project. Now I want to recognize node using them names to assign correspond IP-addresses. For example: vendor_code := get_vendor_code(EthIP_eds1); if vendor_code = eds1_vendor_code then EthIP_eds1.IPAddress := eds1_IP; elsif vendor_code = eds2_vendor_code then EthIP_eds1.IPAddress := eds2_IP; end_if where "EthIP_eds1" is EtherNet/IP Remote Adapter - node in device tree. So the question: anybody know how to get this "Device Generic Parameters" in program?
Hello! I am using Pigeon RB300-CM (plc-like Raspberry Pi 3) with runtime of 4.0.1.0 and CoDeSys 13.5 SP16 patch 4. Recently I noticed that my program didn't affect on GPIO output ports. I tried to force output in TRUE, but still nothing. I tried to change value by "gpio write" in linux console - and it worked! But only when codesys app stopped. After start gpio turned to false, so trouble definitely in project. Looks like something blocking all GPIO's at start. Minimized project attached (one output...
Hello! I am using Pigeon RB300-CM (plc-like Raspberry Pi 3) with runtime of 4.0.1.0 and CoDeSys 13.5 SP16 patch. Recently I noticed that my program didn't affect on GPIO output ports. I tried to force output in TRUE, but still nothing. I tried to change value by "gpio write" in linux console - and it worked! But only when codesys app stopped. After start gpio turned to false, so trouble definitely in project. Looks like something blocking all GPIO's at start. Minimized project attached (one output...
Hello! I am using Pigeon RB300-CM (plc-like Raspberry Pi 3) with CoDeSys 13.5 SP16 patch. Recently I noticed that my program didn't affect on GPIO output ports. I tried to force output in TRUE, but still nothing. I tried to change value by "gpio write" in linux console - and it worked! But only when codesys app stopped. After start gpio turned to false, so trouble definitely in project. Looks like something blocking all GPIO's at start. Minimized project attached (one output in TRUE and profinet...
Hello! I am using Pigeon RB300-CM (plc-like Raspberry Pi 3). Recently I noticed that my program didn't affect on GPIO output ports. I tried to force output in TRUE, but still nothing. I tried to change value by "gpio write" in linux console - and it worked! But only when codesys app stopped. After start gpio turned to false, so trouble definitely in project. Looks like something blocking all GPIO's at start. Minimized project attached (one output in TRUE and profinet master). You can try any other...
Hello! I am using Pigeon RB300-CM (plc-like Raspberry Pi 3). Recently I noticed that my program didn't affect on GPIO output ports. I tried to force output in TRUE, but still nothing. I tried to change value by "gpio write" in linux console - and it worked! But only when codesys app stopped. After start gpio turned to false, so trouble definitely in project. Looks like something blocking all GPIO's at start. I'll be very appreciate if someone will help me. Minimized project attached (one output in...
nbs.UDP_Receive block works only once after xExecute triggered. So, right after "Receive.xReady = TRUE", you should set "Receive(xEnable := FALSE)" and then "Receive(xEnable := TRUE)" to get next package. Also I see in the IF statement "Receive.szSize = SIZEOF(udpData)" - maybe you should set "Receive.szSize = Receive.udiCount" or "Receive.udiCount = SIZEOF(udpData)" instead, if you checking received package size
nbs.UDP_Receive block works only once after xExecute triggered. So, right after "Receive.xReady = TRUE", you should set "Receive(xEnable := FALSE)" and then "Receive(xEnable := TRUE)" to get next package. Also I see in the IF statement "Receive.szSize = SIZEOF(udpData)" - maybe you should set "Receive.szSize = Receive.udiCount" or "Receive.udiCount = SIZEOF(udpData)" instead, if you checking received package size
sorry for bothering, everything works fine, I'am an idiot π
Hello! I'got several raspberries which act like master and slaves. Now I have an idea to detect slave devices in the network using UDP_sender on broadcast IP 255.255.255.255 with common command from master, and UDP_peer's on slaves which will generate answers with their data. But I can't do a broadcast, UDP_sender falling with error "wrong IP" (or smt like this). Hope someone will help me, or at least tell better idea.
Right after "Receive.xReady = TRUE", you should set "Receive(xEnable := FALSE)" to get next package. Also I see in the IF statement "Receive.szSize = SIZEOF(udpData)" - maybe you should set "Receive.szSize = Receive.udiCount" or "Receive.udiCount = SIZEOF(udpData)" instead, if you checking received package size
Right after "Receive.xReady = TRUE", you should set "Receive(xEnable := FALSE)" to get next package.
OMG! I did it! So: 1. You need to disable slave node and master by "NodeName.Enable := FALSE" and calling DED.Reconfigure functional block; 2. Call desired methods from IoDrvProfinetBase.ControllerConfigUtil functional block (e.g UpdateIPSettings, UpdateStationName, etc); 3. Enable back master and slave. Thats how you can change IP of profinet slave node. Also you can update slave it-self by ProfinetCommon.DCP_Set. I can't say, how much it safe enough, but it work's for me =) Good luck!
OMG! I did it! So: 1. You need to disable slave node and master by "NodeName.Enable := FALSE" and calling DED.Reconfigure functional block; 2. Call desired methods from IoDrvProfinetBase.ControllerConfigUtil functional block (e.g UpdateIPSettings, UpdateStationName, etc); 3. Enable back master and slave. Thats how you can change IP of profinet slave node. Also can update slave it-self by ProfinetCommon.DCP_Set. I can't say, how much it safe enough, but it work's for me =) Good luck!
OMG! I did it! So: 1. You need to disable slave node and master by "<inode>.Enable := FALSE" and calling DED.Reconfigure functional block; 2. Call desired methods from IoDrvProfinetBase.ControllerConfigUtil functional block (e.g UpdateIPSettings, UpdateStationName, etc); 3. Enable back master and slave. Thats how you can change IP of profinet slave node. Also can update slave it-self by ProfinetCommon.DCP_Set.</inode> I can't say, how much it safe enough, but it work's for me =) Good luck!
Hello! I got fully configured Pi as profinet-master and some profinet slave connected to it. Now I need to change IP-addresses to migrate on other subnet. I don't want to update the project, but can I do it from program code? So far, I can change IP of master using linux terminal (ifconfig), and IP with name of slave device by DCP_set functional block. Changing only the Master IP-address, all functioning fine, but when changing slave IP - topology is ruined and connection is lost.
Hello! I got fully configured Pi as profinet-master and some profinet slave connected to it. Now I need to change IP to migrate on other subnet. I don't want to update the project, but can I do it from program code? So far, I can change IP of master using linux terminal (ifconfig), and IP with name of slave device by DCP_set functional block. Changing only the Master IP-address, all functioning fine, but when changing slave IP - topology is ruined and connection is lost.
The reason can be in watchdog timer - function to detect hunged slave and restart it. Try to set bigger value, if you ain't use RT. Also, pay attention, device name of slave on master side should match with device name of slave it-self - this is necessary.
The reason can be in watchdog timer - function to detect hunged slave and restart it. Try to set bigger value, if you ain't use RT. Also, device name of slave on master side should match with device name of slave it-self - this is necessary.
The reason can be in watchdog timer - function to detect hunged slave and restart it. Try to set bigger value, if you ain't use RT.
Hello everyone! I am using CoDeSys v3.5 SP16. On the help page https://help.codesys.com/webapp/cdscommandline;product=codesys;version=3.5.13.0#switch-compare-project-compare is said that you can use CoDeSys from command line with --compare switch to compare any projects. But for some reason, instead of comparison, CoDeSys just starts as normal. Whatever I tried, move projects on root directory, rename it to simple one-character, several experiments with switch argument syntax - noting worked... If...
I cannot use that... for some reason, instead of comparison, codesys just starts as normal, thats all. Maybe there is more exceptions then described on help page
I cannot use that... for some reason, instead of comparison, codesys just starts as normal, thats all.
Hello! Is there any way to connect to any profinet i/o devices using ONLY ST-code without CoDeSys project updating? Even if I had all info from GSD how can I use it in code? So far, with help of ProfinetCommon.DCP_identify I can get some info for CommFB.CNCT but dono why it's failing with error and status code 16#DB810104. May be watchdog timer need to be set somewhere?
Hello! Is there any way to connect to any profinet i/o devices using ONLY ST-code without CoDeSys project updating? So far, with help of ProfinetCommon.DCP_identify I can get some info for CommFB.CNCT but dono why it isn't work. May be watchdog timer need to be set somewhere?
asd
Hello everyone! I have board with ARMv7 CPU running under ubuntu linux. I tried to install CODESYS Control for Linux SL but there was wrong package architecture! So I start to look correct one and found "it" on online help page: https://help.codesys.com/webapp/_lnxarm_f_help;product=codesys_control_for_linux_arm_sl;version=3.5.16.0 Yet nothing on CODESYS store... How can I get it?
ok
added conveylinx
asd
asd
Created Directory ...
added comment in f_TCP_fsm_send_data
123
123
asd