350 likes | 485 Views
VBA & Process Variables. System Overview Setup (What installations are needed) What are Process Variables and what are they good for. How do we get data in a cell. Tools Tips & Tricks. Disclaimer.
E N D
VBA & Process Variables • System Overview • Setup (What installations are needed) • What are Process Variables and what are they good for. • How do we get data in a cell. • Tools • Tips & Tricks 1
Disclaimer The use of dynamic data exchange to access process variable related to the DZero experiment is restricted. You will need a good reason to be included on the list. The IP address of the machine that is running the application must be added to a master list maintained by Stuart Fuess. 2
Why is Access Restricted • Mostly used to read information for equipment in the Experiment. • Can be made to write to equipment. • This may be a simple Reset signal or complex sequence, that is the danger. • Ops, I turned off the experiment. 3
DZero System IO VME IOC Ethernet Host 1553 1553 RM 1553 RM BLS PS 4
IO System Overview • What is Channel Access? • A connection channel between a host machine and an IO device. 5
IO System Overview • What is EPICS? • Experimental Physics and Industrial Control System EPICS is a set of software tools and applications which provide a software infrastructure for use in building distributed control systems to operate devices such as Particle Accelerators, Large Experiments and major Telescopes. Such distributed control systems typically comprise tens or even hundreds of computers, networked together to allow communication between them and to provide control and feedback of the various parts of the device from a central control room, or even remotely over the internet. EPICS uses Client/Server and Publish/Subscribe techniques to communicate between the various computers. Most servers (called Input/Output Controllers or IOCs) perform real-world I/O and local control tasks, and publish this information to clients using the Channel Access (CA) network protocol. CA is specially designed for the kind of high bandwidth, soft real-time networking applications that EPICS is used for, and is one reason why it can be used to build a control system comprising hundreds of computers. 6
What Needs to be Installed • Channel Access • Environment Variables • Python 7
Where to find • Look here for installation information. • d0server6/projects/d0epics/caDDE/CaDDE.htm • d0server6/projects/onl_apps 8
Adding Environment Variable • Add the EPICS_CA_ADDR_LIST to your System Properties. • In the advanced section of System Properties/Environment Variables • Add as many IP’s as needed separated by a space. 9
What is a Process Variable • Object link to communicate with IO • Objects have several attributes • Example: CALN_LVCB_00_1/7VA.DESC • Description of BLS power supply in location 00_1 of the North Calorimeter 7V output. • CALN_LVCB_00_1/7VA.ESLO • Scaling Factor for BLS power supply in location 00_1 of the North Calorimeter7V output • CALN_LVCB_00_1/7VA.EGU • Engineering Units for BLS power supply in location 00_1 of the North Calorimeter 7V output 10
Getting Data in a Cell • The magic, once CaDDE has been installed, is a one-liner. • Put this in the cell • =CaDDE|Get!'CALN_CMCP_PA00/LB.' • =VALUE(CaDDE|Get!'CALN_CMCP_PA00/LB.') • Value() will be needed if you do any math • Python scripts can be used to call IO device using channel access drivers. 11
Starting the CaDDE • You will be asked to start the Channel Access DDE and a window will start that lists all the cell PV’s that are in use. • Data will dynamically appear in the cell with no further intervention. 12
BLS GUI 13
BLS GUI Has a ComboBox Has a Transparent Picture Has a Camera Object Has Buttons 14
Open BLS_PS_GUI.xls • Start the sheet to see some of the components. 15
Preamp PS 17
Shell Calls • VBA can call an external process • For example a DOS batch process can be called passing parameters to it from VBA • ret = Shell("c:\data\argument.bat " + arg1 + " " + arg2 + " " + arg3, 1) • The DOS process can call a Python script passing parameters to it. • BOnOff.py %1 %2 • The Python script executes using values sent from the spread sheet. 21
PVNG 23
Detector 24
Type 25
Location 26
Attribute 27
Tools • ConTEXT • http://www.fixedsys.com/context/ • Visustin • http://www.aivosto.com/visustin.html 28
Tips & Tricks • Tips • Transparent GIFs • Conditional Formatting • Long Binary Conversion • ComboBox 101 • Camera 29
Pictures with Holes • Make a GIF with transparent background. • Use Paint Shop Pro 30
Tips • Moving to the end of a row or column • Split screen • Fill down • Copy/Paste special • Reference (relative and absolute) 31
Conditional Formatting • Cells can be have formats that change according to 32
Long Binary Conversion • May need to convert large HEX numbers to Binary • HEX2BIN works only to 1FF • Take small pieces of the HEX value. 33
ComboBox 101 • Make a list and name it • Place a ComboBox on a sheet • Add ListFillRange to the ComboBox object. 34
Camera • Open Tools/Customize/Commands Tools tab. • Drag the Camera to your favorite Tool Bar. • Mark and area and click the camera. • Place the image on a sheet. • It is live and sizeable. 35