ISISComputingGroup / IBEX

Top level repository for IBEX stories
5 stars 2 forks source link

ENGIN-X / IMAT: Instron (Stress Rig): IOC - Channel Commands #2112

Closed KathrynBaker closed 7 years ago

KathrynBaker commented 7 years ago

As an IBEX user I want to be able to control the Instron Stress Rig natively in EPICS in order to leverage the best use of the system.

Acceptance Criteria There are additions to the protocol and database files used by the IOC created in Ticket #2111 which covers the interactions for channels

General Notes This ticket is of medium priority in relation to the Instron, ideally it would be in place for the cycle starting May 2nd 2017, however, an incomplete lvDCOM solution as specified in Ticket #2110 means that this can be delayed if required. This ticket should be done after Ticket #2111.

The rig in use consists of the channels, Position (POS) on Channel 1, Stress (STRESS) on Channel 2, ans Strain (STRAIN) on Channel 3.

There is a lot of information to support the stress rig work in a folder called Instron Stress Rig in the ICP discussions area of our local SharePoint. Items below are highlighted as being relevant to this ticket directly, some of the other information may be required from the other documents.

The PV names may not have included a $(P) or the correct number and position of :, and may not be the final names used, as clarity here was chosen over following the guidelines. Please use appropriate names, and if different from those in the documents - update the documents as you go

Specific Notes PVs.xslx contains the list of PVs, and an indication of their interactions, the only entries to undertake as part of this ticket are those in the Channel sections - Generic Channel, Position Channel, Stress Channel and Strain Channel.

Note that there are macros and their values to be used listed in the spreadsheet.

The extra information (e.g. the equations TO and FROM) for a channel also needs to be loaded via the st.cmd at this point manually rather than have the IOC automate based on a channel type that is fed in.

Some clarity, and more information can be found in Working through the block diagram.docx.

The Command reference.docx file has the subset of commands that are used by the existing LabVIEW driver, Stress Rig - GPIB.pdf has the full list of commands.

kjwoodsISIS commented 7 years ago

Need to do #2111 first.

AdrianPotter commented 7 years ago
Tom-Willemsen commented 7 years ago

A couple of integration tasks still need to be done.

AdrianPotter commented 7 years ago

Finish review once missing functionality has been added. Note that AXES:ABS:TRUE and AXES:ABS:FALSE as detailed on the PVs spreadsheet has been implemented on branch Ticket2113.... Reasonably this could be simplified to a single AXES:ABS record. Suggest doing it here and then I'll worry about the merge in #2113

AdrianPotter commented 7 years ago

Also, Tom is on holiday for the next two weeks so please could someone else pick up the rework

AdrianPotter commented 7 years ago

I'll group rework changes here:

Jul 10, 2017 3:18:26 PM org.epics.pvmanager.loc.LocalDataSource initialize
WARNING: Using zero initialization for channel _LOCAL:INSTRON_01:CHANNEL1
Jul 10, 2017 3:18:26 PM org.epics.pvmanager.loc.LocalDataSource initialize
WARNING: Using zero initialization for channel _LOCAL:INSTRON_01:CHANNEL2
AdrianPotter commented 7 years ago
Running tests...
----------------------------------------------------------------------
..SSSSSSSS.FSSS.SSSS..SS.........S....
======================================================================
ERROR [15.036s]: test_WHEN_control_channel_is_requested_THEN_an_allowed_value_is_returned (tests.instron_stress_rig.Instron_stress_rigTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Instrument\Apps\EPICS\support\IocTestFramework\master\tests\instron_s
tress_rig.py", line 135, in test_WHEN_control_channel_is_requested_THEN_an_allowed_value_is_returned
    self.ca.assert_that_pv_is_one_of("INSTRON_01:CHANNEL", ["Stress", "Strain", "Position"])
  File "C:\Instrument\Apps\EPICS\support\IocTestFramework\master\utils\channel_access.py", line 105, in assert_that_pv_is_one_of
    raise AssertionError(error_message)
AssertionError: Expected one of ['Stress', 'Strain', 'Position']: actual Position - disabled