>I like to re-visit stuff every so often in case someone figures out something better. Hi Brian, trending of all <CP>:STATION.CPLOAD is fine. It allows you to investigate changes due to stoping and starting a batch process or after some engineering work. I've installed also a weekly report that allows me reset cyclic all counters and document the counters in another way. It helps to get an general overview. Both things are useful for different cases. Regards, Andreas -- Script: /opt/com/cpsta/bin/cpsta.ksh Station loading report as of: 2007-01-01.05:10:00 last reset on: 2006-12-25.05:18:16 IDLETM =3D Idle Time; CUMOVR =3D Cmpnd/Blk Overruns; OMOVRN =3D = OM Overruns PIOE1R =3D FB Retries; PIOEFT =3D Fault Tolerant Output mismatches PIOEGB =3D Good->Bad FBM state changes; PP_NFD =3D Points NOT = Found CPs Report ----------------------------------------------------------------- CPLBUG IDLETM CUMOVR OMOVRN PIOE1R PIOEFT PIOEGB PP_NFD E5415M 48.9 75 79 0 0 0 0 E5417M 79.6 0 0 0 0 0 0 That script is based on the original cpsta version from the cassandra site. Should it be stored as another version on the cassandra site?=20 #!/bin/ksh # set -x # Fuer Fehlersuche # exec >$0.std 2>$0.err # Ausgabeumlenkung zur Fehlersuche #@(#) ________________________________________________________ #@(#)| usage: cpsta.ksh [options] | #@(#)| | #@(#)| Gibt den aktuellen Status der CP-Parameter zurueck. | #@(#)| Wird ein beliebiger Parameter mitgegeben, so werden | #@(#)| die Zaehler nicht zurueckgesetzt und der Output geht | #@(#)| nicht auf den Systemdruckre, sonder auf den Prompt. | #@(#)| | #@(#)| 07.04.2006 Markus Werner - V2.0 | #@(#)|________________________________________________________| # Lokale Parameter HOMEDIR=3D`dirname $0` # Homeverzeichnis CONFIG_FILE=3Dcpsta.cfg # Name Konfigurations-Datei DATE=3D$(date +"%Y-%m-%d.%H:%M:%S") # = Jahr-Monat-Tag.Std:Min:Sek PATH_LOG=3D"/opt/com/cpsta/log" # Pfad fuer Log-Dateien LOGFILE=3D"$PATH_LOG/cpsta.log" # Log-Datei PATH_TMP=3D"/opt/com/cpsta/tmp" # Pfad fuer Tmp-Dateien TMPFILE=3D"$PATH_TMP/$DATE.$$.tmp" # Tmp-Datei PATH_DATA=3D"/opt/com/cpsta/data" # Pfad fuer Daten-Dateien DATAFILE=3D"$PATH_DATA/$DATE.$$.data" # Daten-Datei SORTFILE=3D"$PATH_DATA/$DATE.$$.sort.data" # Zwischenablage zum Sortieren RESETFILE=3D"$PATH_DATA/reset.date" # Datum des letzten Reset AUTOUPDATE=3D"/opt/com/cpsta/bin/autoupdater.ksh" cd $HOMEDIR =20 # Lade Konfiguration if [ ! -r $CONFIG_FILE ] then echo "Kann Konfig-Datei $CONFIG_FILE nicht lesen" exit 1 fi # $HOMEDIR muss davor geschrieben werden, da ansonsten # das Script aus der crontab heraus nicht funktioniert! . $HOMEDIR/$CONFIG_FILE check_cp() # Funktion: Ermitteln, ob Station erreichbar { STAD=3D`/opt/fox/bin/tools/fist $1 | grep $1 |awk '{print $3}'` if [ $STAD !=3D "found" ] then # echo "CP is available...\c" flag=3D0 else echo "\n$1 is not available...\c" flag=3D1 fi } # =3D=3D=3D Hier gehts los mit dem Code =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D # Initialisierung und Pruefung von Vorbedingungen if [ ! -d $PATH_LOG ]; then mkdir -p $PATH_LOG; fi touch $LOGFILE; tail -$LOGLINES $LOGFILE > $LOGFILE.tmp; mv $LOGFILE.tmp $LOGFILE echo $(date +"%Y-%m-%d.%H:%M:%S") start >> $LOGFILE if [ ! -r $AUTOUPDATE ] then=20 echo $(date +"%Y-%m-%d.%H:%M:%S") Autoupdate nicht moeglich >> $LOGFILE else $AUTOUPDATE echo $(date +"%Y-%m-%d.%H:%M:%S") Suche nach neuen Updates >> $LOGFILE fi if [ ! -d $PATH_DATA ]; then mkdir -p $PATH_DATA; fi if [ -r $PATH_DATA/*.data ]; then rm $PATH_DATA/*.data; fi if [ ! -d $PATH_TMP ]; then mkdir -p $PATH_TMP; fi if [ -r $PATH_TMP/*.tmp ]; then rm $PATH_TMP/*.tmp; fi # Wurden Parameter mitgegeben? Dann auswerten. NORESET=3D0 if [ "$1" ]; then NORESET=3D1; fi if [ ! -r $RESETFILE ] then RESET=3D"no info" else RESET=3D`cat $RESETFILE` fi # Aufsetzen der Header Daten echo "" > $DATAFILE cp /dev/null $SORTFILE echo "Script: "$0 >> $DATAFILE echo "" >> $DATAFILE echo Station loading report as of: $(date +"%Y-%m-%d.%H:%M:%S") >> $DATAFILE echo " last reset on: $RESET" >> $DATAFILE echo "" >> $DATAFILE=20 echo "IDLETM =3D Idle Time; CUMOVR =3D Cmpnd/Blk Overruns; OMOVRN =3D = OM Overruns" >> $DATAFILE echo "PIOE1R =3D FB Retries; PIOEFT =3D Fault Tolerant Output = mismatches" >> $DATAFILE echo "PIOEGB =3D Good->Bad FBM state changes; PP_NFD =3D Points NOT = Found" >> $DATAFILE echo "\n CPs Report " >> $DATAFILE echo "-----------------------------------------------------------------" >> $DATAFILE echo "CPLBUG IDLETM CUMOVR OMOVRN PIOE1R PIOEFT PIOEGB PP_NFD" >> $DATAFILE # Ermitteln der Stationen sort /usr/fox/sp/hldb > $TMPFILE CP10=3D`awk '$2=3D=3D"201" {print $1}' $TMPFILE` CP30=3D`awk '$2=3D=3D"203" {print $1}' $TMPFILE` CP40=3D`awk '$2=3D=3D"205" {print $1}' $TMPFILE` CP60=3D`awk '$2=3D=3D"C101" {print $1}' $TMPFILE` ABST=3D`awk '$2=3D=3D"204" {print $1}' $TMPFILE` MOD2=3D`awk '$2=3D=3D"3002" {print $1}' $TMPFILE` MOD=3D`awk '$2=3D=3D"3005" {print $1}' $TMPFILE` FDG=3D`awk '$2=3D=3D"5002" {print $1}' $TMPFILE` GET=3D/opt/fox/bin/tools/omgetimp SET=3D/opt/fox/bin/tools/omsetimp if [ $NORESET -eq 0 ] then # Schleifenteil mit Ruecksetzen der Zaehler, da NORESET =3D 0 echo $(date +"%Y-%m-%d.%H:%M:%S") Reset >> $LOGFILE for x in $CP10 $CP30 $CP40 $CP60 $ABST $MOD2 $MOD $FDG do check_cp $x if [ $flag =3D "0" ] then $SET -v -i 0 "$x"_STA:STATION.LODPHS $SET -v -i 5 "$x"_STA:STATION.LODPER $SET -v -b TRUE "$x"_STA:STATION.LODSYN $SET -v -b TRUE "$x"_STA:STATION.LODSW sleep 6 $GET "$x"_STA:STATION.IDLETM | awk '{ a=3D"'$x'"}{printf "\n%-7s\t%5.1f",a,$3 }' >> $SORTFILE $GET "$x"_STA:STATION.CUMOVR | awk '{printf "\t%7d",$3 }' >> $SORTFILE $GET "$x"_STA:STATION.OMOVRN | awk '{printf "\t%7d",$3 }' >> $SORTFILE $GET "$x"_STA:STATION.PIOE1R | awk '{printf "\t%7d",$3 }' >> $SORTFILE $GET "$x"_STA:STATION.PIOEFT | awk '{printf "\t%7d",$3 }' >> $SORTFILE $GET "$x"_STA:STATION.PIOEGB | awk '{printf "\t%7d",$3 }' >> $SORTFILE $GET "$x"_STA:STATION.PP_NFD | awk '{printf "\t%3d",$3 }' >> $SORTFILE $SET -v -b TRUE "$x"_STA:STATION.RSOMOV sleep 1 $SET -v -b TRUE "$x"_STA:STATION.RESOVR sleep 1 $SET -v -b TRUE "$x"_STA:STATION.PIORST fi done echo "" >> $SORTFILE sort $SORTFILE >> $DATAFILE echo $(date +"%Y-%m-%d.%H:%M:%S") Ausgabe auf $SYSALMP >> $LOGFILE lp -d $SYSALMP $DATAFILE echo $(date +"%Y-%m-%d.%H:%M:%S") > $RESETFILE else # Schleifenteil ohne Ruecksetzen der Zaehler, da NORESET =3D 1 echo $(date +"%Y-%m-%d.%H:%M:%S") kein Reset aber Ausgabe auf Prompt >> $LOGFILE for x in $CP10 $CP30 $CP40 $CP60 $ABST $MOD2 $MOD $FDG do check_cp $x if [ $flag =3D "0" ] then $GET "$x"_STA:STATION.IDLETM | awk '{ a=3D"'$x'"}{printf "\n%-7s\t%5.1f",a,$3 }' >> $SORTFILE $GET "$x"_STA:STATION.CUMOVR | awk '{printf "\t%7d",$3 }' >> $SORTFILE $GET "$x"_STA:STATION.OMOVRN | awk '{printf "\t%7d",$3 }' >> $SORTFILE $GET "$x"_STA:STATION.PIOE1R | awk '{printf "\t%7d",$3 }' >> $SORTFILE $GET "$x"_STA:STATION.PIOEFT | awk '{printf "\t%7d",$3 }' >> $SORTFILE $GET "$x"_STA:STATION.PIOEGB | awk '{printf "\t%7d",$3 }' >> $SORTFILE $GET "$x"_STA:STATION.PP_NFD | awk '{printf "\t%3d",$3 }' >> $SORTFILE fi done echo "" >> $SORTFILE sort $SORTFILE >> $DATAFILE cat $DATAFILE fi echo $(date +"%Y-%m-%d.%H:%M:%S") end >> $LOGFILE exit 0 _______________________________________________________________________ This mailing list is neither sponsored nor endorsed by Invensys Process Systems (formerly The Foxboro Company). Use the info you obtain here at your own risks. Read http://www.thecassandraproject.org/disclaimer.html foxboro mailing list: //www.freelists.org/list/foxboro to subscribe: mailto:foxboro-request@xxxxxxxxxxxxx?subject=join to unsubscribe: mailto:foxboro-request@xxxxxxxxxxxxx?subject=leave