====== AN32007 - UIF-5K와 큐블록 연결 ====== UIF-5K 는 큐블록 MSB 시리즈용 유저인터페이스로도 훌륭합니다. 다음은 큐블록 MSB의 입출력기능 (AD 포함)을 UIF-5K를 가지고 실험하는 프로그램입니다. {{ :cublocapp:an32007:uif-5k.jpg?nolink |}} UIF-5K 전면 스위치에 다음과 같은 기능을 할당해 놓았습니다. F1 : Output State, F2 : Input State, F3 : 0~20mA State, F4 : 0~10V State, F5 : Home 결선은 다음과 같이 하였습니다. {{ :cublocapp:an32007:msbuifdiagram.jpg?nolink |}} ===== 소스 프로그램 ===== {{ :cublocapp:an32007:msb_uif5k.zip |}} #include "MSB6XX" Dim RX_KEY As Integer Dim i As Integer Dim P_inout As Integer Opencom 1, 115200, 3, 30, 20 Set Uif 2, 1 On Recv1 Gosub ABC Ramclear Cls Delay 200 'CLCD 클리어 완료 지연시간 Print 27, 90, 1 '부저 ON Csroff '커서 on/off HOME_DISPLAY Do '### 입력 P8,9,10,11을 읽어 P32,33,34,35으로 출력 ### For i=8 To 11O P_inout = In(i) If P_inout = 1 Then High(i+24) Elseif P_inout = 0 Then Low(i+24) Delay 10 Next Display_main Loop '### UIF-5K이의 스위치가 눌렸을때 실행되는 인터럽트 함수 ### ABC: RX_KEY=Get(1,1) Cls Delay 100 Display_main Return '### 발생된 키번호의 DISPLAY PAGE 선택 ### Sub Display_main () Select Case RX_KEY Case 1 F1_OUTPUT Case 2 F2_INPUT Case 3 F3_AD_0_20mA Case 4 F4_AD_0_10VDC Case 5,0 HOME_DISPLAY End Select Delay 100 End Sub '#### HOME F5키 발생시 DISPLAY ### Sub HOME_DISPLAY () Locate 0,0 Print "==[MSB612 DISPLAY]==" Locate 0,1 Print " F1:Output F2:Input "" Locate 0,2 Print " F3:0-20mA F4:0-10V"" Locate 0,3 Print " F5:HOME " End Sub '#### OUTPUT STATE F1키 발생시 DISPLAY ### Sub F1_OUTPUT () Dim on_off As Byte Locate 0,0 Print "===[OUTPUT STATE]===" Locate 0,1 Print " OUTPUT PORT" Locate 0,2 Print " " Locate 0,2 Print " =>" For i=32 To 35 on_off = Outstat(i) '출력상태를 읽어옴 If on_off = 1 Then '출력상태의 포트를 표시함 Print Dec i Print " " Endif Next End Sub '#### INPUT STATE F2키 발생시 DISPLAY ### Sub F2_INPUT () Dim IN_ON As Byte Locate 0,0 Print "===[INPUT STATE]===" Locate 0,1 Print " INPUT PORT" Locate 0,2 Print " " Locate 0,2 For i=8 To 15 IN_ON = In(i) '입력상태를 읽어옴 If IN_ON = 1 Then '입력이 HIGH상태의 포트를 표시함 Print Dec i Print " " Endif Next End Sub '#### 0~10VDC F3키 발생시 DISPLAY ### Sub F3_AD_0_20mA () Dim AD_VAL As Integer Cls Delay 5 Locate 0,0 Print "===[0-20mA STATE]===" Locate 0,2 AD_VAL = Adin(0) 'ADC 상태 값을 읽어옴 Print " AD0:", Dec AD_VAL '변수 AD_VAL값을 LCD에 표시함 Locate 11,2 AD_VAL = Adin(1) Print "AD1:", Dec AD_VAL Locate 0,3 AD_VAL = Adin(2) Print " AD2:", Dec AD_VAL Locate 11,3 AD_VAL = Adin(3) Print "AD3:", Dec AD_VAL End Sub '#### 0~10VDC F4키 발생시 DISPLAY ### Sub F4_AD_0_10VDC () Dim AD_VAL As Integer Cls Delay 5 Locate 0,0 Print "===[0-10VDC STATE]===" Locate 0,2 AD_VAL = Adin(4) Print " AD4:", Dec AD_VAL Locate 11,2 AD_VAL = Adin(5) Print "AD5:", Dec AD_VAL Locate 0,3 AD_VAL = Adin(6) Print " AD6:", Dec AD_VAL Locate 11,3 AD_VAL = Adin(7) Print "AD7:", Dec AD_VAL End Sub ===== 실행 동영상 =====
[[cublocapp:index|큐블록 어플리케이션 노트]]