Communication with SNAP high density modules and Groov IO from opto22 is available

Starting with 6.3.34 or 7.0.9B you can communicate with SNAP high-density modules and Groov IO from opto22.  Your system will need to be reconfigured to use modbus_srvr_tcp for the high-density modules instead of snapio_srvr and new attribute files will need to be created.


  • Use analog input modules with up to 32 channels per module instead of just 4
  • Use analog output modules with up to 8 channels per module instead of 2
  • Use digital input modules with up to 32 channels per module instead of 4
  • Use digital output modules with up to 32 channels per module instead of 4

Use the product selector module from opto22’s website to see all the possibilities available for upgrading your existing snap rack IO modules below:


Opto22’s latest series of IO offers performance improvements, dense packaging, web-browser based configuration, and individually configurable channel types on some modules.  This hardware is recommended for new installations.  For more details, see the Opto22 link below.

Use the product selector module from opto22’s website to see available IO modules:

Configuration instructions:

Both SNAP and Groov brains default to stream data over modbus.  No special configuration is needed in PAC Manager or Groov Manage software in order to set this up.  You can not stream data from an IO module over snapio_srvr and modbus_srvr_tcp simultaneously, however.

Configuration steps:

  1. Upgrade your system to cyflex version 6.3.34 or later for 32-bit systems, 7.0.9B or later for 64-bit systems.
  2. Copy the attribute files from the /cyflex/cell.def directory and modify them to match the modules you are using. Example files are listed below and the headers have details on how to configure the modbus registers for your modules. Your SNAP system may end up having different registers than those referenced in the header, use the modbus calculator in PAC Manager to ensure you have the correct registers.
  3. Make the following modifications to your go script file:
    1. Modify your go script to include the following line to specify the analog input update interval (in milliseconds):
    2. Add the following line to start the server:
      modbus_srvr_tcp 20 &
    3. Modify the IP addresses to match the IP addresses of your brains. Use 8502 as the default port for Groov IO and 502 as the default port for SNAP IO.
    4. Reference the /cyflex/cell.def/go.scp template file to know where these should be located in your go script
    5. Update the lines where ai_attr, ao_attr, di_attr, and do_attr are called to reference the new attribute files you created in step 2.
  4. Modify inpt_specs to reflect the new channels you created.
  5. Ensure you are not trying to stream data from the same IO module/slot to snapio_srvr and modbus_srvr_tcp.
  6. Run a go and check for errors, and check that the channels are updating. For troubleshooting, contact SGS.