On a serial PLC network communicating with Elipse SCADA, one of the PLCs was turned off for maintenance. Therefore, the driver is displaying an error message asking if I wish to abort the driver – which would cause the communication to all PLCs to be lost. What can I do to work around this situation and keep communication with all the other PLCs?
Solution:
To do so, you can disable Abort in Error option; however, when losing communication with the driver, the tags go into timeout.
With this, you will need to apply a filter to the drivers in the OnCommError event, using the driver’s AddFilter() function, that allows you to disable the read and/or write in the PLC or block tags with the same parameters specified in the filter.
Example of script:
// Filters all N1/B1 tags of the last error
DIM strFilter
strFilter = Str(ModBus.GetErrorInfo(1))
Driver1.RemoveFilter(strFilter) // Avoids adding the same filter more than once, removing the previous filter to the same PLC
Driver1.AddFilter(strFilter)