Industrial Communications

cancel
Showing results for 
Search instead for 
Did you mean: 

Problems with dynamic slave changes in newer Linux RT versions

Hello All,

 

as mentioned in https://forums.ni.com/t5/Industrial-Communications/Gracefully-handling-EtherCAT-slave-connection-and... we are using the 'Refresh Modules' programmatic technique to allow the customer to add some specific slaves to a test setup on several cRIOs (904X, 903X) and record the data from these. This is running under NI CompactRIO 17.0.

Recently, we are upgrading the test systems to 20.5 (using the 'System Image' install method), and we found that this no longer works! If we now add new Slave devices, the system will not pick them up and error out instead:

Error -2147138412 occurred at Read Variable in DynamicModuleTest.vi

Possible reason(s):

NI-Industrial Communications for EtherCAT:  More slave devices are responding to EtherCAT communications than the master expects. If you add new slave devices to the EtherCAT network after the most recent project deployment, add these new devices to your project and redeploy the master.

 

Now here comes the strange thing: if we update the cRIOs using the 'old' installation method to 20.5, this method works fine! But, if we do a fresh install of 20.5 using the old install method it also fails.

 

Summary:

  1. Installation of 'System Image' 20.5 - slaves cannot be added dynamically
  2. Installation of 'NI CompactRIO' 20.5 - slaves cannot be added dynamically
  3. Update from 'NI CompactRIO' 17.0 to 20.5 - slaves can be added dynamically

We've checked the running processes of case 1 compared to case 3 and did not find any major discrepancies (except from executables being in different locations in the file system).

 

I've attached a simple test program that uses 'Refresh Modules' and tries to read the variables from the detected slaves.

---
Jörg Heßdörfer
Certified LabVIEW Architect, S.E.A. Datentechnik GmbH
0 Kudos
Message 1 of 1
(1,203 Views)