RSI 8.0.7have a customer machine that is behaving strangely. I do not have a theory about what’s wrong. Let me describe what I observe.
If my application starts RMP.RTA, then tries to start the network, it fails.
Timed out waiting for network to start. (Error 1000000022) (RSI::RapidCode::Impl::MotionController::NetworkStart) (Object 0) (File …..\source\motioncontroller.cpp) (Line 2992) (Version 8.0.7 for 04.04.02.RMP)
The motion controller logs have this to say:
Starting EtherCAT network…
[StartAttemptBegin] Network State: (262): SHUTDOWN
RMP motion controller network log messages:
Network Log Message: /!\ 00:03:31.457 EtherCAT EthCatDr.cpp:3032 Last cyclic frame was 1093 us
Network Log Message: (i) 00:28:22.544 EtherCAT RMPNetworkStarter.cpp:161 Main Network Loop finished
Network Log Message: (i) 00:28:22.544 EtherCAT RMPNetworkFirmware.cpp:1465 Node #(0) : AL Status (0x0), Code (0x0)
Network Log Message: (i) 00:28:22.544 EtherCAT RMPNetworkFirmware.cpp:1465 Node #(1) : AL Status (0x0), Code (0x0)
Network Log Message: (i) 00:28:22.544 EtherCAT RMPNetworkFirmware.cpp:1465 Node #(2) : AL Status (0x0), Code (0x0)
Network Log Message: (i) 00:28:22.544 EtherCAT RMPNetworkFirmware.cpp:1465 Node #(3) : AL Status (0x0), Code (0x0)
Network Log Message: (i) 00:28:23.794 EtherCAT RMPNetworkFirmware.cpp:599 Exiting ServiceChannel Thread
Network Log Message: (i) 00:28:23.794 EtherCAT EthCatDr.cpp:981 MKEtherCATDriver::Stopping
Network Log Message: (X) 00:28:24.004 EtherCAT EthCatDr.cpp:679 EtherCAT communication broken during system operation
Network Log Message: (X) 00:28:24.005 Controller YMsgDisplayClient.cpp:58 UserInfo : Error : E30
Network Log Message: /!\ 00:28:24.005 EtherCAT EthCatDr.cpp:745 State changed from Running to StoppingOnError
Network Log Message: (i) 00:28:24.317 EtherCAT EthCatDr.cpp:981 MKEtherCATDriver::Stopping
Network Log Message: (i) 00:28:25.201 EtherCAT EthCatDr.cpp:1119 MKEtherCATDriver::Clear
Network Log Message: /!\ 00:28:25.661 EtherCAT EthCatDr.cpp:745 State changed from StoppingOnError to Error
Network Log Message: (X) 00:28:28.326 EtherCAT EthCatDr.cpp:1163 Timeout waiting for motion engines to stop
Network Log Message: /!\ 00:28:29.576 EtherCAT EthCatDr.cpp:3865 → Close driver
Network State: (262): SHUTDOWN
I don’t know what to make of the error messages. “EtherCAT communication broken during system operation” and “UserInfo : Error : E30”
Curiously, if I start RapidSetup (while my application is still running), it reports the network state as “OPERATIONAL” when this happens. The drives show up as network nodes, but do not have any axis objects. Ordinarily, my application would attempt to re-start the network, but it checks the network state before attempting that, and I suspect that the API is also reporting that the network is operational.
If RapidSetup starts the RTA, then, when my application starts the network, it gets the timeout exception and no drive nodes have axes. If I close my application (which calls MotionController::Delete()) and restart it, the network reports that it is operational and all the nodes now have axes. (In fact, if I start RapidSetup after shutting down my application, it shows all the drive nodes as having axes.)
With my application not running, if I then shutdown the network in RapidSetup, then start my application, starting the network times out, but the nodes now have axes (and the network state reports operational).
Huh?
Can you help me make sense of the error messages logged during the timeout? I didn’t see any unusual events in the Windows event log (including the INtime log). We have a number of other customers running this version of the software, and I don’t see this problem on those machines. In fact, I didn’t see it on this machine until recently.
I’m not inclined to suspect the wiring/network, just because if I do everything in RapidSetup, things seem to work well. What meaningful differences are there between what I’m doing with the C++ library and RapidSetup? (I’m calling MotionController::CreateFromSoftware(char*)
to create the host object, and MotionController::Delete()
when I shut down.)
I checked envvars. They’re all pointing to the correct RSI directory.
Any ideas as to where to look for problems?