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

  • Good morning,
    I'm using mango 2.8.8 on two slave S1 and S2 and also on the master M,
    actually S1 sends data to M using a Mango Persistent TCP publisher, and the same for S2. On M I've a Mango Persistent TCP DataSource.

    The datapoint on S1 and on S2 are coming from Modbus datasources, so the question:
    Is it better to use a Modbus publisher? What's the difference with Persistent TCP publisher?

    And also, I know version 2.8.8 doesn't support "Allow data source to set values back" , to support this feature it is necessary to pass to latest Mango or I can achieve it overriding some class in some jar with latest version?

    Otherwise will be necessary to set a "Mango Persistent TCP publisher" on M and a "Mango Persistent TCP Datasource" on S1 and on S2.

    Thanks,
    Antonio


  • Hi @etantonio

    The advantage of the mango Persistent TCP publisher/data source pair is that if the link between slave and master goes down for some time. The data points will be synched after the link comes back up again. If the slave is still able to poll its Modbus data sources and log to the slave's database.

    If this was a Modbus publisher/data source pair you would not have this feature. If the link goes down the points will show unreliable on the master and the missing data will not be synched after the link comes back. It will behave as a normal Modbus master/slave pair.


  • ok,
    so i think that a modbus publisher could be a good solution for commands from master M to slave S1 and slave S2 because I'm interested just to latest command, not the history.

    Instead for a compact report of S1 and S2 activity on master M, I will use a tcp publisher to support sync.


  • Hi etantonio,

    And also, I know version 2.8.8 doesn't support "Allow data source to set values back" , to support this feature it is necessary to pass to latest Mango or I can achieve it overriding some class in some jar with latest version?

    Not a chance, too much changed!

    so i think that a modbus publisher could be a good solution for commands from master M to slave S1 and slave S2 because I'm interested just to latest command, not the history.

    While the 2.8.x version of the persistent publisher doesn't offer encryption, it does at least have a password that must be shared. The Modbus publisher has no security in front of it, so it would be very unwise to expose its port to the internet. If it's all on a local network it's still insecure but not as bad.


  • Thanks,
    I've the following trouble concerning publisher configuration:

    I want that the publisher sends all the data every 10 seconds, also unchanged data

    0_1555517906726_f2035f2f-6339-411b-b521-50cd22115a72-immagine.png

    but how it relates to this other configuration?

    0_1555518002598_029556d0-5c8e-42ac-ba67-0f0b3a3895c2-immagine.png

    it seems to me that if I choose Send Regular snapshot, then it should not be allowed to select "Transmit real time data".

    Thanks,
    Antronio


  • I never use the snapshot on the persistent publisher, personally, because it can mess with the sync if the receiver saves realtime data. Your intuition is correct that it may not do the ideal thing to also publish realtime data! You could disable the saving of the realtime data on the receiver and then have a more frequent synchronization. Then you could have the settings you have shown without running into problems.

    For any publisher, the snapshot is simply taking the current value for each point and publishing it the exact same way it normally is, which can lead to more data logged on the receiver (which really doesn't make sense to do) depending on the whole setup.


  • in my application M is the master that receive data from slave S1 and S2 using Mango Persistent TCP publisher

    M, S1 and S2 use Mango 2.8.8
    S1 control STM32_1 using Modbus TCP
    S2 control STM32_2 using Modbus TCP

    I've created on M a datasource with only one datapoint to start/stop STM32_1,
    so this board is exposed to a datasource on S1 and to a datasource on M,
    Is this a problem?

    This is to avoid using of a reverse publisher from M to S1 and S2


  • The exposure is a question of networks and ports, and there is no authentication in Modbus (unless there is some device specific thing like writing a password to some register(s)). Therefore, there is insufficient information to assess the exposure and the problem, which isn't really a Mango question anyway.

    Were you on the current version, or simply used a second publisher as you suggest, the issue wouldn't exist. So... why not do that?

    What are you actually trying to do?


  • on S1 I've the datapoint STM32_1_OnOff used to start/stop the algorithm on STM32_1, a publisher expose it to M,
    the same for S2 where I've the datapoint STM32_2_OnOff,
    so M can see the state of STM32_1 and of STM32_2
    but to start/stop the algorithm on STM32_1 from M I have 2 way:

    1. Directly from M to STM32_1 using a Modbus datasource, this solution is direct but no security (M is on the cloud ) and some interference using 2 master (M and S1) for the same slave (STM32_1)

    2. Pass through S1 with a publisher and use two different datapoint STM32_1_OnOff and STM32_1_OnOffFromMaster, this solution is undirect but is secure and just one master

    I'll try to complete implementation of solution 2) as you suggest.
    Thanks