I/O for MultiAxis Drives

I’m now working on a 3-axis ΣX (Sigma 10) drive.

I have this (abbreviated) element info in the Product.

<Product Code="0x02200903">
  <ProductName>Yaskawa SGDXT</ProductName>
  <ShortName>Yaskawa Servo</ShortName>
  <ItemSubType>Drive</ItemSubType>
  <AxisCount>3</AxisCount>

  <StatusWord>1st Transmit PDO mapping - Ch.A.Status word</StatusWord>
  ...

  <AdditionalAxes>
    <Axis Index="1">
      <StatusWord>1st Transmit PDO mapping - Ch.B.Status word</StatusWord>
      ...
    </Axis>

    <Axis Index="2">
      <StatusWord>1st Transmit PDO mapping - Ch.C.Status word</StatusWord>
      ...
    </Axis>
  </AdditionalAxes>

  <PDOs>
  ...
  </PDOs>

  <IO>
    <DigitalInputItems>
      <DigitalInput SigBits="0xFFFF0000" Size="32" Home="2" PosLimit="1" NegLimit="0">1st Transmit PDO mapping - Ch.A.Digital inputs</DigitalInput>
    </DigitalInputItems>
    <DigitalOutputItems>
      <DigitalOutput SigBits="0x003E0000" Size="32">1st Receive PDO mapping - Ch.A.Physical outputs</DigitalOutput>
    </DigitalOutputItems>
  </IO>
</Product>

According to the documentation, the drive only has 16 inputs and 5 outputs. They do not really “correspond” to any one of the axes. Each axis has separate digital inputs (0x60fd, 0x68fd, and 0x70fd) and physical outputs (0x60fe, 0x68fe, 0x70fe) objects, although I suspect they internally point to the same things (I’m not even sure of that for outputs).

Anecdotally, it seems as though if I don’t include an IO element in each of the Axis containers, RapidSetup show me 32 inputs and 32 outputs for the node. If I add (nearly–they differ as to which PDO they point to) duplicate IO elements in each of the Axis containers, then RapidSetup shows me only the I/O points corresponding to on bits in the SigBits attributes.

I haven’t tried all permutations of configurations. However, could you offer me some guidance as to how I should describe the NodeInfo metadata for these multi-axis drives so that only the actual I/O shows up in RMP?

Hi @todd_mm,

Its important that each axis have its own IO block with a PDO entry that contains any dedicated limits such as PositiveLimit, NegativeLimit, and Home. You can use 0 for Significant digits to avoid adding any IO you don’t want associated with the node. It should still work for the dedicated even if you can’t see an IO node.

IO is identified in 3 ways.

  • <IO> blocks where you specify the Type and significant digits for Digitals. Feel free to use the same PDO entry for each node with different Significant digits if needed for associating specific IO with each axis.
  • We assume everything that is 1 bit wide to be a Digital Input or Digital Output. You can prevent this auto detection by adding a <Ignore> block to <Settings> in NodeInfo.xml (and CustomNodeInfo.xml in version 10.7.0 and later).
  • You can specify Analog Inputs and Outputs by Adding them to the <Settings> block. There are examples already present that you can model off of. You specify the Size and the String identifier for detection. The Has tag is useful if you need 2 different strings to identify the correct item without false positives created by a single string.
1 Like