How to increase internal operation speed?



  • Hi Unipi-Team,

    we intend to use the Neuron unit to validate the functionality of a product during QS stage after manufacturing.
    Can you tell if it is possible to increase the internal processing speed?
    At the moment a simple logic operation on two DI's can take up to 500ms to trigger a DO or an RO.

    Best Regards,
    Kai


  • administrators

    Hello @kai,
    it depends on many factors. Can you please tell us a bit more about your project? Which software do you use?

    Thanks,
    Martin



  • Hi Martin,

    the aim is to check electrical wiring and functionality of control boards for industrial environment during quality stage.
    We intend to simulate external devices via UniPi Neuron modules. Some of these devices need to react on input signals in around 200 ms. That's why I'm asking about how to increase the operation speed in processing.

    Best Regards,
    Kai


  • administrators

    Hi @kai, that sounds really interesting!

    The UniPi units will be able to fulfill that. I would suggest to look into our Evok (https://github.com/UniPiTechnology/evok), which could be a better fit for your needs. I think you would like to get more information from the measuring process, maybe to store it to some database, do some reporting... Evok is definitely more flexible then Mervis.

    Martin


  • administrators

    Hi @Kai!

    I would like to add that you can increase the 'speed' of Mervis by removing any "counter" variables that you don't need to use. It's an unfortunate feature of the IDE that there is an enforced 10ms timeout between each ModBus request, and every counter in the current release version of Mervis creates its own request. We have changed this in an upcoming major update to the IDE, but unfortunately I cannot give you a firm date for when it will be released. The program logic in Mervis is however independent of the communication thread and can run at orders of magnitude higher speed.

    The underlying system is easily capable of operating with fairly complex logic (even on localhost via Evok, and Evok is written in Python, which considerably limits its speed) at sub-millisecond polling rates; the internal SPI communication bus itself allows for around 20 000 mid-size (~30 bytes) ModBus messages per second (the actual communication speed is 12MHz, but due to overhead and delays between messages the ModBus throughput is somewhat lower). This is why you may find lower-level access more suitable for your purposes than Mervis, which runs as a relatively slow interpreted virtual machine with standard-specified communication rates, and is primarily intended for lower-speed automation.