1、ACL An Introduction,Brian Hendricks,What Does ACL Stand For, Anyway?,Originally, Accelerator Command Language Also, ACNET Command Language Sometimes, ACNET Control Language (not by me),What is ACL?,“Simple” script language borrows concepts from other languages Interpreted, not compiled runtime compi
2、lation available Supports ACNET device notation Implemented in ASCII text files and database text files Built into CLIB,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 pa
3、rameter window) supports complicated settings, etc. Command line interface (general use),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?ac
4、l=insert ACL code here,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,ACL Commands,Device oriented read, list, show, set, on, off, turn, reset, positive, n
5、egative , 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, brea
6、k Special support camac, gpib, timer_event, trigger, step_motor,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
7、, user_info, error_text,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,ACL Operators,Arithmetic +, -, *, /, , %, , , =, =, =, equals,ACL Special Ope
8、rators,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
9、, on_control, off_control, positive_control, negative_control, on_status, ready_status, remote_status, polarity_status,Device Expressions,Property specification : and ? - reading, _ - setting, | - basic status, & - basic control, - analog alarm, $ - digital alarm Array notation begin_index:end_index
10、 T:SBDASS0:36 or T:SBDASS Length/offset notation offset:length T:SBDASS0:148,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,Device Field Specifiers,Only used for alarm properties Normal dot notat
11、ion Examples min, max, nominal, mask, limit_data_type, etc. read M:OUTTMP.min,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
12、ACNET error value,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,Substitution Options,Substitute devices G:DEVnnn used anywhere a device expression can be used Substitute strings stringnn
13、n literal string substitution,ACLs 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 ,Example 1,! Conditionally turn on a
14、 deviceif G:DEV00 is offturn G:DEV00 on endif,Example 2,! Turn Booster low level RF curves offturn 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 casco
15、de curve negative B:VDFSM1 ! switches polarity to (-) for DC operation! for the frequency curve on DSP VXI,Example 3,! Test a C460 module for the copy time to G(I) bugwhile (1 = 1) ! loop foreverwait/event/delay=1000 5 ! wait for event 05 plus 1 secondprint “Event detected!“camac/select/node=ncamac/
16、crate=2/slot=13 ! select modulecamac/fa=26:10 ! restore G(I) table endwhile,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/intr
17、o_acl.html Me,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,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,