But then it wouldn't be the MODBUS protocol it would be something else. Remember anyway that in MODBUS there can be ANY number of slaves - what would you do? have an interrupt line from the master to each and every slave?
I have made a decision about using MACH modbus, but I will address your comments, since you were good enough to respond.
The master could certainly generate an error indicating which slave did not respond, but as you point out, it is what it is, and it is modbus. Unfortunately, saying anything that is percieved as negative against MACH around here is like you're insulting somebody's sister or something. I'm not trying to change modbus, and I am not bashing MACH. Just trying to find out what is and is not available in MACHs implementation, which for example is not the entire Modbus set. That is important stuff to know if one is going to use MACH modbus, you would agree? Documentation is next to none and what does exist is often contradictory (TCP variable access, for example). So again, it is what it is, and you need to try to get info from a support forum.
In any case, one 'interrupt' line would be enough. One E-stop line is enough, yes?
Mach has one E-stop monitor available to the brain, which I rout to a physical pin. From that pin, I can do with it as I need, with as many devices as I need.
Also if your concern is that the master may "die" you'd have to monitor that with a third party (watchdog) anyway - something that's died can't tell you it's died.
I don't think I said the master would die. I said if anything goes wrong with the com. as you noted later in your post. Something that dies can definitely tell you it has died. That is called failsafe and is the purpose of the default charge pump, is it not?
I've looked at your other thread and if I've understood you correctly you're concerned what happens if the master "dies" for some reason then just have a brain (your watchdog) monitor a master/slave heartbeat reg/flag. That will tell you not so much whether the master has died or a slave has died - just that they're no longer playing catch for whatever reason.
It is the entire com link, not just the master as noted earlier, but the master seems like the logical place to monitor from. Most of the time it is my software causing the problem, so what I want to know is if it has responded to the master. Hard to know that from the slave end.
As I said in those other posts, I am already timing the loops so I can see if the 'game of catch' ends, but only after a delay and it would be a guessing game in any case because the loop times are not consistent. I am not sure why that is yet. Could be a bunch of different causes. I would need to wait until after the longest historical loop time passed before having confidence that there is an actual problem. The master would be the best place to snoop on things because it knows quickly if there has been no response.
"have a brain (your watchdog) monitor a master/slave heartbeat reg/flag."
Is there such a thing as a heartbeat flag? That would do the trick. This is what I asked at the beginning and have gotten no answer to. Where is the heartbeat flag. Modbus times out, but nobody knows if that event is available in MACH, so I have assumed it is not.
Ian
[/quote]