Skip to content
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

EUROTHERM: test DLS MODBUS driver [Timebox: 0.5 day] #6846

Closed
1 task
davidkeymer opened this issue Oct 22, 2021 · 4 comments
Closed
1 task

EUROTHERM: test DLS MODBUS driver [Timebox: 0.5 day] #6846

davidkeymer opened this issue Oct 22, 2021 · 4 comments
Assignees
Labels
3 no_release_notes Tickets that do not need release notes, use sparingly!

Comments

@davidkeymer
Copy link
Contributor

As a developer, I would like to find out whether or not the MODBUS Eurotherm driver written by the Diamond Light Source (DLS) is suitable to be used in the IBEX system. This would potentially save a lot of time and effort, as well as provide an opportunity to use shared code and promote collaboration.

Acceptance Criteria

  • A decision is made whether to use the DLS driver, or parts thereof, or write one from scratch

Extra Information

Other tickets relating to this work:

  • Original ticket documenting the requirements.
  • Needle valve using MODBUS protocol which is required for WISH migration. Planned to be used throughout all ISIS instruments eventually.

DLS driver here

@DominicOram DominicOram added the 3 label Oct 28, 2021
@github-actions github-actions bot added the ready label Oct 28, 2021
@KathrynBaker KathrynBaker added this to the SPRINT_2021_10_28 milestone Oct 28, 2021
@RaiBishal RaiBishal added bucket proposals that didn't make into the sprint and removed ready labels Nov 18, 2021
@RaiBishal RaiBishal removed this from the SPRINT_2021_10_28 milestone Nov 22, 2021
@KathrynBaker KathrynBaker added proposal and removed bucket proposals that didn't make into the sprint labels Jan 6, 2022
@KathrynBaker KathrynBaker changed the title EUROTHERM: test DLS MODBUS driver EUROTHERM: test DLS MODBUS driver [Timebox: 0.5 day] Jan 27, 2022
@FreddieAkeroyd
Copy link
Member

Diamond driver is now part of our build at support/eurothermModbus/master

@KathrynBaker KathrynBaker removed the bucket proposals that didn't make into the sprint label May 19, 2022
@github-actions github-actions bot added the ready label May 19, 2022
@KathrynBaker KathrynBaker added this to the Sprint_2022_05_19 milestone May 19, 2022
@Tom-Willemsen Tom-Willemsen self-assigned this Jul 5, 2022
@github-actions github-actions bot added in progress and removed ready labels Jul 5, 2022
@Tom-Willemsen
Copy link
Contributor

Direct feature comparison of our existing EI-BISYNCH driver and the diamond modbus driver:

Feature ISIS driver Diamond modbus driver
Temperature readback Yes Yes ($(device):LOOP1:PV:RBV)
Temperature setpoint Yes Yes ($(device):LOOP1:SP)
Temperature setpoint readback Yes Yes ($(device):LOOP1:SP)
Changeable temperature units Yes No (hardcoded to C)
Output readback Yes Yes ($(device):LOOP1:O:RBV)
Output setpoint No Yes ($(device):LOOP1:O)
Max output set/read Yes Yes ($(device):LOOP1:OUTPHI, $(device):LOOP1:OUTPHI:RBV)
Min output set/read No Yes ($(device):LOOP1:OUTPLO, $(device):LOOP1:OUTPLO:RBV)
Ramp rate set/read Yes Yes ($(device):LOOP1:RR, $(device):LOOP1:RR:RBV)
Ramp on/off Yes No
Autotune set/read Yes Yes ($(device):LOOP1:AUTOTUNE, $(device):LOOP1:AUTOTUNE:RBV)
Auto/manual set/read No Yes ($(device):LOOP1:MAN, $(device):LOOP1:MAN:RBV)
PID set/read Yes Yes
PID & max output lookup Yes No
Temperature calibration files Yes No
Run eurotherm programs No Yes (see eurothermProg.template)
Loops supported 10 2
Disable records Yes Yes, and automatically set when device goes into error.
Sim records Yes No
interest/archive records Yes No

I was unable to get our office eurotherm to respond on modbus using diamond's IOC. More investigation may be required on this, but I've reached the end of the timebox. I've pushed the eurotherm_modbus branch to EPICS-ioc which contains the test IOC I used. Note: configuration passwords for eurotherm (to switch between comms modes) are now stored in keeper.

The stages you need to use to change between comms setups on the office eurotherm are:

  • Power cycle the unit while holding down the up & down arrow keys simultaneously
  • Once the unit comes up asking for a passcode, enter the configuration password (from keeper)
  • Navigate to the "comms" menu section, scroll down to "protocol" and select EI-BISYNCH or MODBUS as appropriate
  • Check the baud rate in the comms menu as this sometimes changes as you change between comms modes
  • Navigate back to the config section of the menu, and select "GOTO" -> "Level 3".
    • Note that the eurotherm WILL NOT communicate while it is in the config mode
  • The eurotherm should now communicate on the selected protocol.

I was unable to get any bytes back from the device when using the modbus protocol.

Next steps:

  • Understand why our office eurotherm doesn't communicate on MODBUS at all using diamond's setup
  • If we decide to proceed with using the diamond driver, write tickets to reimplement the missing functionality described in the table above
    • We will also need to decide whether to rename the PVs to existing ISIS conventions, or keep the diamond PVs which would require scripts/blocks etc to be updated

@KathrynBaker
Copy link
Member

Given the above, it is fair to say that the DLS driver is not working for us, there is also enough functionality missing that at best we will be able to use parts of that driver, and it will be worth migrating those into our Eurotherm driver.

@Tom-Willemsen Tom-Willemsen added the no_release_notes Tickets that do not need release notes, use sparingly! label Jul 7, 2022
@FreddieAkeroyd
Copy link
Member

After switching to 8 bit RTU mode and updating our epics modbus module from 2.6 to 2.10.1 (required for absolute modbus addressing that the diamond driver uses) this now all seems to work on the office eurotherm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3 no_release_notes Tickets that do not need release notes, use sparingly!
Projects
None yet
Development

No branches or pull requests

6 participants