Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Tip
iconfalse
titleTLDR

The function CtrlSys.pv_checker() in the meclas package is a basic tool for helping narrow down potential error sources quickly.

Use CtrlSys.pv_checker("YOUR:PV:NAME:HERE") to help determine if the problem is with the PV/IOC, the host, or something else.

...

Tip
titleSide note: basic understanding of PVs, IOCs, and hosts

Let's use the example pictured above to illustrate how our controls system communicates with devices like the MBC:

  1. The MBC mentioned above is a bias control box for the pulse shaper of the front end of the LPL system in MEC.
  2. The MBC is made up of several different sub-components with different functions – for example, a voltage operating mode controller, a voltage operating mode readback indicator, a voltage controller, a voltage readback indicator, a reset button, a fault indicator, and so on.
  3. Lots of different laser staff or instrument scientists might want to control or read out information from these sub-components at any given time, but these sometimes asynchronous/sometimes simultaneous/sometimes random requests can be overwhelming and cause problems.

  4. How can the MBC avoid issues with multiple people trying to talk to it all at the same time?

  5. To manage these potential communication issues, an "Input / Output Controller" (or IOC) gets created for the MBC.
  6. The IOC assigns a "Process Variable" (or PV) to each sub-component of the MBC.
  7. All communication in or out of an MBC sub-component goes through the PV.
  8. The communication of all the PVs is coordinated by the IOC in a way that doesn't overwhelm the MBC.
  9. The IOC runs on a nearby computer (i.e. the computer acts as "host" or "server" for the IOC; this computer may be responsible for running one or possibly multiple IOCs at once). 


In order to help solidify this picture, let's consider an analogy with a rock band.

  1. Imagine a rock band that's super popular.
    1. (The MBC is like the rock band – they're both super popular!)
  2. The rock band is made up of several different group members with different functions – for example, a lead guitarist, a lead singer, a bassist, a drummer, and so on.
    1. (The MBC's sub-components are like the different group members – they all have their own functions!)
  3. Lots of different superfans or concert venues might want to communicate with the band members at any given time, but these sometimes asynchronous/sometimes simultaneous/sometimes random requests can be overwhelming and cause problems.
    1. (The laser staff or instrument scientists are like the superfans or concert venues – they all can be too much to handle without some coordination!)
  4. How can the rock band avoid issues with multiple people trying to talk to it all at the same time?

  5. To manage these potential communication issues, a talent agency gets hired for the rock band.
    1. (The IOC is like the talent agency – they both help make communication requests manageable!)
  6. The talent agency assigns an agent to each group member of the rock band.
    1. (The PV is like the agent – they are uniquely assigned to taking care of communication with a single entity!)
  7. All communication with a group member goes through their agent.
    1. (The PV is like the agent – all communication in or out is managed through the single official channel!)
  8. The communication of all the agents is coordinated by the talent agency in a way that doesn't overwhelm the rock band.
    1. (The IOC is like the talent agency – communications can be metered such that all the requests can be handled appropriately!)
  9. The talent agency rents out space in a nearby building (i.e. the building acts as landlord for the talent agency; this building may rent out space to one or possibly multiple talent agencies at once).
    1. (The nearby computer host/server is like the building where the talent agency rents space – there may be one or several entities hosted in the same location)

Hope that helps!!

Initial troubleshooting

...

The function CtrlSys.pv_checker() in the meclas package is a basic tool for helping narrow down potential error sources quickly. This function utilizes the ECS group's engineering_tools package (see here for more info) to quickly troubleshoot a few of the likely error sources listed above. (Note that this function executes automatically as part of the LPL YFE start-up procedure, so you may just be able to scroll up in your terminal and look for the issue there.)

...