사용자 도구

사이트 도구

English

ct1820:sample_11_온도콘트롤러와_연결:index

SAMPLE 10: 온도콘트롤러와 연결

CT1820 으로 여러곳의 온도를 제어하는 시스템을 꾸미고자할 때, 온도센서와 CT1820 을 연결하는 방법에서 문 제가 생깁니다. 온도센서를 직접 CT1820 과 연결할 수 없기 때문입니다.

이때에는 온도센서보다는 저가의 온도콘트롤러를 연결하는 것이 훨씬 효율적입니다. 통신기능을 갖춘 온도콘트 롤러와 CT1820 을 RS485 로 연결하여, 온도콘트롤러로부터 현재온도와 설정온도등의 정보를 불러와 화면에 표 시하고, 조정하도록 할 수 있습니다.

다음은 오토닉스 온도콘트롤러와 CT1820 을 연결하도록 한 소스 프로그램입니다. 모드버스 RTU 프로토콜을 사 용합니다.

#include "CT18XX"
Dim I As Integer
Dim TX1 As Integer, TY1 As Integer
Dim Txb(80) As Byte
Dim MBRdata(32) As Byte
Dim Crcres As Integer
Dim PV As Integer
Dim SV As Integer
Dim SV2 As Integer
Dim PrtV As String * 6
Ramclear
Set Rs232 3,19200,3 ' 위에 Inlcude 에서 이미 오픈해두었기에, 보레이트만 조정한다.
On Pad Gosub GETTOUCH
Font 2,0
Menuset 0,2,200,95,250,120
Menutitle 0,17,4,"UP"
Menuset 1,2,255,95,305,120
Menutitle 1,11,4,"DOWN"
'
' 도씨 캐릭터정의
'
Defchr &HDB30,_
 &H00,&H00,&H30,&H00,&H48,&H00,&H48,&H00,_
 &H30,&HE0,&H01,&H10,&H02,&H00,&H02,&H00,_
 &H02,&H00,&H02,&H00,&H02,&H00,&H01,&H10,_
 &H00,&HE0,&H00,&H00,&H00,&H00,&H00,&H00
Ct18contrast 150 ' LCD CONTRAST SETTING
Font 2,0
Locate 2,2
Print "현재온도" 
119
Locate 25,2
Print "설정온도"
Do
 ' 설정온도
 MBreadReg 3,1,1003,1
 Delay 50
 If Blen(3,0) > 5 Then
 Geta 3,MBRdata,5
 SV = MBRdata(3) *256 + MBRdata(4)
 SV2 = SV
 PrtV = Dp(SV/10,3,0) + "." + Dp(SV mod 10, 1,0)
 Locate 25,3
 Print PrtV,Chr(&HDB30)
 Bclr 3,2
 Endif
 ' 현재온도
 MBreadReg 3,1,1000,1
 Delay 50
 If Blen(3,0) > 5 Then
 Geta 3,MBRdata,5
 PV = MBRdata(3) *256 + MBRdata(4)
 PrtV = Dp(PV/10,3,0) + "." + Dp(PV mod 10, 1,0)
 Locate 2,3
 Print PrtV,Chr(&HDB30)
 Bclr 3,2
 Endif
 
 ' 가열측 조작량
 MBreadReg 3,1,1004,1
 Delay 50
 If Blen(3,0) > 5 Then
 Geta 3,MBRdata,5
 PV = MBRdata(3) *256 + MBRdata(4)
 Locate 2,6
 Print "가열측 조작량"
 PrtV = Dp(PV/10,3,0) + "." + Dp(PV mod 10, 1,0)
 Locate 3,7
 Print PrtV,"%"
 Bclr 3,2
 Endif
 Delay 200
Loop
 
GETTOUCH:
TX1 = Sys(10)
TY1 = Sys(11)
 
' UP KEY
If Menucheck(0,TX1,TY1) = 1 Then
 Menureverse 0 
 Ct18beep 20 '키터치음 발생
 SV2 = SV2 + 10
 MBWriteSingleReg 3,1,0,SV2
 Delay 50
 Bclr 3,2
 Menureverse 0
End If
 
' DOWN KEY
If Menucheck(1,TX1,TY1) = 1 Then
 Menureverse 1
 Ct18beep 20 '키터치음 발생
 SV2 = SV2 - 10
 MBWriteSingleReg 3,1,0,SV2
 Delay 50
 Bclr 3,2
 Menureverse 1
End If
Return
 
End
 
Sub MBreadReg(_MBch As Byte, _MBslave As Byte,_MBadr As Integer,_MBlen As Integer)
 Txb(0) = _MBslave
 Txb(1) = 4
 Txb(2) = _MBadr.Byte1
 Txb(3) = _MBadr.Byte0
 Txb(4) = _MBlen.Byte1
 Txb(5) = _MBlen.Byte0
 Getcrc Crcres,Txb,6
 Txb(6) = Crcres.Byte1
 Txb(7) = Crcres.Byte0
 Puta _MBch,Txb,8
End Sub
 
Sub MBWriteSingleReg(_MBch As Byte, _MBslave As Byte,_MBadr As Integer,_MBdata As Integer)
 Txb(0) = _MBslave
 Txb(1) = 6
 Txb(2) = _MBadr.Byte1
 Txb(3) = _MBadr.Byte0
 Txb(4) = _MBdata.Byte1
 Txb(5) = _MBdata.Byte0
 Getcrc Crcres,Txb,6
 Txb(6) = Crcres.Byte1
 Txb(7) = Crcres.Byte0
 Puta _MBch,Txb,8
End Sub 

소스를 보시면 온도 (섭씨)기호를 표시하기 위해 Defchr 을 사용해서 코드 &hdb30 에 할당한 것을 보실 수 있습 니다. 이 그림은 자료실에 있는 픽셀 스튜디오를 이용해서 그린것입니다.

ct1820/sample_11_온도콘트롤러와_연결/index.txt · 마지막으로 수정됨: 2016/04/19 03:25 저자 Comfile Technology