-
Notifications
You must be signed in to change notification settings - Fork 2
IRIS : Mclennan PM600 ioc needs updating. #2202
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
@AdrianPotter knows most about this I will arrange a meeting. |
These are, in effect, additional requirements that were not made explicit at the time we created the original McLennan IOC. They might well apply to other devices too. In which case, we need to
In other words, we should always try to state requirements explicitly. |
There are generally two sorts of devices, those that chatter to the computer regardless of whether you talk to them, for those an IOC should treat this chatter as a heartbeat (i.e. timeout and report a comms. error if it doesn’t receive what it should within a time). We’ve generally not preferred these sort of comms. if we have a choice because they can be a bit awkward to program and are by definition asynchronous with the code talking to them (unfortunately, hardware people often quite like these). Alternatively, there are devices which only speak when they are spoken to. These must be polled because as @GDH-ISIS points out, this is the only way we will know they still are working. In fact, they must really be polled so as to return at least one value, devices which accept silent commands need to checked for data coming back (one wire may not be connected). The rate of polling for data can then be set lower than this (or on demand) if values are not needed very often. As far as I can think, this will apply to any device connected to any simple serial "bus" RS232, Ethernet, MODBUS etc. There is a point to be made that between two bits of code on a local system, polling is generally a poor idea (software should use events/interrupts). When talking to real hardware without its own interrupt lines, it is almost essential. The network load of polling is generally very low for real RS232 speeds (the CPU load of over-polling might be higher though). On the Ethernet, saturation of an Ethernet link is possible, but as long as the device is fairly dumb and one waits for a reply, the chances of a very tight loop are quite low (I would always put in a delay though). |
I think the above information needs to be incorporated into Creating an IOC in the IBEX Developer's Manual. |
Good idea, Its there now (edited up a bit) if anyone wants to move change edit/delete feel free it's |
Also make sure that waitfor_move("BLOCKNAME") works. Currently gives:
This works with galils |
Make sure existing behaviour (e.g. homing via sequencer) and reset on move are preserved |
Consider doing #2897 as art of this |
Put scan on status update field (see @FreddieAkeroyd ) |
I believe that the Mclennan IOC does not poll the device at all times - I have just confirmed this on IRIS, and Jon Bones had some issues this morning. It would be very helpful if we could change this so that the position, limit switches and home switch are reported at all times. This helps greatly with diagnostics and feedback to the user. It may have been addressed from the version on IRIS, but if we could confirm it, it would be appreciated.
The text was updated successfully, but these errors were encountered: