Database-Based-Driver: Difference between revisions
Jump to navigation
Jump to search
| Line 52: | Line 52: | ||
'''Command DB Table Line Structure:''' | ControllerType | Command | Address | 16 |RegisterHigh | RegisterLow | 2 | DataHigh | DataLow | 0 | 0 | CRCLow | CRCHigh | '''Command DB Table Line Structure:''' | ControllerType | Command | Address | 16 |RegisterHigh | RegisterLow | 2 | DataHigh | DataLow | 0 | 0 | CRCLow | CRCHigh | ||
Procedure: | |||
*1 - Calculate all the values and place them in the results table | |||
Revision as of 08:27, 19 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
DataBase Design
Example:
- ControllerType = set64rs
- Command = WriteTemperature
Command DB Table Line Structure: | ControllerType | Command | Address | 16 |RegisterHigh | RegisterLow | 2 | DataHigh | DataLow | 0 | 0 | CRCLow | CRCHigh
Procedure:
- 1 - Calculate all the values and place them in the results table