Database-Based-Driver: Difference between revisions
Jump to navigation
Jump to search
| Line 41: | Line 41: | ||
* Generic write SET VALUE: | ModBusAddress | TemperatureValue | | * Generic write SET VALUE: | ModBusAddress | TemperatureValue | | ||
* | * Specific write SET VALUE: | Address | 16 |RegisterHigh | RegisterLow | 2 | DataHigh | DataLow | 0 | 0 | CRCLow | CRCHigh | ||
Revision as of 16:24, 17 June 2010
- User SQL to make flexible driver that can be loaded
Public Sub Write_Set_Value(Address As Byte, SetTemperature As Integer)
Dim X() As Long
Dim ArraySize As Integer
Dim TemperatureHighByte As Integer
Dim TemperatureLowByte As Integer
Dim TemperatureRegister As Integer
Dim AlreadySetTemperature As Integer
If DebugFlagNot = True Then On Error Resume Next
TemperatureRegister = SetTemperature '--Controller already set to this temperature > exit
AlreadySetTemperature = Read_Set_Value(Address)
If SetTemperature = AlreadySetTemperature Then Exit Sub
If TemperatureRegister < 0 Then
TemperatureRegister = 2 ^ 15 + TemperatureRegister
TemperatureHighByte = HiByte(CLng(TemperatureRegister)) + 128
TemperatureLowByte = LoByte(CLng(TemperatureRegister))
Else
TemperatureHighByte = HiByte(CLng(TemperatureRegister))
TemperatureLowByte = LoByte(CLng(TemperatureRegister))
End If
WriteTwoBytes Address, 0, 0, TemperatureHighByte, TemperatureLowByte
End Sub
WriteTwoBytes
MetaLevel
ModBusAddress TemperatureValue
Example Implementation:
- Public Sub WriteTwoBytes(Address As Byte, RegisterHigh As Integer, RegisterLow As Integer, DataHigh As Integer, DataLow As Integer)
| Address | 16 |RegisterHigh | RegisterLow | 2 | DataHigh | DataLow | 0 | 0 | CRCLow | CRCHigh
- Generic write SET VALUE: | ModBusAddress | TemperatureValue |
- Specific write SET VALUE: | Address | 16 |RegisterHigh | RegisterLow | 2 | DataHigh | DataLow | 0 | 0 | CRCLow | CRCHigh