Presentation is loading. Please wait.

Presentation is loading. Please wait.

ACL – An Introduction Brian Hendricks. What Does ACL Stand For, Anyway? Originally, Accelerator Command Language Also, ACNET Command Language Sometimes,

Similar presentations


Presentation on theme: "ACL – An Introduction Brian Hendricks. What Does ACL Stand For, Anyway? Originally, Accelerator Command Language Also, ACNET Command Language Sometimes,"— Presentation transcript:

1 ACL – An Introduction Brian Hendricks

2 What Does ACL Stand For, Anyway? Originally, Accelerator Command Language Also, ACNET Command Language Sometimes, ACNET Control Language (not by me)

3 What is ACL? “Simple” script language –borrows concepts from other languages Interpreted, not compiled –runtime compilation available Supports ACNET device notation Implemented in ASCII text files and database text files Built into CLIB

4 What is ACL Used For? Lex SA (script object) –originally to provide control –also supports display scripts Sequencer –eliminates the need for most new commands Parameter page (also parameter window) –supports complicated settings, etc. Command line interface (general use)

5 How Can I Use ACL? Call it from your program using CLIB interface Command line interface (type in ‘acl’) Program tools IDE (‘ACL Edit/Run’) Parameter page and parameter window Web –http://adcon.fnal.gov/cgi-bin/acl?acl={insert ACL code here}

6 Language Components Commands –roughly 100 Variables –expire when the current script ends Symbols –expire when the calling program ends –names start with a dollar sign Operators Device expressions

7 ACL Commands Device oriented –read, list, show, set, on, off, turn, reset, positive, negative, toggle, delta_set, increment, decrement, compare, copy, download, restore, fill, ramp, enable, disable, bypass, activate, deactivate, search, logger_get Program control –loop, endloop, exitloop, while, endwhile, continue, if, elseif, else, endif, exit, on_error, gosub, return, retry, break Special support –camac, gpib, timer_event, trigger, step_motor

8 ACL Commands (continued) Input/output –print, output, input Environmental control –timeout, ftd, data_event, data_source System information –setting_log, alarm_log, event_log, state_log, node_info, node, event_info, mdat_info, program_info, user_info, error_text

9 ACL Commands (continued) Variable control –declare, resize run –runs other programs including other ACL scripts wait –pauses the script for a period of time or until a clock event or state event occurs

10 ACL Operators Arithmetic –+, -, *, /, ^, %, >>, <<, plus, minus, times Logical –&&, ||, and, or,.xor. Comparison –, =, =, ==, equals

11 ACL Special Operators is (isnot) – device status –on, off, ready, tripped, remote, local, positive negative, ramping, dc, good, alarming, enabled, disabled, bypassed, active, inactive, defined, undefined has (doesnt_have) – database attribute –reading, setting, status, control, analog_alarm, digital_alarm, reset_control, on_control, off_control, positive_control, negative_control, on_status, ready_status, remote_status, polarity_status

12 Device Expressions Property specification –: and ? -> reading, _ -> setting, | -> basic status, & -> basic control, @ -> analog alarm, $ -> digital alarm Array notation [begin_index:end_index] –T:SBDASS[0:36] or T:SBDASS[] Length/offset notation {offset:length} –T:SBDASS{0:148}

13 Device Modifiers src – data source –dp (default), db, sr:{file}, sda:{file}:{case}:{set}, dl:{date}:{node} scaling type –scaled (default), raw, primary ftd=(FTD string}

14 Device Field Specifiers Only used for alarm properties Normal dot notation Examples –min, max, nominal, mask, limit_data_type, etc. –read M:OUTTMP.min

15 Device Display Types ascii – display reading as ASCII text state_text – display as state text bit_status – display basic status with bit descriptions node – display reading as an ACNET node value acnet_error – display reading as an ACNET error value

16 Device List Specifiers name={string} (uses standard SQL wildcards) node={node name} type={device type string or number} family={family device} file={file name} Many more…

17 Substitution Options Substitute devices –G:DEVnnn –used anywhere a device expression can be used Substitute strings –stringnnn –literal string substitution

18 ACL’s Special Characters Comment –‘#’ and the dreaded ‘!’ –‘!’ can also be used in ‘!=‘ and ‘!exists(variable)’ –comments text to end of line End of line – ‘;’ –allows multiple commands per line Line continuation – ‘\’ –better than Windows’ ‘^’ Execute an ACL file – ‘@’

19 Example 1 ! Conditionally turn on a device if G:DEV00 is off turn G:DEV00 on endif

20 Example 2 ! Turn Booster low level RF curves off turn B:BIAS2 off! sends off command to old bias curve turn B:BIASON off! sends off to the new DSP bias curve turn B:APGC off! sends off to the anode program curve turn B:CIGC off! sends off to the cascode curve negative B:VDFSM1! switches polarity to (-) for DC operation ! for the frequency curve on DSP VXI

21 Example 3 ! Test a C460 module for the copy time to G(I) bug while (1 = 1)! loop forever wait/event/delay=1000 5! wait for event 05 plus 1 second print "Event detected!“ camac/select/node=ncamac/crate=2/slot=13! select module camac/fa=26:10! restore G(I) table endwhile

22 Help for ACL Command line interface –‘help’ for general help –‘help {command}’ for command help Program Tools interface –‘ACL Help’ for general help –‘ACL Command Help’ for command help Web document –http://adcon.fnal.gov/controls/clib/intro_acl.htmlhttp://adcon.fnal.gov/controls/clib/intro_acl.html Me

23 Other ACL Tools ACL database file editor (D136) –place to edit scripts used in Lex SA –requires special permission to write files ACL file launcher –supports launching a predefined ACL script (S69) ACL spawn –supports asynchronous execution of ACL scripts

24 Summary Utilized in many environments –Sequencer –Lex SA –testing (new damper, CAMAC debugging, front end debugging) –examining the control system Empowers end users Has grown to meet the needs of those users

25

26

27

28

29


Download ppt "ACL – An Introduction Brian Hendricks. What Does ACL Stand For, Anyway? Originally, Accelerator Command Language Also, ACNET Command Language Sometimes,"

Similar presentations


Ads by Google