'Log weight output from a Mettler-Toledo MS8001TS balance via Serial interface (RS232) 'On the balance in Settings > General configuration > Devices and connectivity, set RS232 to "PC-Direct". 'Uploaded by Markus Nolf, m.nolf@westernsydney.edu.au 'Declare Variables and Units Public Datastream As String * 50 Public ID As String *2 Public Status As String *2 Public Weight Public Unit As String *2 Public Batt Public PTemp 'Define Data Table DataTable(Weights,True,-1)) 'Set interval for recording data to 5 min DataInterval(0,5,min,10) Sample(1,Weight,IEEE4) Sample(1,Unit,String) Sample(1,Batt,IEEE4) Sample(1,PTemp,IEEE4) EndTable BeginProg 'Open serial connection to balance SerialOpen(Com1,9600,3,0,1000) 'Start a reading every 5 seconds Scan(5,sec,3,0) 'Request weight value immediately (i.e. non-stable value) SerialOut(Com1,"SI"&CHR(13)&CHR(10),0,1,0) Delay(0,100,mSec) SerialIn(Datastream,Com1,100,10,50) 'Output example = "S D WeightValue Unit" ' characters: 1-2.1. 10 .1-X ID = Trim(Left(Datastream,2)) Status = Trim(Mid(Datastream,3,1)) Weight = Trim(Mid(Datastream,4,12)) ' remove 4 characters from beginning Unit = Trim(Mid(Datastream,15,10)) Battery(Batt) 'Datalogger Battery Voltage PanelTemp(PTemp,_50Hz) 'Wiring Panel Temperature CallTable Weights NextScan EndProg