Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.

Radix IoT Website Mango 3 Documentation Website Mango 4 Documentation Website

  • Hey Guys, I'm trying to setup a simple interlock system where I have 3 solenoids and they can't all be on at once, so I attempted to use event handlers for this purpose.
    I created a virtual data source with 3 virtual data points, for this setup I've named them North, West, East.
    I then created event triggers for the Open and Closed positions.
    Then I created event handlers which would hopefully watch the points and if one was opened, it would close the other two, then actually drive the output on the end device (currently disabled for testing)
    The problem is if I open any of them they close almost immediately and then begin flapping.
    I must be setting these event handlers up wrong?

    Attachment: download link


  • My first instinct would be to read your events list with a fine tooth comb and make sure you're setting all the values as you expect, as if they cycle is sounds like there would be a cycle in the event logic (i.e. one sets to open where it should set to close).

    Also, I'm curious why you have an event on the 'open' state to set it to 'open' and a similar event for 'closed'. I haven't ever experimented with it, but it would seem to me that's running into infinite loop territory.


  • Thanks for your info.
    I think I found one of them was setting the incorrect polarity haha.

    It would be great if you could build in simple interlock type things in the GUI for event handlers to be able to do stuff but only when certain things are ok.

    eg:

    if(a=1) {
    set b=1
    } else {
    set b=2
    }

    hard to explain, but in PLC ladder logic type setups you just drag in a NC or NO data point to create an interlock.

    Cheers
    Dan


  • There are lots of ways to solve this type of problem in Mango, where the event detectors are only one. Point links are a more powerful, event driven 1:1 sort of setting, meta points can serve as logic chokepoints for an n:1 type control and scripting data sources are the most powerful, doing arbitrary n:n control. The idea is to offer some simple, light, fast options (event detectors) as well as more complicated and cpu intensive options, such as the JavaScript environment. Often systems will involve a mix of the options.


  • it's the scripting that's getting the farmer extremely confused, and he will have to call me and I'll have to sit down and work things out every time they want to change some logic.
    if it was point and click, some how built into the GUI, it would be easy to add an interlock in, like don't start pump until at least one of the three solenoids there are open.


  • @phildunlap said:

    There are lots of ways to solve this type of problem in Mango, where the event detectors are only one. Point links are a more powerful, event driven 1:1 sort of setting, meta points can serve as logic chokepoints for an n:1 type control and scripting data sources are the most powerful, doing arbitrary n:n control. The idea is to offer some simple, light, fast options (event detectors) as well as more complicated and cpu intensive options, such as the JavaScript environment. Often systems will involve a mix of the options.

    Many ways alright!

    I would like to offer my 2c, which is that as a mango initiate, these options are overwhelming and its difficult to understand the different ways to implement the desired functionality, or even why one way may be better than another!

    I agree, some kind of GUI for simple logic driven events would be killer. No idea how you'd make it though, which I guess is why there's not.