We would like to connect a CO2 Engine® ELG sensor to a CR1000x logger but we are having some troubles so far.
The modbus specifications for this sensor can be found under the following link:
We are programming the logger in CRBasic, you can find the program below:
Public PTemp, Batt_volt Public GHGconc As Long Public Result As Float 'Declare Private Variables 'Example: 'Dim Counter 'Define Data Tables. DataTable (Your_Table,1,-1) 'Set table size to # of records, or -1 to autoallocate. DataInterval (0,10,Sec,10) Minimum (1,Batt_volt,FP2,False,False) Sample (1,PTemp,FP2) Sample (1,Result,FP2) Average (1,GHGconc,FP2,False) EndTable 'Define Subroutines 'Sub 'EnterSub instructions here 'EndSub 'Main Program BeginProg SerialOpen (ComC7,9600,19,0,50,2) Scan (5,Sec,0,0) ModbusMaster (Result,ComC7,9600,254,4,GHGconc,4,1,2,50,1) PanelTemp (PTemp,60) Battery (Batt_volt) 'Enter other measurement instructions 'Call Output Tables 'Example: CallTable Your_Table NextScan EndProg
I don't get any error (Result =0), but i don't get a functional connection either. When i check the comport using device config utility (--> terminal), i get following output:
21:09:50.036 T FE 04 00 03 00 01 D5 C5 ........ 21:09:50.048 R FE 04 00 03 00 01 D5 C5 ........
The received signal is just an echo of the transmitted signal.
Moreover, the slave address does not affect the result.. And when i unplug (cut power, only UART connection) the sensor it still produces a response, but fairly random (no exact echo).
The sensor works fine when we connect it to the computer using a TTL-232R-3V3-cable (data can be visualised using a piece of software). So the sensor and modbus module work.