X-418 Ethernet ADC

X-418™ Web-Enabled, Multi-Function 8-Channel Analog Input Module

In diesem Beispiel wird er zum Auslesen von Vakuumsensoren verwendet und daher neu kalibriert.

Das X-418™ ist ein voll ausgestattetes Ethernet-Modul mit einem analogen Datenerfassungssystem mit 8 Kanälen und 16 Bit. Konfigurieren Sie jeden Kanal als Single-Ended- oder Differenzeingang.

Überwachen und protokollieren Sie die an den Analogeingängen angeschlossenen Sensoren über die intuitive Web-Oberfläche des X-418. Es kann über jedes TCP/IP-Netzwerk gesteuert und/oder überwacht werden, einschließlich privater Netzwerke, IP-basierter industrieller Steuerungsnetzwerke und dem Internet.

https://www.controlbyweb.com/x418/

https://www.controlbyweb.com/x400/x-400_users_manual.pdf

In der Schnittstelle des X-418 muss Modbus eingeschaltet sein.

Dieses Beispiel ist für einen DAC, bei dem der erste Kanal ausgelesen wird. Sie können gerne weitere Kanäle hinzufügen.

Sie benötigen eine EPICS-Basis sowie Aysn und das Modbus-Modul. https://github.com/epics-modules/modbus

Zuerst müssen Sie einen neuen IOC erstellen. Bearbeiten Sie dann Ihre st.cmd und fügen Sie diese Zeilen hinzu.

# Use the following commands for TCP/IP
#drvAsynIPPortConfigure(const char *portName,
# const char *hostInfo,
# unsigned int priority,
# int noAutoConnect,
# int noProcessEos);
drvAsynIPPortConfigure("VAC0","xxx.xxx.xxx.xxx:502",0,0,1)
#drvAsynIPPortConfigure("VAC1","xxx.xxx.xxx.xxx:502",0,0,1)
#modbusInterposeConfig(const char *portName,
# modbusLinkType linkType,
# int timeoutMsec,
# int writeDelayMsec)
modbusInterposeConfig("VAC0",0,2000,0)
#modbusInterposeConfig("VAC1",0,2000,0)


#read Modbus value
#drvModbusAsynConfigure(portName, tcpPortName, slaveAddress, modbusFunction, modbusStartAddress, modbusLength, dataType, pollMsec, plcType)
drvModbusAsynConfigure("VAC0_1", "VAC0", 1, 3, 0x00, 2, 7, 100, "vac0")
#drvModbusAsynConfigure("VAC0_2", "VAC0", 1, 3, 0x02, 2, 7, 100, "vac0")
#drvModbusAsynConfigure("VAC0_3", "VAC0", 1, 3, 0x04, 2, 7, 100, "vac0")
#drvModbusAsynConfigure("VAC0_4", "VAC0", 1, 3, 0x06, 2, 7, 100, "vac0")

#drvModbusAsynConfigure("VAC1_1", "VAC1", 1, 3, 0x00, 2, 7, 100, "vac1")

## Load record instances
#dbLoadRecords("db/xxx.db","user=epics")
dbLoadRecords("db/modbus.db","P=AEI")

Dann müssen Sie das Makefile im src-Ordner bearbeiten.

hanvac_DBD += base.dbd
hanvac_DBD += asyn.dbd
hanvac_DBD += modbusApp.dbd

hanvac_LIBS += asyn
hanvac_LIBS += modbus

Im db-Ordner müssen Sie auch das Makefile bearbeiten.

DB += modbus.db

Erstellen Sie am Ende die modbus.db mit diesem Inhalt:

# ai record template for register inputs
record(ai, "$(P):VAC0_1_RAW") {
field(DTYP,"asynFloat64")
field(INP,"@asyn(VAC0_1)FLOAT32_LE")
field(SCAN,"1 second")
}

# THERMOVAC Transmitter TTR 911 N
# cali V_out = log10 (P_mbar) x 1.286 + 6.143

record(calc, "$(P):VAC0_1") {
field(DESC, "Presure")
field(SCAN,"1 second")
field(CALC, "10^((A-6.143)/1.286)")
field(INPA, "$(P):VAC0_1_RAW.VAL")
field(EGU, "mbar")
}
Page last modified on February 11, 2021, at 02:45 PM
Powered by PmWiki