当前位置:网站首页>Epics record reference 2 -- epics process database concept
Epics record reference 2 -- epics process database concept
2022-06-24 23:03:00 【yuyuyuliang00】
EPICS Process database
One is based on EPICS The control system consists of one or more I / O controllers ,IOCs. Every IOC Mount one or more databases . A database is a collection of various types of records .
A record is an object , Yes :
- A unique name
- The act of having its type defined
- Controllable characteristics ( Field )
- Optional associated hardware I/O( Device support )
- Link to other records
There are several different types of records available . In addition to the EPICS base The types of records included in the software package , It is possible to create your own record types to perform certain tasks ( Although not recommended , Unless you absolutely need ).
Each record consists of many fields . Fields can have different functions , They are generally used to configure how this record operates , Or how to store data items .
The following is a brief description of the most common record types :
Analog inputs and outputs (AI and AO): Records can store an analog value , And it is generally used for things like setpoints , temperature , pressure , Flow rate, etc . These records perform many things like data conversion , Alert processing , Filtering, etc .
Binary inputs and outputs (BI and BO): Records are generally used to add commands and status from devices . As the name indicates , They store images On/Off, Open/Closed And so on .
calc and calcout: Records can access other records and perform calculations based on their values .( for example : The efficiency of a motor is calculated as a function of current and voltage input and output and converted into a percentage for operation reading ).
Database function description
This chapter includes common functions found in all database records . The topics covered are I/O scanning ,I/O Addressing instructions , Data conversion , alert , Data monitoring and continuous control :
- Scan description Describe the various conditions , Record under which conditions .
- Address description It explains the source of input and the purpose of output .
- Conversion instructions Contains data conversion from the sensor interface to engineering units .
- Alarm description Show many alert detection mechanisms available in the database .
- Monitoring instructions This mechanism is explained in detail , It informs the operator that the database value has changed .
- Control description The features that can be used to implement continuous control in a database are explained .
In order to understand how the database is connected , These concepts are necessary .
By manually creating a database "myDatabase.db" Text files or use visualization tools (VDCT, CapFast), Be able to create EPICS database . One from Cosylab Of java Program visualization data configuration tool (VDCT) Is a run in Linux,Windows and Sun For database creation / Editing tools . The instructions in this document are in VDCT Created .
Scan description
The scan determines when a record is run . When a record performs any operation related to its data , It was run . for example , When an output record is run , It gets the value to output , Convert this value , And then write that value to the specified position . Each record must specify a scanning method , The scan method determines when the record will run . There are three scanning methods for database records :
1、 cycle
2、 event
3、 passive
cycle The scan occurs at a set interval .
event Scanning encountered I/O Occurs when an interrupt or user-defined event occurs .
passive Scan when a record linked to this passive record is scanned , Or when a value is written to a passive record through a database access routine .
For cycle or event scanning , Users can also use PHASE The mechanism controls the order in which a recordset is processed . stay PHAS The values in the fields define the relative order in which records are processed in a scan cycle :
- First deal with PHAS=0 The record of
- Then proceed in sequence PHAS=0, PHAS=1 Etc .
For event scanning , Users can control the priority at which a record will run .PRIO The fields are soft events and I/O Interrupt selection Low/Medium/High priority .
Besides scanning and phase Mechanism , There are also data links and forwarding processing links that can be used to cause other records to run .
Periodic scanning
The periodic scan task runs as close to the specified frequency as possible . When each cycle task starts , It calls gettime routine , Then run all the records in this cycle . After this run ,gettime Is called again and the thread sleeps the difference between the scan cycle and the time it takes to process these records . for example , If it works 100 Milliseconds to process all "1 second " Record of scanning cycle , At the end 900 millisecond , This 1 The second scan cycle will start again . The following cycles for scanning database records are available by default , But you can configure EPICS Identify more scan cycles :
- 10 second
- 5 second
- 2 second
- 1 second
- .5 second
- .2 second
- .1 second
The period that best suits the natural characteristics of the signal should be specified . One 5 The second interval is sufficient for the temperature of a large amount of water , Because it doesn't change quickly . But some power levels change very quickly , So every need 0.5 Seconds to scan them . In a continuous control cycle in which the controlled process variables change rapidly ,0.1 Second intervals would be the best choice .
For a record to be periodically scanned , In its SCAN A valid option must be entered in the field . actually , The options available depend on menuScan.dbd Configuration of files . For example, most of the other fields that make up an option menu , By editing the appropriate .dbd( Data definition ) file , Ability to change available for SCAN Field options .dbd Files are used to generate header files ASCII file , These header files are then used to compile the database code . In addition to menu field options , quite a lot dbd Files can also be used to configure other things .
This is a menuScan.dbd Sample file , This file has menu options corresponding to all cycles listed above and corresponding event scanning , Passive scanning and I/O Option to interrupt scanning .
menu(menuScan) {
choice(menuScanPassive,"Passive")
choice(menuScanEvent,"Event")
choice(menuScanI_O_Intr,"I/O Intr")
choice(menuScan10_second,"10 second")
choice(menuScan5_second,"5 second")
choice(menuScan2_second,"2 second")
choice(menuScan1_second,"1 second")
choice(menuScan_5_second,".5 second")
choice(menuScan_2_second,".2 second")
choice(menuScan_1_second,".1 second")
}
The first three options must appear first and in the order they appear . The remaining definitions are for the periodic scan rate , The periodic scan rate must appear in the order of slowest to fastest ( The sequence directly controls the thread priority assigned to a specific scan rate , And faster scan rates should be given higher thread priority ). stay IOC Read the menu option string during scan initialization during initialization . So you can change menuScan.dbd And through dbLoadDatabase Loading this version changes the periodic scan rate . The only requirement is that each cycle option string must start with a numeric value followed by any of the following unit strings :
- second or seconds
- minute or minutes
- hour or hours
- Hz or Hertz
for example , To add a corresponding 0.015 Second option , stay 0.1 Add the following line after the seconds option :
choice(menuScan_015_second, " .015 second")
The value range of the corresponding scanning period can be from one clock timing unit to the maximum number of clock timing units available on the system ( for example , Out of the box VxWorks Support 0.015 Seconds or one 60Hz Maximum frequency of ). Be careful : The order of options is necessary . The first three options must appear in the above order . Then the remaining options should be in descending order , The longest period is first and the lowest period is last .
Event scan
In the input / Output controller (IOC) Two types of events are supported in the database ,I/O Interrupt events and user-defined events . For each type of event , Users can use PRIO Field or priority field specifies the scheduling priority of the event . Scheduling priority refers to the priority of this event on the stack relative to other running tasks . There are three possible options :LOW,MEDIUM or HIGH. A low priority event has a slightly higher priority than channel access . A medium priority event has a priority equal to the median periodic scanning task . High priority events have a priority equivalent to the event scanning task .
I/O Interruptions
stay I/O Interrupt scan makes a driver submit a I/O Event to run a record . In many cases , Submit these events in the interrupt service routine . for example , If an analog input records this from a I/O The board gets its value and specifies I/O Interrupt the scan routine for it , Then each time this board generates an interrupt ( Not all types I/O The board can generate interrupts ) Will run this record . Be careful : Even if some boards cannot actually generate interrupts , Some driver support modules can simulate interrupts . In order to make a record in I/O Interrupt upper scan , its SCAN Field must specify I/O Intr.
User defined events
The mechanism of user-defined events deals with records that are meaningful only in a particular context . adopt post_event() Database access routines can generate user-defined events . Two records event Record and timer Record , Also used to submit events . for example , There is a timing output , When the process is in a state in which the control can be safely changed . adopt Timer Record control timing output ,Timer Records have the ability to generate interrupts . Consider a situation , In this case at I/O Interrupt scanning this timer Record and timer Logged event fields (EVNT) Contains an event number . When scanning this record , This event will be submitted , Its SCAN Field assignment Event And all records with the same event number as the generated event will be run . It can also generate user-defined events through software . The event number is configurable and should be controlled by the project engineer . They just need each IOC only , Because they only trigger the same IOC Operation recorded in .
All records of mechanisms that use user-defined events must be in their SCAN Field Event And in their EVNT Field to specify an event number .
Passive scanning
When passive records are referenced by other records through their link fields or when a channel access write is made to them , They are run .
Channel access is written to the passive scan record
When a channel access writes a record , The written field has an attribute , It determines whether the write causes the record to run . In all recorded cases , Yes VAL The writing of the field causes the record to run . Consider one of its SCAN Field is Passive Binary output record of . If the operation window is VAL There is a button on the field , Every time you press this button , A channel access write was sent to this record . When VAL When a field is written , This Passive Records are run and passed DTYP The specified device supports calling the device that supports writing the new conversion RVAL To at OUT Field . A field that decides to change the behavior of a record , Generally make this record run . Another field that causes binary output to run is ZSV; It is the binary output record in state Zero(0) The severity of the alarm . If this record is in a state 0 And the severity of that state from No Alarm Turned into Minor Alarm, In a SCAN Passive The only way to capture this on the record of is to run it . stay bo.dbd Fields in the file can be configured to cause binary output records to run .ZSV The severity can be configured as follows :
field(ZSV,DBF_MENU) {
prompt("Zero Error Severity")
promptgroup(GUI_ALARMS)
pp(TRUE)
interest(1)
menu(menuAlarmSevr)
}
here "pp(True)" The line indicates : Run this record when a channel access write occurs .
Database links to passive records
Records in the process database are used link Field to configure data transfer and scheduling ( Or run ). These fields are INLINK, OUTLINK or FWDLINK Field .
Forward link
In the database definition file (.dbd), These fields are defined as follows :
field(FLNK,DBF_FWDLINK) {
prompt("Forward Process Link")
promptgroup(GUI_LINKS)
interest(1)
}
In being FLNK Record settings referenced by the field SCAN Field is "Passive", Then with FLNK After recording , Run by FLNK Field references the record .FLNK Fields only cause records to run , Do not transfer data . stay ( chart 1) in , Three records are displayed . Run periodically ai Record "Input_2. In every interval , function Input_2. stay Input_2 Finished reading new input , Convert it to engineering units , Check alarm conditions , And forward monitoring to channel access , Then run calc Record "Calculation_2".Calculation_2 Read input , Perform calculations , Check alarm conditions , And submit monitoring to channel access , Then run ao Record "Output_2".Output_2 Read the desired output , Limit the speed to it , Limits , by OUT Field call device support , Check the alarm , Submit monitoring and then close .
chart 1 Input link
Input links usually get data from a field to a field in the referenced record . for example , If one CALC Records of the INPA The field is set to Input_3.VAL, From Input_3 Record acquisition VAL Field and put CALC Records of the A Field . These data links have an attribute , It specifies whether a passive record should be run before the return value . The default value for this property is NPP(no process passive). In this case , Record acquisition VAL Field and return it . If they are set to PP(process passive), Before returning this field , Run this record .
In the figure 2 in , Use PP attribute . In this example , Periodic operation Output_3. Record run first gets DOL Field . because DOL The field is set to PP attribute , Back in Calc_3 Of VAL Before fields , Run this record . from ai Record Input_3 The first thing to do is to read the input . It then converts RVAL The field is in engineering units and is in VAL Put this value in the field , Check the alarm , Submit monitoring , And then return to .calc The record then goes from Input_3 obtain VAL Field , Put it in A Field , Carry out operations , Check the alarm , Submit monitoring , return .ao Record Output_3 Then from CALC Record acquisition VAL Field , Use rate of change and limits , Write a new value , Check the alarm , Submit monitoring and end .
chart 2
In the figure 3, Use PP/NPP Property to calculate the rate of change . With 1Hz function Calc Record . It is... In order calc Record get input . because INPA There are properties NPP, from ai Record acquisition VAL Field . Because the attribute on this link is PP, stay INPB from ai Record acquisition VAL Before fields , It is run . new ai Values are put into calc Records of the B Field .A-B It was a second ago ai Records of the VAL Field and current VAL Field .
chart 3
Process chain
Links can be used to create complex scanning logic . In the example of forwarding links above , The chain of records is determined by the scan rate of the input link . stay PP Example , The scan rate of the chain is determined by the output rate . Depending on hardware and process limitations , Any of these may be appropriate .
This flexibility can also lead to some misconfiguration , Care must be taken . We see some errors that can occur in the following examples .
In the figure 4 in , stay 10Hz The two scanned records point to the same Passive Record . In this case , No warnings or errors are generated .Passive Record to 10Hz Scanned twice . The time between scans depends on what records are run between two cycle records .
chart 4
In the figure 5 in , Made a number of circular references . Because the record run is called recursively for the link , During the whole time of running this chain , The record containing this link is marked as active . When you encounter one of these ring references , The active tag is recognized and the request to run this record is ignored .
chart 5
Channel access links
A channel access link is an input or output link , It points to another IOC The link of a record in or a record with the following attributes :CA,CP or CPP One of the input or output links .
Channel access input link
If the input link specifies CA,CP or CPP, Regardless of the location of the referenced process variable , It will be forced to access links for a channel . This is helpful for separating process chains that are not closely related . If the input link specifies CP, Whenever monitoring is submitted , Whatever this record is SCAN Field specifies what , It also causes the record containing this input link to run . If the input link specifies CPP, If and only if CPP Linked record settings SCAN Field is Passive when , It will cause the record to be run . In other words, , As the process variables they reference change ,CP and CPP Make the record containing this link run
Channel access output link
only CA Suitable for output links . Writing to a field through channel access causes a run , As specified in the channel access write to the passive scan record .
Channel access forwarding link
The forwarding link can also be a channel access link , Or when they are assigned to another IOC Or when they specify CA attribute . but , If the forward link specifies another record's PROC Field , They will only become channel access .
Maximize severity attributes
The maximum severity attribute is one of the following :
- NMS (Non-Maximize Severity)
- MS (Maximize Severity)
- MSS (Maximize Status and Severity)
- MSI (Maximize Severity if Invalid)
It determines whether the alert severity is propagated along the link . If the attribute is MSI, Only spread INVALID_ALARM severity ;MS or MSS The setting of propagates all alerts that are more severe than the current severity of this record . For input links , The alert severity of the record referenced by the link is propagated to the record containing the link . For output links , The alert severity of the record containing this link is propagated to the record referenced by this link . If the severity is changed , The associated alarm status is set to LINK_ALARM, Unless the attribute is MSS, At this point, the alarm status will be copied along with the severity .
The method of determining whether the alarm status and severity are changed is called " Maximize severity ". In addition to its actual status and severity , Each record also has a new status and severity . The new status and severity are initially 0, Its identification NO_ALARM. Every time a software component wants to change state and severity , It first checks for the new severity and only makes changes if the severity it wants to set is higher than the current new severity . If it changes , It changes the new status and severity , Not current status and severity . When database monitoring is checked , This is usually done by a record run routine , The current state and severity are set to new and the mind is reset to 0. The end result is that the current alarm status and severity reflect the highest severity pending alarms . If multiple alerts of the same severity occur , The alarm status reflects the first detected .
Phase
PHAS Field is used to sort the running order of records scanned at the same time , That is , Records that are periodically scanned at the same interval and priority , Or records scanned at the same time . In this way , Records that depend on other records can be guaranteed to use the current data .
To illustrate this , We will look at an example from the previous section , But records are periodically scanned instead of being passive ( chart 6). In this example , Each of these records specifies .1 second ; thus , These records are synchronized .phase The sequence is used to ensure that the analog input record is run first , It means that it gets its value from the specified location and ( After any conversion ) Put it in VAL Field . next step , Will run calc Record , Get its value from this analog input record and perform calculations . Last , Analog output recording will be run , from calc Records of the VAL Field (VAL The field contains calc Recorded calculation results ) Get its desired output value and write that value to its OUT The location specified in the link . To make this happen , Analog input recorded PHAS Field must specify 0,calc Records of the PHAS Field must specify 1, And analog output records PHAS Field must specify 2.
chart 6
It is important to understand the above examples , No record makes another record run .phase The mechanism enables each record to run sequentially .
PVAccess link
When according to Base>=3.16.1 Build time , Enabled for PVAccess Link support , This is similar to channel access (CA) link . but PVA The syntax of links is very different .
Authoritative documents are in git Available in the warehouse ,pva2pva(pva2pva: QSRV).
Be careful :"dbjlr" and "dbpvar" IOC shell The command provides information about IOC in PVA Information .
A simple configuration using the default is :
record(longin, "tgt") {}
record(longin, "src") {
field(INP, {pva:"tgt"})
}
This is the abbreviation for :
record(longin, "tgt") {}
record(longin, "src") {
field(INP, {pva:{pv:"tgt"}})
}
You can use some ( except "pv" Outside ) Supplementary keys . The default... Is shown in the following example :
record(longin, "tgt") {}
record(longin, "src") {
field(INP, {pva:{
pv:"tgt",
field:"", # may be a sub-field
local:false,# Require local PV
Q:4, # monitor queue depth
pipeline:false, # require that server uses monitor
# flow control protocol
proc:none, # Request record processing
#(side-effects).
sevr:false, # Maximize severity.
time:false, # set record time during getValue
monorder:0, # Order of record processing as a result #of CP and CPP
retry:false,# allow Put while disconnected.
always:false,# CP/CPP input link process even when # .value field hasn't changed
defer:false # Defer put
}})
}
pv: The goal is PV name
To search PV name . This is the 'pvget' Or other client tools .
field: Structure field name
The name of the secondary field of the structure provided remotely . Default , An empty string "" Use the top-level structure .
If the top-level structure or secondary structure is selected , It is expected to conform to NTScalar, NTScalarArray or NTEnum To extract values and metadata .
If the secondary field is PVScaler or PVScalarArray, Will get a value from it , But there will be no metadata .
local: Local required PV
When it is true , Unless by local (QSRV) The data provider provides a named PV, Otherwise the link will not be connected .
Q: Monitor the correct length
Request a specific monitoring queue depth . When selecting a queue depth , The server may or may not consider this .
pipeline: Monitor flow control
I hope the server supports PVA Monitor flow control . If you don't , Subscription will stall .
proc: Request log run ( side effect )
The meaning of this option depends on the direction of the link .
For output links , This option allows a request to run remotely ( Parenting )
- none( Default ): No special requests . Use a server specific default .
- false,“NPP”: Request to ignore run .
- true,“PP”: Request forced run .
- "CP","CPP": For output links ,"PP" Another name for .
For input links , This option controls the inclusion of this when a subscription event is received PVA Whether linked records will be run .
- none( Default ),false,“NPP”: Do not run while subscribing to updates .
- true, "CP": Always run when subscribing to updates .
- "PP", "CPP": If SCAN=Passive, Run when subscribing to updates
sevr: Alarm propagation
This option controls from an input PVA Link reading a value has the added effect of propagating any alerts through the severity maximization process .
- false: Do not maximize severity .
- true: Maximize alert severity .
- “MSI”: If remote authentication is "INVALID", To maximize .
time: Event communication
To some extent, it is similar to sevr: Use... For timestamps . When it is true , When reading link values , Update the record TIME Field .
Warning :TSEL Must be right time:true Set to -2 To work .
monorder: Monitor the running sequence
When multiple records are in the same directory PV As a goal , And request to run when subscribing to updates . This option allows you to specify the order in which to run . Run records in ascending order . stay monorder=0 Front operation monorder=-1. Both are monorder=1 Front operation .
defer: Delay put
Default (defer=false), An output link will immediately start a PVA Put operation .defer=true The new value will be stored in an internal cache , But don't start one PVA Put.
This option , combination field:allows Allow individual Put Contains updates to multiple secondary fields .
retry: When disconnected put
When the link is broken , Allows a Put Operations are queued . This will be executed when the link is connected Put.
always: CP/CPP Always running
Default (always:false), Only in the structure field (cf.field:option) When marked as a change , Subscribing to updates makes a CP Enter Link Scan . Set to true Rewrite this , And always run this link .
Link semantics / Behavior
This section tries to answer some questions about how links behave in certain situations .
Evaluate links in three basic contexts :
- dbPutLink()/dbScanFwdLink()
- non-CP Of the link dbGetLink()
- from CP Links are generated during a scan dbGetLink()
An input link can bring in a value and metadata , alert , Time and display / Control information . For input links ,PVA The link engine tries to set the value , Maintain consistency between alarms and time . But these and show / There is only one consistency between control information CP It is ensured during scanning .
Address specification
The address parameter specifies where an input record gets input , Where does an output record get its required output value , And an output record to write where its output goes . They are used to identify links between records , And specify the location of the hardware device . The most common link fields are OUT( Output link ),INP( Input link ) and DOL( Desired output position , It is also an input link ).
There are three basic types of address specifications , They can appear in these fields : Hardware address , Database addresses and constants .
Be careful : Although some of these , But not all links support all three types . This is not the case with arithmetic records , Arithmetic records cannot specify hardware addresses . Arithmetic records are like Calc,PID and Select A record of records . These records are used to process values obtained from other records . Refer to the documentation for each record .
Hardware address
EPICS The interface between the process database logic and the hardware driver is indicated in the two fields of the record supporting the hardware interface :DTYP and INP/OUT.DTYP Field is the name of the device support entry table used to connect devices . The address specification is determined by the device support . Some rules that exist on several buses are listed below . lately , More devices choose to use a string , It is then parsed by the device settings into the desired . The specification type is called INST I/O. Other specifications listed here include :VME,Allen-Bradley, CAMAC, GPIB, BITBUS, VXI and RF. The input specifications for each of these are different . The specification of these strings must be obtained from the device support code or documentation .
1、INST
INST I/O The specification specifies a string that the device supports parsing . The format of this string is determined by the device support
@parm
about INST I/O
@ In the optional string parm front
2、VME Bus
VME The address specification format varies from device to device . In all these specifications ,‘#’ Character specifies a hardware address . The three formats are :
#Cx Sy @parm
For analog inputs , Analog output , And timers
- C In the card number x front
- S In the signal number y front
- @ In the optional string parm front
stay VME The board number in the address specifies the logical board number . The card number is assigned by the address rule : The position in the backplane is not important . The address is assigned by the engineer who fills in the backplane , The logical number clearly records . The logic board number is the same as the signal number 0 Start .parm Point to a maximum 31 Any string of characters and is device specific .
3、Allen-Bradley Bus
Allen-Bradley The address specification has several more fields , It's more complicated .'#' Specify a hardware address . The format is :
#La Ab Cc Sd @parm
All field types :
- L Serial link number a Front and optional , Default 0
- A In the adapter number b Front and optional , Default 0
- C In the card number c front
- S In the signal number d front
- In the optional string parm front
Corresponding Allen-Bradley I/O The board number of specifies the physical slot number , here 0 Is located directly on the right side of the adapter board .AllenBradley I/O I/O Yes 12 Can be used for I/O Card slot , Number from 0 To 11.Allen-Bradley I/O You can use double query addresses , This means slot 0,2,4,6,8,10 For input modules , slot 1,3,5,7,9 and 11 For output modules . because 1771IL The board is only useful in dual slot addressing mode , All when using it , Dual address slot addressing mode is required . Because this board provides Kilovolt Isolation , Need it .
4、Camac Bus
CAMAC The bus specification is similar to Allen-Bradley Address specification .'#' Indicates a hardware address . The format is :
#Ba Cb Ad Fe @parm
be used for waveform Digital instrument
- B In the branch number a front
- C In case No b front
- N At the station number c front
- A At the secondary address d front ( Optional )
- F In the functional e front ( Optional )
- @ In the optional string parm front
Supported by waveform The digital instrument has only one channel per board ; No access is required .
5、 Other
GPIB,BITBUS,RF and VXI Board types have been added to supported I/O In the board . The following is a brief description of each address format . Need further explanation , See the specific documentation for each board .
#La Ab @parm
be used for GPIB I/O
- L In the link number a front
- A stay GPIB Address b front
- @ In the optional string parm front
#La Nb Pc Sd @parm
be used for BITBUS I/O
- L In the link a front , That is :VME bitbus Interface
- N stay bitbus node b front
- P At the node c Before connecting to the port
- S In the port d Before the signal
- @ In the optional string parm front
#Va Cb Sc #parm
be used for VXI I/O, Dynamic addressing
- V stay VXI Frame number a front
- C stay VXI frame b In front of the middle slot
- S In the signal number c front
- @ In the optional string parm front
#Va Sb @parm
be used for VXI I/O, Static addressing
- V At the logical address a front
- S In the signal number b front
- @ In the optional string parm front
Database address
The database address is used to specify the input link , Required output links , Output links and forward running Links . In each case the format is the same :<RecordName>.<FieldName>
here RecordName Just the name of the referenced record .'.' Is the separator between the record name and the field name , and FieldName Is the name of the field in this record .
Record and field names are case sensitive . The record name can be a mixture of :a-z A-Z 0-9 _ - . [ ] < > ;. Field names are always capitalized . If no field name is specified as part of an address , Consider the value field of this record (VAL). The link of the forwarding run does not need to contain the field name , Because when using a link to forward a run , No return value ; thus , A forwarding link only needs to specify a record name .
When getting a value from another record , Perform basic type conversions -- Integer multiples to floating point numbers and floating point multiples to integers . for example , A value field that uses binary input records calc The record will get a floating point 1 or 0 To use... In calculations , because calc The value field of the record is a floating-point number . If calc The recorded value is used for the desired output of the multi bit binary output record , The floating-point result is converted to an integer , Thus, multi bit binary output records use integers .
Records that use software devices to support routines or that do not have hardware devices to support routines are called soft records . See the chapter of each record for information about the equipment support of the record .
constant
The input link field and the desired output location field can specify a constant to replace the hardware or database address . A constant , It is not a real address , It can be in any format (hex, decimal etc. ) And so on . When initializing the database , The value field is initialized to this constant . And change the value field through the database access routine at run time . for example , stay calc Constants can be used in the input links of records . For non constant Links ,calc Record the value obtained from the input link , And place them in the corresponding value field . For constant Links , Initialize the value field with this constant , And you can change these values by changing the value field instead of the link field . thus , because calc The record uses its value field as the operand of its expression , Constants become part of the calculation .
When nothing is specified in the link field , It's a NULL link . stay Release 3.13 front , And NULL The value field associated with the link is used 0 Value initialization . from Release 3.13 after , The value fields associated with these links are not initialized . Constants can also be used to output the desired output position of the record or DOL Field . In this case , Initial desired output value (VAL) Will be that constant . As long as the device support module supports conversion , Before writing this value , Perform any specified conversion on this value ( Soft channel devices support routines that do not perform conversions ). By writing this value field at run time , An operator can change the desired output value .
Constants can be used to output link fields , But if so , Output will not be written . look out : This is not considered an error by the database checking tool .
Conversion specification
Conversion parameters are used to convert sensor data into meaningful data . Discrete signals need to be in level and state ( That is :on,off,high,low etc. ) Between . Analog conversion requires conversion between levels and engineering units ( That is : pressure , temperature , Level, etc ). These transformations are performed to provide values to the operator and application code in meaningful units .
The following sections discuss three types of conversions . And field names appear in uppercase letters .
Discrete transformation
The simplest type of discrete transformation is a representation of a device on/off Discrete input of state . If the level is high , He indicates that the status of the device is on . contrary , If the level is low , It indicates that the device is off . In the database , Parameter can be used to input the string corresponding to each level , It goes on to that state (1,0). By defining these strings , It is not necessary for the operator to know that a specific sensor is turned on when the level of its transmitter is high , When the level is low , It is closed . In a representative example , Input a discrete input record is input with the following conversion parameters :
Zero Name (ZNAM): Off
One Name (ONAM): On
The same example of a discrete output record is a on/off controller . Let's consider a situation : The safety status of the equipment is On,0 state . The level is 0 Drive equipment on , Therefore, the disconnected cable will drive the equipment into a safe state . In this example , Enter the database parameters as follows :
Zero Name (ZNAM): On
One Name (ONAM): Off
By giving the external world the state of this device , The message is clear . Binary input and binary output records are used to represent such on/off equipment .
A more complex example involving discrete values is a multi bit binary output record . Consider that the two-state valve has four states : Move , Open it all , Fully closed and disconnected . Enter the bit pattern corresponding to each control state into the database with a string describing that state . Enter the database parameters for monitoring as follows :
Number of Bits (NOBT): 2
First Input Bit Spec (INP): Address of the least significant bit
Zero Value (ZRVL): 0
One Value (ONVL): 1
Two Value (TWVL): 2
Three Value (THVL): 3
Zero String (ZRST): Traveling
One String (ONST): Open
Two String (TWST): Closed
Three String (THST): Disconnected
In this case, there is , When scanning database records , Read the monitoring bits and compare with the bit pattern of each state . When the bit pattern is found , The device is set to that state . for example , If the two monitoring bits read 10( Binary system ),Two valve The corresponding value of , And the device will be set to indicate that the valve is closed 2.
If the bit pattern is not found , The device has entered an unknown state . In this case , All possible states are defined .
Besides , Binary output recorded DOL Field (bo and mbbo) Will accept a value as a string . When they get the string or when the value field passes put_enum_strs When a string is passed , Search for a match with one of the statuses . If a match is found , Write the value corresponding to that state .
Analog conversion
Analog conversion requires an understanding of the sensor , Filter and I/O card . Together they measure the process , Pass data and connect data to IOC. Smoothing can be used to filter noise signals . The smoothing parameter is a 0 and 1 Constant between , And in SMOO Field types are specified . It is applied to the converted hardware signal as follows :
eng units = (new eng units × (1 - smoothing)) + (old eng units × smoothing)
Analog conversion from raw values to engineering units can be linear or breakpoint conversion .
Whether an analog record performs linear conversion , Breakpoint conversion or no conversion at all , It depends on how to configure the record LINR Field . be used for LINR The possible options for the field are as follows :
- LINEAR
- SLOPE
- NO CONVERSION
- typeKdegF
- typeKdegC
- typeJdegF
- typeJdegC
If you choose LINEAR perhaps SLOPE, The record performs a linear transformation on the data . If you choose NO CONVERSION, Records do not convert data . The other option is the name of the breakpoint table . When in LINR Fields specify one of these , Record converts its data using the specified table .( Be careful : Often add supplementary breakpoint tables at specific sites , Therefore, there will be more breakpoints listed here in the user site .) The following sections explain linear and breakpoint transformations .
Linear transformation
stay EGUF and EGUL The fields are the maximum and minimum ranges of various specified engineering units .EGUF and EGUL The values of the fields correspond to the maximum and minimum values of the sensors . thus , The values of these fields are device dependent . for example , If the sensor has a -10 To +10 The range of volts , be EGUF The field should be 10 also EGUL The field should be -10. In all cases ,EGU A field is a text string that contains the unit of value .
be used for LINR Field LINEAR and SLOPE The distinction between settings is in how to calculate conversion parameters :
use LINEAR transformation , Users must set up their own EGUL and EGUF Is the minimum and maximum possible engineering unit value that can be converted by hardware . The device supports knowing the range of raw data and calculating from them ESLO and EOFF.
SLOPE The conversion requires the user to calculate the appropriate zoom and offset factors and to ESLO and EOFF Write them directly in .
When considering linear transformation parameters , You know, there are three formulas . The conversion from measured values to engineering units is as follows :
In the following example , Shows the determination of the maximum range and the minimum range in engineering units . The conversion to engineering units is also shown to the reader , Make them familiar with signal conversion from signal source to database engineering unit .
Sensor matching I/O modular
First let's consider the linear transformation . In this example , The sensor transmits 0-10V, No amplification , also I/O Board use 0-10V Interface .
The sensor transmits pressure :0V Corresponding 0PSI,10V Corresponding 175PSI. Determine the maximum range and minimum range of engineering units as follows :
eng. units full scale = 17.5 × 10.0
eng. units low scale = 17.5 × 0.0
- LINR:Linear
- EGUF:175.0
- EGUL:0
- EGU:PSI
The conversion will consider I/O Accuracy of the module . In this example ( Suppose a 12 Bit analog input board ), The conversion is as follows :
When the pressure is 175 PSI when ,10V Sent to I/O modular . stay 10V when , The signal reads 4095. When this is connected to this transformation , The value is 175 PSI.
lower than I/O Sensor of the module
Consider the variables of this linear transformation , Here sensors 0-5V
In this example , The sensors are 0 PSI produce 0V, stay 175 PSI produce 5V. Determine the maximum range and minimum range of engineering units as follows :
eng. units full scale = 35 × 10
eng. units low scale = 35 × 0
The field items to convert this pressure in the simulation record will be as follows :
- LINR:Linear
- EGUF:350
- EGUL:0
- EGU:PSI
The conversion will also consider I/O Accuracy of the module . In this example ( Suppose a 12 Bit analog input board ), The conversion is as follows :
Be careful : At maximum range , The sensor will produce an indication 175 PSI Of 5V. This is only half of what the input board accepts .
Let's access the numerical value to see the result :
0+(2048/4095)∗(350−0)=175
In this case , We must adjust the engineering unit maximum range to compensate for the difference between the transmitter and the analog input board .
The sensor is and I/O Module bipolar
We consider another variant of this linear transformation , Input board accepts -10V To 10V( That is : Bipolar replaces unipolar ).
In this case , The sensors are 0 PSI produce 0V, stay 175 PSI produce 10V. Input modules have different voltage ranges , The engineering unit maximum and minimum ranges are determined as follows :
eng. units full scale = 17.5 × 10
eng. units low scale = 17.5 × (-10)
The database entries to convert this pressure are as follows :
- LINR:Linear
- EGUF:175
- EGUL:-175
- EGU:PSI
Conversion considerations I/O Accuracy of the module . In this example ( Suppose a 12 Bit analog input board ), The conversion is as follows :
Be careful : At the minimum range , The sensor will generate 0V To express 0 PSI. Because this is half of what the input board accepts , With 2048 Input . Let's take the numerical value and see the result :
−175+(2048/4095)∗(175−(−175))=0
In this case , We must adjust the engineering unit minimum range to compensate for the difference between the unipolar transmitter and the bipolar input board .
Combine linear conversion and amplifier
Consider another variable of linear transformation : Input board accepts -10V To 10V, The sensor transmits 0-2V Corresponding 0-175 PSI And on this transmitter 2X amplifier .
stay 0 PSI when , The sensor transmits 0V. This is put into 0V. At half the range , It reads 2048. stay 175 PSI, Full scale , The sensor transmits 2V, It is magnified to 4V. Analog input board handle 4V As a range 70% perhaps 2867 Count . The upper and lower limits of the maximum measurement range are determined by the following :
eng units full scale = 43.75 × 10
eng units low scale = 43.75 × (-10)
(175/4=43.75) The recorded field items will be converted to this pressure as follows :
LINR:LINEAR
EGUF:437.5
EGUL:-437.5
EGU:PSI
The conversion also considers I/O Accuracy of the module . In this case ( Suppose a 12 Bit analog input board ), The conversion is as follows :
Be careful : At the lower limit of the measuring range , The sensor will generate 0V To express 0 PSI. Because this is half of what this input board accepts , The input is 2048. Let's take the numerical value and see the result :
−437.5+(2048/4095)∗(437.5−(−437.5))=0
Be careful : On the upper line of the measuring range , The sensor will generate 2V, It said 175 PSI. The amplifier will turn 2V become 4V.4V yes I/O Board range 14/20 perhaps 70%. come from I/O The input of the board is 2866( That is :0.7*4095). Let's take the numerical value and see the result :
−437.5+(2866/4095)∗(437.5−(−437.5))=175PSI
We must adjust the engineering unit maximum range to adjust the sensor and amplifier effects as well I/O Differences between board ranges . We also adjust the minimum range to compensate for the difference between the unipolar sensor and the bipolar analog input board .
Breakpoint conversion
Now let's consider the nonlinear transformation . These are transformations as polynomial inputs . Because it takes more time to execute , Create a breakpoint table , It divides the nonlinear transformation into sufficiently accurate line segments .
Breakpoint table
The breakpoint table is then used for piecewise linear conversion . Each segment of the breakpoint table includes :
The starting value of the original value corresponding to this segment , Starting engineering units .
breaktable(typeJdegC) {
0.000000 0.000000
365.023224 67.000000
1000.046448 178.000000
3007.255859 524.000000
3543.383789 613.000000
4042.988281 692.000000
4101.488281 701.000000
}
Breakpoint table conversion example
When reading a new original value , The conversion routine starts with a previously used segment , Compare the original starting value , And search the appropriate segment corresponding to the new original value forward or backward in the table . Once you find the right paragraph , The new engineering unit value is the engineering unit value at the beginning of this section plus the slope of this section multiplied by the position on this section .
alue = eng.units at segment start + (raw value - raw at segment start) * slope
A table with entries corresponding to each possible raw count is a valid lookup table .
Use dbLoadDatabase shell Function to load the breakpoint table to IOC. When loading this table , Calculate the slope corresponding to each segment . For the original value that exceeds the last point in the breakpoint table , Use the slope of the end segment .
In this example , The sensor is a transmitter 0-20mA Thermocouples . A zoom in mA To V The amplifier of is present .I/O Board use 0-10V Interface and a 12-Bit ADC. The original value range is therefore 0 To 4095.
The sensor transmits the temperature . The data items required to record the conversion temperature at the analog input are as follows :
LINR:typeJdegC
EGUF: 0
EGUL: 0
EGU: DGC
For analog input records using breakpoint tables , Use... In the middle of the conversion EGUF and EGUL, So you don't have to assign values to them .
Use this example to set up and assume that we get a 3500 Of ADC Raw read , The above formula will give :
Value = 524.0 + (3500 - 3007) * 0.166 = 605.838 DGC
EPICS Base The distribution package currently contains a package in Fahrenheit F And centigrade C Of J and K Lookup table for thermocouples .
Other potential procedures for lookup tables are, for example, other types of thermocouples , Logarithmic output controller and exponential sensor . Piecewise linearization of signals provides a way to minimize the floating-point arithmetic amount required to convert nonlinear signals . Ability to add supplementary breakpoint tables to predefined tables .
Create breakpoint table
There are two ways to create a new breakpoint table :
1) As long as bits per segment input data , Give raw values and engineering unit values for each point in the following format .
breaktable(<tablename>) {
<first point> <first eng units>
<next point> <next eng units>
<etc.> <...>
}
here <tableName> Is the name of this table , Such as typeKdegC,<first point> Is the original value of the starting point of each line segment ,<first eng units> Is the corresponding engineering unit value . The slope is calculated by the software and should not be specified .
2) Create a file , It consists of a table of any number of numerical values in engineering units and is called makeBpt Tool to convert this table into a breakpoint table . As an example , To create a typeJdegC The content data file of the breakpoint table looks like this :
!header
"typeJdegC" 0 0 700 4095 .5 -210 760 1
!data
-8.096 -8.076 -8.057 <many more numbers>
File name must have extension .data. The file must first have a name that specifies this 9 The head of the line :
- Breakpoint table name in quotation marks : “typeJdegC”
- Engineering units corresponding to the first breakpoint table item : 0
- The original value corresponding to the first breakpoint table item : 0
- Required maximum in engineering units : 700
- Original value corresponding to the maximum value of engineering units : 4095
- Allowable error in engineering units : .5
- Engineering units corresponding to the first item in the data sheet : -210
- The engineering unit corresponding to the last item in the data sheet : 760
- The amount of change expressed in engineering units between data table items : 1
The rest of the file contains lines that divide the project values , No more than... Per line before a new line character 160 Characters . use !header and !data Specify the header and actual table respectively . The file corresponding to the data table is called typeJdegC.data, And can use makeBpt The tool turns to a breakpoint table as follows :
unix% makeBpt typeJdegC.data
Alarm specifications
There are two elements corresponding to an alarm : Alarm status (status) And the severity of this alert (severity). Each database record contains its current alert state and the current alert severity corresponding to that state . The scan task that detects these alerts can also generate a message for each change in the alert status . The available alert types fall into these categories : Scan alarms , read / Write an alarm ,limit alert , And status (state) alert . Some of these alerts are set by the user , And some are automatic , It means that they are called by the record support routine under certain conditions , And cannot be changed or configured by the user .
Alarm severity
Alarm severity is used to assign importance to the current alarm status . There are four kinds of severity :
- NO_ALARM
- MINOR
- MAJOR
- INVALID
NO_ALARM Indicates that the alarm has not been triggered . One warning to be aware of is MINOR alert . In this case , This alarm status is used to send a warning to the operator . A serious condition is MAJOR alert . In this case , The operator should immediately notice this situation and take the correct action . One INVALID An alarm indicates a problem with the data , This can be one of several problems : for example , A faulty address specification , Device communication error , Or the signal is out of range . In these cases , Set up a INVALID The severity of the alarm . One INVALID Alerts can point to a simple configuration problem or a serious operational problem .
about limit Alarms and state alert , The severity can be configured by the user for the specified state as MAJOR or MINOR. for example , An analog record can be configured so that the receiver value exceeds 175.0 Trigger a MAJOR alert . except MAJOR and MINOR, The user can choose NO_ALARM severity , In this case , Do not trigger an alarm for that condition .
For other alarm types ( That is :scan,read/write), The severity is always INVALID And not configured by the user .
Alarm status
An alarm status is a field that all records have . This field is defined as an enumeration field . The possible states are listed below .
- NO_ALARM: Record is not in alarm
- READ: An input link has an error in device support
- WRITE: An output link has an error in device support
- HIHI: An analog value limit alert
- HIGH: An analog value limit alert
- LOLO: An analog value limit alert
- LOW: An analog value limit alert
- STATE: A digital value status alarm
- COS: A digital value status change alarm
- COMM: A device that indicates that the device is not communicating supports alarms
- TIMEOUT: A device that indicates an asynchronous device timeout supports .
- HWLIMIT: An indication hardware limit Alarm devices support alarms .
- CALC: One for the CALC Records that indicate an error operation support alerts
- SCAN: An invalid... Was entered SCAN Field
- LINK: Corresponding to a linked software device support error : There is no record on the referenced record , Wrong field , Invalid conversion , Invalid alert severity .
- SOFT
- BAD_SUB
- UDF
- DISABLE
- SIMM
- READ_ACCESS
- WRITE_ACCESS
There are many problems with this field and menu :
1) The maximum enumeration string passed through channel access is 16, If the channel access does not request this value as a string , Can't see things passing SOFT.
2) Only one state at a time can be true , Thus, the root cause of one or more problems is shielding . This is particularly evident in the interface between record support and device support . A combination of possible hardware problems and methods that do not see this through the provided interface .
3) This list is incomplete .
4) in short , adopt STAT The ability of the field to see errors is limited . In hardware , Most problems in configuration or communication are reduced to REWAD or WRITE Errors and set their severity INVALID. When you have one INVALID Alarm severity , Some investigation is needed to determine this error . Most of the EPICS The driver provides a repot routine , It transfers a lot of diagnostic information . In these cases, this is a good place to start .
Alarm conditions configured in the database
When you have a valid value , There are fields in the record that allow the user to configure deviations from normal conditions . For analog values , Yes limit alert . For discrete values , These are state alert .
limit alert
For analog records ( This contains records such as stepper motor records ), There are configurable alarms limits. There are two... Above the normal operating range limits And there are two below the normal operating range limits. these limits Each of the has an associated alert severity , Configure it in the database . If the recorded value drops below limit Under and for that limit Specified a MAJOR Alarm severity , Is a MAJOR The alarm is triggered . When one limit The severity of is set to NO_ALARM, No alarm will be generated , Even if it's beyond this limit.
There are two at each end limits, Two small values and two large values , Thus, it can cause a warning before the value enters a dangerous condition .
Analog records also contain a hysteresis field , When it is determined that the limit is exceeded , It's also used . The hysteresis field is an alarm limit Dead zones on both sides . Deadband prevents one from limit Too many alarms are generated by unstable signals at . Let's take an example : The scope is -100V To 100V,high alert limit yes 30V, Hysteresis is 10V. If only normal and close HIGH alert limit, When this only reaches 30V, Triggered an alarm . Only when this value is reduced to this limit Lower than hysteresis , This is the normal state . for example , If this value is from 30 become 38, This record will be maintained at HIGH alert . Only when this value is reduced to 20 when , This record returns to the normal state .
Status alert
For discrete values , There are configurable status alarms . In this case , The user can configure a specific state as an alarm condition . We consider a cooling fan , Its discrete state is hight,low and off.off The status can be configured as an alarm condition , So when the fan is off when , The record is in STATE alert . Configure the severity of this error for each state . In this case ,low The state can be a MINOR Serious STATE alert , and off The state can be a MAJOR Serious STATE alert .
Discrete records also have a field , In this field, the user can specify the severity of an unknown state as NO_ALARM, MINOR or MAJOR. thus , Unknown status alerts are not automatic .
Discrete records also have a field , It can specify an alarm when the recorded state changes . thus , The operator can know when the recorded alarm state changes . If this field specifies NO_ALARM, Then a change of state will not trigger a change of state alarm . but , If it makes MINOR or MAJOR, A change in state will trigger an alarm of corresponding severity .
Alert processing
For a record NSEV,NSTA,SEVR and STAT Field handles alerts . When a software component wants to issue an alert , It first checks the new alarm status field :NSTA New alarm status , and NSEV New alert severity . If in NSEV The severity in the field is higher than the current severity field (SEVR), Then the software component settings NSTA and NSEV The fields are the severity and alarm status of the corresponding pending alarm . When this record process The next time the routine runs this record , It sets the current alarm status (STAT) And current severity (SEVR) For in NSEV and NSTA The value in the field . This approach to handling alerts ensures current severity (SEVR) It reflects the highest severity of the pending alarm condition rather than simply the last generated alarm . This also means that if there are multiple alerts of the same severity , The alarm status indicates the first detected alarm .
Add ,get_alarm_double() Routine can be called to format an alert message and send it to an alert handler . Alarm conditions may be explicitly monitored by the operator interface STAT and SEVR Monitored . Use the current status information to access and return all the values monitored by the operation interface from the database .
Monitoring specifications
EPICS Provides a subscription for the client PV Change the method of being notified ; stay EPICS In vocabulary , This method is called " monitor ".
In channel access , With PVAccess Client connection PVs Come on put,get or monitor. stay EPICS There is help in the record to limit the passage CA or PVA The rate at which the server submits monitoring to these clients . When the client monitors a recorded VAL A field , These fields are typically used . Most other fields submit a monitor when they are changed . for example , For an alarm limit The writing of , Cause a monitor to be submitted to any client that is monitoring that field . The client can choose ...
More about using monitoring , see Channel Access Reference Guide.
rate limit
Natural velocity limit Is the rate at which records are scanned . Only when the record is run as a minimum , To submit monitoring . Currently, there is no rate limit monitoring mechanism for the client . If a record runs much faster than a program wants , Or the data developer can generate a second record at a lower rate , And the client connects to that version or ignores these monitoring before the timestamp reflects the change .
Channel access deadband selection
When a field changes in the database , Send value change monitoring .VAL Fields are exceptional . If set MDEL, When a monitor is set , send out VAL Field , And in VAL The fields have changed MDEL, Send again . Be careful :MDEL by 0, stay VAL Send a monitor when the field changes ,MDEL by -1, because MDEL The absolute value applied to the difference between the previous scan and the current scan , So when records are run , Send a monitor . One MDEL by -1 Useful for triggered scalars and positive indications of triggers that need to occur .
Archive change monitoring
When a field changes in the database , Issue archive change monitoring .VAL Field exceptions . If set ADEL, When a monitoring setting , issue VAL Field , And only in VAL The fields have changed ADEL And then send it again .
Alarm change monitoring
Only when the alarm severity or status changes , Before sending out monitoring . Because there is a filter on the alarm condition check , Through those mechanisms , Changes in alarm status or severity have been filtered . Describe these in the alarm specification .
Metadata changes
When a channel access client connects to a field , It generally requests metadata related to that field . In one case, the connection request from the operation interface includes the following metadata : Show limit, control limit, And display information such as precision and engineering units . If after the connection is established , Any field contained in this metadata in a record changes , The client is not notified and therefore unless the client is disconnected and reconnected , Otherwise this will not be reflected . A new tag is added to the channel access client to support the submission of monitoring to the client when any metadata changes . The client can request metadata and reflect this change .
Please look forward to this improvement in the logging support and channel access client .
Client specific filtering
There are several situations that can help . These include event filtering , Rate assurance , Rate limits and value changes .
Event filtering
There are several cases : Only when a particular event is true , Just send a monitoring signal from a channel . for example , There are some reasons for this 1KHz Read diagnostics . When the machine produces a particular beam , Such as one with several injectors and bundles linac, A control program may only want this information . These are virtual machines , They want to be notified when the machine is in their mode . These patterns can be in some cases 60Hz interweave . A fault analysis tool may only be interested in all these data when a fault occurs and the beam is lost .
There are two efforts : In a LANL, One from ANL/BNL. These should be discussed in the future .
Rate assurance
There is a limit on the rate at which most clients are notified . At present , Only SCAN The period limits this . In some cases , Need a user imposed restriction : For example, the data archiving program only wants this channel to be in 1Hz( In this case , All channels are in the same 1msc On ).
Value change
Different clients may set different deadzones between them . No specific circumstances were mentioned .
Control specifications
A database record set is used to maintain automatic control during the control cycle . Each output record has two fields , They help achieve this independent control : Required output location field (DOL) And output mode selection fields (OMSL).OMSL Fields have two mode choices :closed_loop or supervisory. When closed-loop control is selected , From you DOL Field to get the desired output and place it in VAL Field . When the supervision mode is selected , The desired output value is VAL Field . In the regulatory model , Do not extract DOL link . In the regulatory model , The operator notifies the access channel "Put" Set up VAL.
Closed loop an analog control loop
In a simple control loop , Analog input record reads a process variable or PV Value . Operator in PID Set the setpoint in the record . next ,PID Records extract values from analog input records and calculate errors -- Difference between read back and set point .PID Record and calculate the new output setting to move the process variable close to the setpoint . When OSMLK When it is closed loop , The analog output is recorded by DOL from PID Get value . It sets the new output and repeats the process on the next cycle .
Configure an interlock
When something comes true in the process , It may cause interlocking . The result of this interlock is to move something to a safe state or reduce the loss by taking dictation actions . An example is the closing of a vacuum valve to isolate vacuum losses . When the total vacuum reading in a machine area is not within the operating range , An interlock is used to close the valve and prevent it from opening . By reading several vacuum gauges in one area to one Calc Records can achieve this . stay calc The expression in the record can represent the condition that allows the valve to open . The result of the expression is recorded by a binary output that can control the valve DOL Field reference . If the binary output record is set OMSL Field is closed_loop, It sets the valve position calc Recorded values . If it is set to monitor , The operator can override this interlock and directly control the valve .
边栏推荐
- The extra points and sharp tools are worthy of the trust | know that Chuangyu won the letter of thanks from the defense side of the attack and defense drill!
- Solve the problem of non secure websites requesting localhost to report CORS after chrome94
- Simulated 100 questions and online simulated examination of high voltage electrician examination in 2022
- Development specification - parameter verification exception, exception return prompt section
- Attackg: constructing technical knowledge graph from cyber thread intelligence reports
- 02_SpingBoot 入门案例
- [laravel series 7.9] test
- Servlet
- vulnhub DC: 2
- Uip1.0 active sending problem understanding
猜你喜欢
The extra points and sharp tools are worthy of the trust | know that Chuangyu won the letter of thanks from the defense side of the attack and defense drill!
倍加福(P+F)R2000修改雷达IP
A big factory interview must ask: how to solve the problem of TCP reliable transmission? 8 pictures for you to learn in detail
go Cobra命令行工具入门
2022年安全员-A证考题及答案
win10或win11打印机无法打印
Canvas to add watermark to pictures
「ARM 架构」是一种怎样的处理器架构?
2022 safety officer-b certificate examination question bank and answers
Learn more about the practical application of sentinel
随机推荐
加分利器 不负所托 | 知道创宇获攻防演练防守方感谢信!
Research Report on market evaluation and investment direction of Chinese dermatology drugs (2022 Edition)
Programmers become gods by digging holes in one year, carrying flags in five years and becoming gods in ten years
Introduction to machine learning compilation course learning notes lesson 1 overview of machine learning compilation
Solve the problem of port occupation
剑指 Offer 42. 连续子数组的最大和
vulnhub Vegeta: 1
vulnhub Vegeta: 1
Epics record reference 3 -- fields common to all records
别再乱用了,这才是 @Validated 和 @Valid 的真正区别!!!
O (n) complexity hand tear sorting interview questions | an article will help you understand counting sorting
Solution to the login error of tangdou people
【WSL】SSH 远程连接及宿主机端口转发配置
Learn more about the practical application of sentinel
What kind of processor architecture is ARM architecture?
Leetcode algorithm refers to offer II 027 Palindrome linked list
开发规范~参数校验异常、异常返回提示切面
2022安全员-B证考试题库及答案
Research and investment strategy report on China's nano silver wire conductive film industry (2022 Edition)
The core concept of JMM: happens before principle