How To Print Alarm Summary For Operator Using Workspace Only ?

We would like to print out alarm summary with credential of "Operator" user name.  

Yes, we have it in XML but how can we print out the document when operator has only access to workspace only.

Is it possible for us to display list of xml file for the alarm summary directory at the graphics workspace and printout from workspace?

If so kindly provide the scripting / graphics of this same.

I still observe a lot bug with alarm summary with version 11.3.1 :(

  • In reply to Youssef.El-Bahtimy:

    You can also transform the XML into an HTML table with a few lines of VBA:

    Set xmlDoc = New DOMDocument60

    Dim xmlDOMNodeList As IXMLDOMNodeList

    Dim xmlNode As IXMLDOMNode

    xmlDoc.async = False

    xmlDoc.validateOnParse = False ' No need to validate XML since we know it's origin

    xmlDoc.Load ("C:\Users\Frank\Documents\PRO_PLUS1_2012-10-20-211255.xml") ' Load XML file into xmlDoc variable

    Set xmlDOMNodeList = xmlDoc.SelectNodes("/ALARMSUMMARY/ALARM")

    Output_HTML = FreeFile() ' Get next free output file number

    Open "C:\Users\Frank\Documents\alarmlist.html" For Output As Output_HTML

    Print #Output_HTML, "<table border='1'><tr><th>Time_In</th><th>Description</th><th>Module Parameter</th>"

    Print #Output_HTML, "<th>Alarm</th><th>Message</th><th>Priority</th></tr>"

         For Each xmlNode In xmlDOMNodeList

                     On Error Resume Next

                     Print #Output_HTML, "<tr>" ' Initiate new table row

                     Print #Output_HTML, "<td>" & xmlNode.selectSingleNode("Time_In").Text & "</td>"

                     Print #Output_HTML, "<td>" & xmlNode.selectSingleNode("Description").Text & "</td>"

                     Print #Output_HTML, "<td>" & xmlNode.selectSingleNode("Module_Parameter").Text & "</td>"

                     Print #Output_HTML, "<td>" & xmlNode.selectSingleNode("Alarm").Text & "</td>"

                     Print #Output_HTML, "<td>" & xmlNode.selectSingleNode("Message").Text & "</td>"

                     Print #Output_HTML, "<td>" & xmlNode.selectSingleNode("Priority").Text & "</td>"

                     Print #Output_HTML, "</tr>" ' End table row

                     On Error GoTo 0

         Next xmlNode

    Print #Output_HTML, "</table>"

    Close Output_HTML

    Start a DOS window (RUN CMD from Start), and run AlarmSummaryUtility.exe /? from C:\DeltaV\bin to see command line options.  Hence you can run frsruntask to execute this command with the /export switch; then run above VBA on the fixed/constant output filename, then open results in IE using frsruntask e.g. C:\Program Files (x86)\Internet Explorer\iexplore.exe -k C:\Users\Frank\Documents\alarmlist.html, right click and select Print to print table.  May want to include instructions to press ALT+F4 to close kiosk mode.  Path to IE will vary based on operating system.

    One technique I use, is to dump HTML files to an IIS server; then alarm/interlock summaries/batch charges, can be read from other computers in the plant.

  • In reply to Frank Seipel:

    One other comment on this thread, there is a free utility called PrintHTML available from http://www.printhtml.com/ This is a command line utility to print a web page, either from a file or external URL. it will print HTML from a file without loading IE, but using the IE engine to render what is printed.  You can even specify printer as a command line option, as well as headers, footers, margins, etc.  This may or may not be preferred over the kiosk method earlier proposed, depending on whether you want to view the list before printing.  Also if you choose to do this with Excel, you may not need to purchase Excel because the free Excel Viewer (read only) could be used. www.microsoft.com/.../details.aspx -- DeltaV could also open/print the file using Excel without making it visible for example:

    Dim exl As New Excel.Application

    Dim xls As Excel.Workbook

    exl.Visible = False

    Set xls = exl.Workbooks.Open("C:\Users\Frank\Documents\PRO_PLUS1_2012-10-20-211255.XML")

    xls.ActiveSheet.PrintOut

    xls.Close

    exl.Quit

    Set xls = Nothing

    Set exl = Nothing

    On another topic, what is typically used to send e-mails?  We use febootimail to send alerts based on a schedule (daily tank levels, certain alarms).  We have a schedule run on two workstations (second fires if first doesn't).  This seems to be quite reliable & we can configure which autodialer(s) are active and e-mail distribution lists from the faceplates.  I was wondering what others did for that application.  Now that I know a bit more about this it might have been better to just set this up in Excel on a dedicated computer using OPC.