1 / 28

ACL An Introduction

What Does ACL Stand For, Anyway?. Originally, Accelerator Command LanguageAlso, ACNET Command LanguageSometimes, ACNET Control Language (not by me). What is ACL?.

fritzi
Download Presentation

ACL An Introduction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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

    20. Example 2

    21. Example 3

    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.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

More Related