Microsoft Word - EasyView_V30 2권-스크립트 메뉴얼_091030

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Microsoft Word - EasyView_V30 2권-스크립트 메뉴얼_091030"

Transcription

1 Juin EasyView V3.0 스크립트매뉴얼 등록상표 Juin EasyView, Juin EasyWeb은상표법에의하여서비스표등록원부에등록되었습니다. 사용자매뉴얼에대한저작권 Copyright c Juin Information System All right reserved. 본문서전체또는내용의일부를무단으로복사하거나배포하는것은저작권에위배됩니다. 저작권을침해하는자는손해배상의책임을지게됩니다. 모든저작권, 특허권등은해당법률에의하여보호를받습니다. 소프트웨어에대한저작권 EasyView는컴퓨터프로그램보호법에의하여저작권이보호되어있으며무단복제또는배포하는경우관련법규에의하여처벌을받을수있습니다. 매뉴얼유지보수본문서는 EasyView V3.0를기준으로만들어졌으며본문서의기술적, 정보적자료는 Release Note나새로운개정판을통하여사전통고없이변경될수있습니다. 본문서는정기적으로점검되며개선사항이발생되면다음개정판에적용되도록할것입니다. 개선사항이있으면언제든지연락주십시오. 소프트웨어유지보수 Juin EasyView V3.0는사용자의요구나회사의필요에따라사전통고없이변경될수있으며의문사항이있을시에는서문에기술되어있는연락처로문의하십시오.

2 제품구성 / 제품번호 설명 제품명 제품번호 출시일자 소프트웨어 Juin EasyView V3.0 EVK 년 07월 사용자매뉴얼 Juin EasyView 사용자매뉴얼 V3.0 EVMK 년 07월 제품소개서 Juin EasyView 제품소개서 V3.0 EVPK 년 07월 저장매체 Juin EasyView CD V3.0 EVDK 년 07월

3 서문 매뉴얼의목적본매뉴얼은사용자에게다음과같은내용을제공하여 EasyView를이용한산업자동화를효율적으로구축하게합니다. - EasyView에대한전반적인구성및개념 - EasyView에대한개략및상세기능설명 - EasyView의기능에따른상세작업절차사용자가원하는정보를목차와색인을이용하여신속하게찾을수있습니다. 사용자인터페이스방식 EasyView는 UI(User Interface) 창에키보드, 마우스클릭, 마우스의 Drag&Drop 방식을통하여사용자가원하는값을입력하고, 작업을수행할수있도록해줍니다. 사용자가 EasyView로작업하는중발생될수있는메시지형태는아래와같습니다. 에러 : 이표시는적절한조치를취하지않을경우더이상의작업이불가능. 예 ) 엔진이구동되지않는상태에서그래픽감시를실행시켰을경우. 엔진이태그정보를로딩하는동안에러가발생할때. 프로젝트관리자가설정한사용자이름이나비밀번호가틀릴경우. 경고 : 소프트웨어가요구하는값과사용자가사용하고자하는값이일치하지않을경우. 예 ) 화면을프린터로하드카피할때프린터가설정되지않은경우. 스크립트파일을컴파일하여에러가발생할경우. 태그파일을임포트할때태그정보가올바르지않은경우. 확인 : 사용자의확인을요구. 예 ) 태그의출력을 ON/OFF 하는경우. 시스템빌더에서프로젝트를삭제할경우. 변경된자료를저장하는경우.

4 정보 : 사용자가요구한작업의결과를알림. 예 ) 하드카피가성공적으로완료된경우. 태그정보의임포트나익스포트가완료된경우. 사용자필요지식 / 교육 EasyView는사용자가본매뉴얼에따라직접쉽게설치, 구축, 운영할수있으나산업자동화, MS Window, HMI(Human Mchine Interface) 등에관한기본적인지식은완성도가높은운영환경을구현하는데도움이될수있습니다. 사용자의요청시본사의규정에따라교육을제공할수있습니다. 요구시스템 - O/S : Windows NT/2000/XP/ H/W : Pentium 이상, VGA 32MB, RAM 128MB, Hard Disk 20GB - Utility Program : DB 인터페이스를하기위해서는해당 DB가설치되어있어야하고, 보고서출력시기본보고서가제공되나엑셀보고서기능을사용하기위해서는 MS Office가설치되어있어야합니다. 운영상유의사항 - EasyView가구동되고있는서버또는 PC에서특정요인에의하여과부하가발생하면시스템에영향을미칠수있으므로다른 Application Program 사용을주의하여야합니다. - 실제운영시스템에서개발할경우, 운영중인시스템에영향을주지않도록주의하여야합니다. 운영지원여부사용자가 S/W를사용중에 S/W 장애를발견, 보안요청시 7일이내에처리됩니다. 단, S/W를구매한시점이 1년을넘지않는경우에무료이며사용자는장애에대한자세한정보를제공하여야합니다.

5 제품구매시선택사항 제품명 Point Point 64 Point 128 Point 개발자용 (Development) 256 Point 512 Point 1024 Point EasyView Unlimited Point 64 point 128 point 실행용 (Runtime) 256 point 512 point EasyWeb WEB Server ( 기본 2Users) 1024 point Unlimited point 512 Point 1024 Point Unlimited Point 1 Site Unlimited User 연락처기술적또는영업적인문의사항이있을시에는아래로연락하시기를바랍니다. - 전화 : +81) FAX : +81) 기타사항은

6

7 목 차 1. 스크립트 스크립트개요 스크립트개요 스크립트소개 스크립트기능 스크립트문법 변수선언 ) Dim AS 제어문 ) if 문 ) for ) do ) while ) goto ) until 함수 ) sub ) end 표준함수 ) modulus ) pi ) sin ) cos ) tan

8 6) atan ) asin ) acos ) sqr ) hypot ) pow ) abs ) exp ) log ) log ) rand ) Now ) SetTime ) GetDayOfMonth ) GetNextTime ) SetLocalTime ) GetElapsedTime 문자열을다루는함수 ) StringLen ) StringRemove ) StringReplace ) StringMid ) StringLeft ) StringRight ) StringCompare ) StringTrimLeft ) StringTrimRight ) StringMakeUpper ) StringMakeLower ) ToChar ) Hex ) MakeNumToString ) MakeStringToInt ) MakeStringToFloat

9 17) BitAnd ) BitOr Database 관련함수 ) SQLConnect ) SQLDisconnect ) SQLSelect ) SQLNumRows ) SQLNumFields ) SQLFirst ) SQLNext ) SQLLast ) SQLPrev ) SQLGetData ) SQLExecute ) RegisterOdbcDataSource 태그관련 ( 입출력 ) 함수 ) OutputDo ) OutputDi ) OutputAo ) OutputAi ) OutputSi ) OutputBlock ) SetDiValue ) SetAiValue ) SetStrValue ) GetAiValue ) GetDiValue ) SetTagProperty ) GetAiADValue ) GetAoADValue 파일과디렉토리함수 ) GetPrivateProfileString

10 2) WritePrivateProfileString ) FileExist ) GetFileList ) GetFileName ) CopyFile ) CreateDirectory ) Execute ) CloseWindow ) FileDump ) OpenFile ) SeekFile ) ReadLine ) WriteFile ) Execute ) GetSysTemDirectory 엑셀관련함수 ) OpenExcelFile ) SetActiveSheet ) SetCellValue ) PrintExcelFile ) SaveExcelFile ) CloseExcelFile 기타함수 ) PasswordDialog ) IputDialog ) CopyScanBuffer ) ClearScanBufferW ) ClearScanBufferB ) GetTickCount ) RGB ) PlaySound ) StopSound ) GetLoginId / GetUserPw / GetLoginIdLevel

11 11) SetObjectLock ) GetUnAckedAlarmCount ) Beep ) PlayWave ) Msgbox ) MessageBox 시스템접근용메소드 ) 기본알람그룹에속한알람발생개수참조 ) 프로젝트의태그개수참조 ) 프로젝트에서발생한알람개수참조 ) 태그의 Active 상태참조및설정 ) 그래픽 Object 의속성설정 ) GetNodeType ) GetNodeName ) GetInstallPath ) GetProjectName ) 시스템에등록된 I/O 디바이스명가져오기 메모리태그의태그포인터기능 태그속성참조 ) 태그값참조및설정 리스트컨트롤관련함수 ) GetItemCount ) InsertItem ) SetItemText ) SetRedraw ) SetItemCount ) SetTextColor ) SetBackColor ) EnsureVisible ) SortData ) DeleteItemAllItems ) GetItemText

12 12) DeleteItem ) Invalidate ) GetSelectionMark ) GetColumnCount ) DeleteColumn ) InsertColumn ) DeleteItemAllColumns 그래픽관련스크립트 도면이동및그래픽객체제어 ) movepage ) popuppage ) moveprotopage ) popupprotopage ) chgtagprefix ) closepage ) setalarmgroup ) ChangeProject ) HardCopy ) SetHTrend ) SetFocusObject ) SetFocusPage ) SetPagePos ) NavigateBrowserCtrl ) FindWindow ) ShowWindow ) SetWindowText ) SetPageLayer 부록 용어정리 INDEX

13 부록. 용어정리, INDEX

14

15 1. 스크립트

16 - 목차 1.1 스크립트개요 1.2 스크립트문법 1.3 그래픽관련스크립트 1-1

17 1.1 스크립트개요 스크립트소개스크립트란간단한프로그램을할수있는일종의컴퓨터프로그램언어를말하며, EasyView 자체적으로여러가지기능을제공하는스크립트를가지고있다. 엔진의태그연산에대한부담을분산시키면서다양한기능을수행할수있다 스크립트기능스크립트는태그값을변경하는기본기능에서부터데이터베이스관리, 레포트기능, 그래픽감시제어등의기능을가지고있다. [ 그림 1.1-1] 시스템빌더에서사용할수있는스크립트 - 메인스크립트 : 엔진이가동중일때실행될수있는스크립트로엔진시작시, 실행중, 종료시로구분되어사용된다. - 조건문스크립트 : 사용자가스크립트실행조건을편집하여조건이만족하면실행문스크립트가실행된다. - 태그값변화스크립트 : 지정한태그값이변화되면스크립트가실행된다. - 라이브러리 : 단독으로실행될수없고다른스크립트에서사용할수있도록작성한서브스크립트이다. - 도면스크립트 : 사용자가제작한그래픽도면이실행될때실행되는스크립트로도면이시작시, 실행중, 종료시로구분되어사용된다. 사용자가작성한모든스크 1-2

18 립트는 EasyView 설치폴더 /Projects/ 프로젝트 /Script 폴더에저장되지만도면스크립트는각각의도면 *.jcg 파일에저장된다. 도면파일은 EasyView 설치폴더 /Projects/ 프로젝트명 /Graphic 폴더에저장된다. - 스크립트테스트 : 사용자가스크립트를작성하면서테스트할수있는기능이다. [ 그림 1.1-2] 그래픽빌더에서사용할수있는스크립트 그래픽빌더에서객체속성을지정할때 누를때 속성에서스크립트를작성할수있다. 누를때스크립트는사용자가객체를누를때실행된다. 1-3

19 1.2 스크립트문법 변수선언변수는 integer 형과 float(double) 형, string 형, time 형을선언할수있다. Integer 형은 dim aa as integer, float 형은 dim bb as float, string 형은 dim ss as string, time 형은 dim tm as time 로선언한다. 변수가선언되면선언된각각의변수값은 0 으로초기화된다. (string 형은빈문자열 ) integer 형은 4byte 의정수, float 형은 8byte 의 double 형을의미한다. 1 값의범위 - integer 형 : 2,147,483,648 ~ 2,147,483,647 - float 형 : 1.7E +/- 308 (15 자리 ) - string 형 : 최대 512 문자 - time 형 : 년, 월, 일, 시간, 분, 초값을가질수있다. time.year 년 time.month 월 time.day 일 time.hour 시 time.minute 분 time.second 초 2 뒤에태그명을적어주면된다. : 태그명 AI_AW1 를참조한다. = 567 : 태그 AI_AW1 에 567 를출력한다. 태그 AI_AW1 가디지털태그이면 1 또는 0 을넣어준다. (1 = ON, 0 = OFF) 만일, 참조한태그가입력태그 (AI, DI, STRING) 이면태그값을바꿔주고, 참조한태그가출력태그 (DO, AO, 입출력겸용 DI, 입출력겸용 AI, STRING) 이면태그의설정된디바이스로출력작업을수행한다. 3 아날로그태그의알람설정값사용 -> hihi 값사용 -> high 값사용 -> low 값사용 -> lolo 값사용 알람값은대입문 (=) 에는사용할수없고참조만할수있다. 1-4

20 예 then hihi 알람이발생했을때 else hihi 알람이발생하지않았을때 endif = 100 사용할수없다. 1-5

21 1) Dim AS 변수와변수의형식을선언한다. 주의 ) Dim 문은사용하는스크립트내에서가장먼저정의되어야한다. Dim varname [AS type] 인자 varname : 변수이름 대소문자구분 type : 변수형식, (Integer, Float, String, Time 중하나 ) 참고변수의형식은동적으로변경할수없다. 모든변수는 DIM 문으로선언후사용해야한다. 예제 Dim a as Integer a = 100 ' a 는정수이며 10 이다. a = 3.14 ' a 는정수이며 3 이다. a = "Hello" ' a 는정수이며 0 이다. Dim a ' 잘못된선언문 Dim a as Integer ' OK Dim a, b as Integer ' OK ( 콤마로구분하여여러변수를동시에선언할수있다.) Dim a, b as Integer; ' OK ( 문장의끝을지정하기위해명시적으로세미콜론을지정할수있다.) 1-6

22 1.2.2 제어문 1) if 문 IF 조건문형식 If 조건문 Then 실행문 [Else else 실행문 ] 또는, If 조건문 Then 실행문 [Else else실행문 ] End If 또는 if 조건문 1 then 실행문1 else if 조건문 2 then 실행문2 else if 조건문 3 then 실행문3 endif; endif; endif; 인자조건문참과거짓을판변하는표현식 실행문, 실행문 해당조건이참일때, 실행되는표현식 else 실행문, else 실행문 해당조건이거짓일때, 실행되는표현식 1-7

23 참고 If a = 0 Then MsgBox "OK" If (a = 0) or (b = 0) Then c = c - 1 Else c = c + 1 Endif If a = 0 Then b = 0 c = 0 Else b = 1 c = 1 End IF If a = 0 Then If b = 0 Then c = 0 Else c = 1 End IF End IF If a = 3 Then MsgBox "3"; Else If a = 2 Then MsgBox "2"; Else If a = 1 Then MsgBox "1"; EndIf; EndIf; EndIf; 1-8

24 예제 Dim x1 As Integer If (x1 = 1) = 1 Then MsgBox "OK"; Else MsgBox "Fail"; End If => MsgBox "Fail" =========================================================== Dim x1 As Integer x1 = 1; If x1 = 1 Then MsgBox "OK"; Else MsgBox "Fail"; End If => MsgBox "OK" =========================================================== Dim x As Integer Dim y As Integer x = 1; y = 1; If x = 1 And y = 1 Then MsgBox "OK"; Else MsgBox "Fail"; End If 1-9

25 => MsgBox "OK" =========================================================== Dim x As Integer Dim y As Integer x = -1; y = 1; If Abs(x) = 1 Then MsgBox "OK"; Else MsgBox "Fail"; End If => MsgBox "OK" ============================================================ Dim upperstring as String; upperstring = "abcd"; If StringMakeUpper(upperString) = "ABCD" Then MsgBox "OK"; Else MsgBox "Fail"; EndIf => MsgBox "OK" ============================================================ Dim upperstring as String; upperstring = "ABCD"; 1-10

26 If StringMakeLower(upperString) = "abcd" Then MsgBox "OK"; Else MsgBox "Fail"; EndIf => MsgBox "OK" ============================================================ Dim x1 As Integer x1 = 1; If x1 Then MsgBox "OK"; Else MsgBox "Fail"; End If => MsgBox "OK" ============================================================ Dim x1 As Integer; x1 = 0; If x1 Then MsgBox "OK"; Else MsgBox "Fail"; End If => MsgBox "Fail" 1-11

27 2) for 반복실행문형식 For counter = start To end [Step step] [ 실행문 ] Next 인자 counter 계수 start 계수의시작값 end 계수의마지막값 step 계수증가값, 지정되지않으면 1 값이다. 실행문 For문내에서의실행문참고 For i = 0 To 10 MsgBox i Next For i = 0 To 15 Step 3.14 MsgBox Next Nested For: For i = 0 To 3 For j = 0 To 4 MsgBox i+j Next Next 1-12

28 3) do 조건이참이거나조건이참이될때까지 DO LOOP 내의구절을반복수행하는 형식 Do [While Until 조건문 ] [ 실행문 ] Loop 또는 Do [ 실행문 ] Loop [While Until 조건문 ] 인자조건문실행문 참과거짓을나타내는표현식 실행문 참고 dim a as integer a = 10; msgbox a do a = a-1; loop while a <> 0 msgbox a 1-13

29 4) while 조건문이참일동안실행되는반복문형식 While 조건문실행문 Wend 인자조건문조건문실행문조건문이참일동안실행되는실행문참고 dim a as integer a = 10; msgbox a While a > 0 a = a - 1 Wend msgbox a 1-14

30 5) goto 지정한 label 로실행스텝을이동한다. 형식 Goto label 참고 dim a as integer a = 10; goto _final a = a-5 _final: msgbox a 1-15

31 6) until Do 루프의실행을종료하는조건을지정한다. Do { While Until } condition [ statements ] [ Exit Do ] [ statements ] Loop -or- Do [ statements ] [ Exit Do ] [ statements ] Loop { While Until } condition 1-16

32 1.2.3 함수 1) sub 서브함수는사용이빈번한을미리서브함수로만들어놓고필요할때마다호출하여사용할수있다. 서브함수의선언은변수선언문 (dim) 이전에선언되어야한다. 형식 Sub name (arglist) 실행문 End Sub 인자 name Sub함수명 arglist 변수리스트, 콤마로구분된다. 실행문실행문참고예제 1 Sub Sub1 (a as integer, b as integer) Dim c as integer c = a+b; msgbox c; End Sub Dim x, y as integer; x = 10; y = 5; Sub1(x+1, y); 예제 2 byref 키워드를이용하여호출함수의인자값을변경할수있다. Sub Sub1 (a as integer, b as integer, byref c as integer) c = a+b; msgbox c; End Sub 1-17

33 Dim x, y, z as integer; x = 10; y = 5; Sub1(x+1, y, z); msgbox z 1-18

34 2) end 스크립트의어디에서든지 end 문을만나면스크립트는즉시종료된다. 참고 dim a as integer; a = 10; If a = 9 Then End; else msgbox a; endif; a = a-5; msgbox a 1-19

35 1.2.4 표준함수 1) modulus 두수를나누고그나머지를반환한다. result = number1 Mod number2 인자없음참고나머지연산자는 number1 을 number2 ( 실수를정수로반올림한 ) 로나누고, 나머지만을 result 에돌려준다. 예를들어다음식에서 A (result) 의값은 5 이다. A = 19 Mod

36 2) pi pi 상수값을반환한다. dim fval as float fval = pi*100 msgbox fval 인자없음참고원주율 : 원의둘레를지름으로나누었을때나타나는일정한수 1-21

37 3) sin sin 값을반환한다. float sin( float x ) 인자 x : 구하고자하는라디안각도참고 예제 dim fval as float fval = sin(4.3) 1-22

38 4) cos cos 값을반환한다. float cos( float x) 인자 x : 구하고자하는라디안각도참고 예제 dim fval as float fval = cos(3.4) 1-23

39 5) tan tan 값을반환한다. float tan( float x) 인자 x : 구하고자하는라디안각도참고 예제 dim fval as float fval = tan(3.4) 1-24

40 6) atan 아크탄젠트값을구한다. float atan( float x) 인자 x : 구하고자하는라디안각도참고 예제 dim fval as float fval = atan(3.4) 1-25

41 7) asin 아크사인값을구한다. float asin( float x) 인자 x : 구하고자하는라디안각도참고 예제 dim fval as float fval = asin(3.4) 1-26

42 8) acos 아크코사인값을구한다. float acos( float x) 인자 x : 구하고자하는라디안각도참고예제 dim fval as float fval = acos(3.4) 1-27

43 9) sqr 제곱근값연산 float sqr( float x) 인자 x : 구하고자하는수참고 예제 dim fval as float fval = sqr(16) 1-28

44 10) hypot 빗변의길이를구한다. float hypot ( float x, float y) 인자 x : 삼각형밑변의길이 y : 삼각형의높이참고 예제 dim fval as float fval = hypot(100, 200) 1-29

45 11) pow 제곱승값을구한다. float pow ( float base, float exp ) 인자 base : 지수 exp : 승수참고 Base 를지수로한 exp 제곱승을구한다. 예제 dim fval as float fval = pow(3,4) fval =

46 12) abs 절대값을구한다. float abs ( float x ) 인자 x : 구하고자하는수참고 예제 dim fval as float fval = abs(-67) fval =

47 13) exp 멱지수를구한다. float exp (float x ) 인자 x : 구하고자하는값참고 예제 dim fval as float fval = exp(100) 1-32

48 14) log 지수로그값을구한다. float log ( float x) 인자 x : 구하고자하는값참고 예제 dim fval as float fval = log(10) 1-33

49 15) log10 자연로그값을구한다. float log10 ( float x) 인자 x : 구하고자하는값참고 예제 dim fval as float fval = log10(100) 1-34

50 16) rand 랜덤값을구한다. int rand ( ) 인자 참고 예제 Dim n As Integer n = rand() 1-35

51 17) Now 현재시스템시간을구한다. Time Now() 인자없음참고 예제 Dim mytime as Time mytime = Now() MsgBox mytime.year; MsgBox mytime.month; MsgBox mytime.day; MsgBox mytime.hour; MsgBox mytime.minute; MsgBox mytime.second; 1-36

52 18) SetTime 시간형변수를초기화하기위한함수 Time SetTime( int yyyy, int mm, int dd, int hh, int mi, int ss) 인자 yyyy : 년도를지정 mm : 월을지정 dd : 일을지정 hh : 시간을지정 mi : 분을지정 ss : 초를지정참고리턴되어지는형식은시간형이다. 예제 Dim mytime as Time mytime = SetTime(2005, 12, 25, 13, 59, 30) mytime 이라는시간형변수를 2005 년 12 월 25 일 13 시 59 분 30 초로설정한다. 1-37

53 19) GetDayOfMonth 해당하는월의날수를반환한다. integer GetDayOfMonth(yyyy, mm) 인자 yyyy : 년도를지정 mm : 월을지정참고리턴되어지는형식은 integer 형이다. 예제 dim nday as integer dim nyear as integer dim nmonth as integer nyear = 2005 nmonth = 2 nday = GetDayOfMonth(nYear, nmonth); nday 는해당하는월의날수를반환한다. 1-38

54 20) GetNextTime 시간형변수를연산하는함수 integer GetNextTime(Time, dd, hh, mi, ss); 인자 dd : 일을지정 hh : 시간을지정 mi : 분을지정 ss : 초를지정참고리턴되어지는형식은 integer 형이다. 예제 dim nret as integer dim tmtime as time tmtime = Now() tmtime.year = 2005; tmtime.month = 9; tmtime.day = 29; tmtime.hour = 23; tmtime.minute = 12; tmtime.second = 13; nret = GetNextTime(tmTime, 4, 1, 2, 3); if nret > 0 then tmtime 은 4 일 1 시간 2 분 3 초를더한값이다. Endif nret = GetNextTime(tmTime, -1, 0, 0, 0); if nret > 0 then tmtime은 1일뺀값이다. endif 1-39

55 21) SetLocalTime 현재시스템의시간을바꾸는함수이다. integer SetLocalTime(Time) 인자 Time : Time 형변수참고리턴되어지는형식은 integer 형이다. 예제 dim ct as time dim nret as integer ct.year = 2005 ct.month = 10 ct.day = 12 ct.hour = 13 ct.minute = 14 ct.second = 15 nret = SetLocalTime(ct) 시스템의현재시간이 2005 년 10 월 12 일 13 시 14 분 15 초로변경된다. 1-40

56 22) GetElapsedTime 시간의차이를구하는함수로두시간사이의차이를초로반환한다. Float GetElapsedTime(Time StartTime, Time EndTime) 인자 StartTime, EndTime 모두 time 형변수임참고예제 Dim fret as float Dim tmstart as Time Dim tmend as Time tmstart.year = 2007; tmstart.month = 6; tmstart.day = 8; tmstart.hour = 0; tmstart.minute = 0; tmstart.second = 0; tmend.year = 2007; tmend.month = 6; tmend.day = 8; tmend.hour = 0; tmend.minute = 1; tmend.second = 0; fret = GetElapsedTime(tmStart, tmend); msgbox fret fret 의값은 60 이다. 1-41

57 23) XOR 두 Boolean 식의배타적논리합을수행하거나두숫자식의배탁적비트연산을수행한다. 예제 Dim a As Integer = 10 Dim b As Integer = 8 Dim c As Integer = 6 Dim firstcheck, secondcheck, thirdcheck As Boolean firstcheck = a > b Xor b > c secondcheck = b > a Xor b > c thirdcheck = b > a Xor c > b 1-42

58 And / Or 두조건을결합한다. 두개이상의논리연산자가사용될경우 And 연산자가먼저계산된다음 or 연산자가계산된다. 괄호를사용하면계산순서를변경할수있다. USE AdventureWorks GO SELECT FirstName, LastName, Shift FROM HumanResources.vEmployeeDepartmentHistory WHERE Department = 'Quality Assurance' AND (Shift = 'Evening' OR Shift = 'Night') 1-43

59 1.2.5 문자열을다루는함수 1) StringLen 문자열의길이를구한다. Integer StringLen(String mystr); 인자 mystr 입력문자열참고문자열의길이를반환한다. 예제 Dim evstr As String; Dim nresult As Integer; evstr = "abcd"+"efgh"; nresult = StringLen(evStr); MsgBox nresult; '8 1-44

60 2) StringRemove 지정문자열에서특정문자를삭제한다. String strafter = StringRemove(String strbefore, String strchar); 인자 strafter 결과로반환되는문자열 strbefore 원본문자열 strchar 특정지정문자참고한글에대해서는오류발생소지가있음. 예제 Dim BeforeStr As String; Dim AfterStr As String; Dim nresult As Integer; BeforeStr = "ABCD EFGH IJK"; AfterStr = StringRemove(BeforeStr, " "); ' 원본문자열에서특정글자즉, 여기서는공백을제거한다. MsgBox AfterStr; 'ABCDEFGHIJK 1-45

61 3) StringReplace 지정문자열에서특정문자열을교체한다. String StringReplace(String strbefore, String strtarget, String strchange); 인자 strbefore strtarget strchange 참고 원본문자열찾기를원하는문자열찾은문자열을교체할문자열 예제 Dim BeforeStr As String; Dim AfterStr As String; Dim nresult As Integer; BeforeStr = "abcd^^efghi^^xxx"; AfterStr = StringReplace(BeforeStr, "^^", 'BeforeStr 에서 ^^를찾아서 로교체 MsgBox AfterStr; 1-46

62 4) StringMid 문자열에서지정한개수의문자를반환한다. String StringMid(String strbefore, integer nstart, integer ncnt); 인자 strbefore 원본문자열 nstart 반환을시작하는문자위치 ncnt 반환할문자개수참고 예제 Dim BeforeStr As String; Dim AfterStr As String; Dim nresult As Integer; BeforeStr = " "; AfterStr = StringMid(BeforeStr, 0, 5); '0 번째부터 5 글자를 AfterStr 에대입 => "01234" MsgBox AfterStr; 1-47

63 5) StringLeft 문자열의왼쪽부터지정한수만큼의문자를반환한다. String StringLeft(String strbefore, integer ncnt); 인자 strbefore 왼쪽끝문자부터반환될문자이다. ncnt 반환할문자개수참고 예제 Dim BeforeStr As String; Dim AfterStr As String; Dim nresult As Integer; BeforeStr = " "; AfterStr = StringLeft(BeforeStr, 7); ' 처음부터 7 개문자를 AfterStr 에대입 => " " MsgBox AfterStr; 1-48

64 6) StringRight 문자열의오른쪽부터지정한수만큼의문자를반환한다. String StringRight(String strbefore, integer ncnt); 인자 strbefore 오른쪽끝문자부터반환될문자이다. ncnt 반환할문자개수참고 예제 Dim BeforeStr As String; Dim AfterStr As String; Dim nresult As Integer; BeforeStr = " "; AfterStr = StringRight(BeforeStr, 5); ' 끝에서부터 5 개문자를 AfterStr 에대입 => "56789" MsgBox AfterStr; 1-49

65 7) StringCompare 두개의문자열을비교한다. integer StringCompare(String strsource, String strtarget); 인자 strsource 비교할문자열 1 strtarget 비교할문자열 2 참고두문자열이같으면 0 을리턴한다. 두문자열이같지않으면 1 또는 -1 을리턴한다. 대소문자구분한다. 예제 Dim BeforeStr As String; Dim BeforeStr2 As String; Dim AfterStr As String; Dim nresult As Integer; BeforeStr = "abcde"; BeforeStr2 = "abcde"; nresult = StringCompare(BeforeStr, BeforeStr2); MsgBox nresult; 1-50

66 8) StringTrimLeft 문자열의왼쪽에있는공백을삭제한다. String StringTrimLeft(String strbefore); 인자 strbefore 왼쪽공백이삭제되어질문자열참고 예제 Dim BeforeStr As String; Dim AfterStr As String; Dim nresult As Integer; BeforeStr = " abc de"; AfterStr = StringTrimLeft(BeforeStr); ' 문자열의왼쪽공백삭제 => "abc de" MsgBox AfterStr; 1-51

67 9) StringTrimRight 문자열의오른쪽에있는공백을삭제한다. String StringTrimRight(String strbefore); 인자 strbefore 오른쪽공백이삭제되어질문자열참고 예제 Dim BeforeStr As String; Dim AfterStr As String; Dim nresult As Integer; BeforeStr = " abc de "; AfterStr = StringTrimRight(BeforeStr); ' 문자열의오른쪽공백삭제 => " abc de" MsgBox AfterStr; 1-52

68 10) StringMakeUpper 지정문자열을모두대문자로바꾼다. String StringMakeUpper(String strbefore); 인자 strbefore 대문자로바꾸기를원하는문자열참고영문자만바뀐다. 예제 Dim BeforeStr As String; Dim AfterStr As String; Dim nresult As Integer; BeforeStr = "abcd"+"lll"; AfterStr = StringMakeUpper(BeforeStr); ' => "ABCD" MsgBox AfterStr; 1-53

69 11) StringMakeLower 지정문자열을모두소문자로바꾼다. String StringMakeLower(String strbefore) 인자 strbefore 소문자로바꾸기를원하는문자열참고 예제 Dim BeforeStr As String; Dim AfterStr As String; Dim nresult As Integer; BeforeStr = "ABCDefg"; AfterStr = StringMakeLower(BeforeStr); ' => "abcdefg" MsgBox AfterStr; 1-54

70 12) ToChar 숫자에해당하는 ASCII 문자값을구한다. String ToChar(Integer Int) 인자 Int : 사이의숫자참고 예제 Dim str As String str = ToChar(74)+ToChar(73)+ToChar(83); MsgBox str; JIS 1-55

71 13) Hex 숫자를 Hex 포맷의문자열로변환한다. String Hex(Integer Int) 인자 Int : 변환할숫자참고 예제 Dim StrHex As String dim xx as integer; dim yy as string; StrHex = Hex(65535); MsgBox StrHex xx = 0x320 or 0x001 or 0x1000; yy = Hex(xx); MsgBox "0x"+yy; xx = 1000 MsgBox Hex(xx); 1-56

72 14) MakeNumToString 숫자를지정한포맷의문자열로변환한다. String MakeNumToString(String strformat, float fval); 인자 strformat : 변환할포맷 fval : float 형숫자참고 예제 dim strret as string dim strinput as string dim strformat as string dim nret as integer dim fret as float strret = MakeNumToString("%04d", 4); msgbox strret strret = MakeNumToString("%4.3f", 8.6); msgbox strret 1-57

73 15) MakeStringToInt 문자를 integer 형값으로변환한다. integer MakeStringToInt (String strval); 인자 strval : 변환할문자참고 예제 dim strret as string dim strinput as string dim strformat as string dim nret as integer dim fret as float nret = MakeStringToInt("0004"); msgbox nret 1-58

74 16) MakeStringToFloat 문자를 float 형값으로변환한다. float MakeStringToFloat (String strval); 인자 strval : 변환할문자참고 예제 dim strret as string dim strinput as string dim strformat as string dim nret as integer dim fret as float fret = MakeStringToFloat(" "); msgbox fret 1-59

75 17) BitAnd 비트 And 한결과를반환한다. integer BitAnd (integer nsrc, integer nbit); 인자 nsrc : 비교될값 nbit : 비교할값참고 예제 dim nbitop as integer dim nnodetype as integer dim ntypescada as integer nnodetype = GetEasyViewNodeType() nbitop = BitAnd(nNodeType, ntypescada); if nbitop > 0 = 1 endif 1-60

76 18) BitOr 비트 Or 한결과를반환한다. integer BitOr (integer nsrc, integer nbit); 인자 nsrc : 비교될값 nbit : 비교할값참고 예제 dim nbitop as integer dim nnodetype as integer dim ntypescada as integer nnodetype = GetEasyViewNodeType() nbitop = BitOr(nNodeType, ntypescada); if nbitop > 0 = 1 endif 1-61

77 19) Sprintf 지정한포맷으로문자열값을변환한다. String Sprintf(String strformat, 1, 2, aaa ); 인자 strformat : 변환할문자열포맷참고 예제 dim strret as string dim strformat as string dim n as integer dim f as float dim str as string strformat = %d %.2f %s n = 1 f = 2 str = aaa strret = sprintf(strformat, n, f, str); msgbox strret 1-62

78 1.2.6 Database 관련함수 1) SQLConnect 데이터베이스에접속을시작한다. Integer SQLConnect(Integer ConnectionID, String strconnect); 인자 ConnectionID 지정한연결에사용할 ID 를리턴받을값이다. strconnect ODBC 연결용문자열 참고 ConnectionID 는 DB 에접속을종료할때까지키로사용되어진다. DB 접속이성공하면 0 이상의값을반환하고, 실패하면음수값이반환된다. 접속문자열은 DSN=odbcDSN; UID=szUser; PWD=szPassword 의형식으로구성된다. szuser, szpassword 가없을경우엔 DSN=odbcDSN; UID=; PWD= 와같이입력한다. 예제 SqlSelect 참조 1-63

79 2) SQLDisconnect 연결되어진데이터베이스의접속을해제한다. Integer SQLDisconnect(Integer ConnectionID); 인자 ConnectionID 연결을해제할 DB 접속 ID 참고 ConnectionID 는 SQLConnect 함수에서발생된값이다. 예제 SqlSelect 참조 1-64

80 3) SQLSelect 테이블의데이터를읽어오기위한함수이다. Integer SQLSelect(Integer ConnectionID, String strtable, String strfield, String strwhere, String strorder); 인자 ConnectionID 읽어올테이블이있는 DB 의연결 ID strtable 테이블명문자열 strfield 필드명문자열 strwhere 조건문자열 strorder 정렬순서문자열 [ 참고 ] SQLSelect 함수는내부적으로 Select SQL 문장을만들어테이블에있는데이터를조회한다. 내부적으로 Select 문장을만드는방법은 SELECT strfield FROM strtable [WHERE strwhere] [ORDER BY strorder] 와같이사용되어진다. 예제 Dim nresult As Integer; Dim ConnectionId As Integer; Dim NumRows, NumCols As Integer; Dim strresult(3) As String; nresult = SQLConnect(ConnectionId, "DSN=EvScriptDb; UID=; PWD=;"); if nresult < 0 Then MsgBox "DB 에연결할수없습니다."; End Else MsgBox "DB 연결 OK"; EndIf nresult = SqlSelect(ConnectionId, "sample_db", "*", "", ""); NumRows = SQLNumRows(ConnectionId); MsgBox "selected record count : "+NumRows; NumCols = SQLNumFields(ConnectionId); 1-65

81 nresult = SqlFirst(ConnectionId); While nresult > 0 nresult = SQLGetData(ConnectionId, 0, strresult(0)); nresult = SQLGetData(ConnectionId, 1, strresult(1)); nresult = SQLGetData(ConnectionId, 2, strresult(2)); MsgBox strresult(0)+":"+strresult(1)+":"+strresult(2); nresult = SqlNext(ConnectionId); WEnd nresult = SQLDisconnect(ConnectionId); 예제 1 ============================================================= Dim nresult As Integer; Dim ConnectionId As Integer; Dim NumRows, NumCols As Integer; Dim strresult(3) As String; nresult = SQLConnect(ConnectionId, "DSN=EvScriptDb; UID=; PWD=;"); if nresult < 0 Then MsgBox "DB 에연결할수없습니다."; End Else MsgBox "DB 연결 OK"; EndIf nresult = SqlSelect(ConnectionId, "sample_db", "*", "str > ' '", ""); NumRows = SQLNumRows(ConnectionId); MsgBox "selected record count : "+NumRows; NumCols = SQLNumFields(ConnectionId); nresult = SqlLast(ConnectionId); If nresult > 0 Then 1-66

82 EndIf nresult = SQLGetData(ConnectionId, 0, strresult(0)); nresult = SQLGetData(ConnectionId, 1, strresult(1)); nresult = SQLGetData(ConnectionId, 2, strresult(2)); MsgBox strresult(0)+":"+strresult(1)+":"+strresult(2); nresult = SqlNext(ConnectionId); nresult = SQLDisconnect(ConnectionId); 예제 2 ============================================================== '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'DB 에연결할때 DIM ResultCode AS INTEGER; DIM ConnectionId AS INTEGER; ResultCode = SQLConnect(ConnectionId, "DSN=kos_sam; UID=; PWD=;"); IF ResultCode < 0 THEN MsgBox "DB에연결되지않았습니다. 관리자에게문의바랍니다."; ELSE QFSetEQCodeSetting(); = = 0; ENDIF; ResultCode = SQLDisconnect(ConnectionId); '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1-67

83 'DB 에서레코드를가져올때 SUB QFDetail(Dim MCode AS STRING) 'MCode : S1_TMS_A82205 DIM Zone_Seq AS String; 'MCode SubString Zone별 Sequence Number DIM Chamber_A AS String; DIM Chamber_B AS String; DIM Chamber_C AS String; DIM Chamber_Seq AS String; 'MCode SubString Chamber Sequence Number DIM StrLen AS INTEGER; 'SerialNumber의 length값 DIM irows AS INTEGER; 'RowCount변수 DIM mmodel AS String; 'Model명변수 <Parameter로사용 > DIM mmaker AS String; 'MAKER명변수 <Parameter로사용 > DIM meqpid AS String; 'EQCode명변수 <Parameter로사용 > DIM mtype AS String; 'TYPE명변수 <Parameter로사용 > DIM mch1 AS String; 'Ch1명변수 <Parameter로사용 > DIM mch2 AS String; 'Ch2명변수 <Parameter로사용 > DIM mch3 AS String; 'Ch3명변수 <Parameter로사용 > DIM mch4 AS String; 'Ch4명변수 <Parameter로사용 > DIM dmodel AS String; 'MODEL명변수 <Parameter로사용 > DIM ResultCode AS INTEGER; DIM ConnectionId AS INTEGER; DIM Channel_Cnt AS INTEGER; QFInitialize(); 'ex) Get Prameter : S1_TMS_A81001 Chamber_A = ""; Chamber_B = ""; Chamber_C = ""; MCode = StringRemove(MCode, Zone_Seq = MCode; 'ex) Zone_Seq = S1_TMS_A

84 : SerialNumber 의 Tag I/O Message = MCode + "_1_L134"; 'ex) IM_SerialNumber = S1_TMS_A81001_1_L134 'Reconnec ResultCode = SQLConnect(ConnectionId, "DSN=kos_sam; UID=; PWD=;"); 'DB Connect 를위한부분으로해당태그의 Seqence(A001) 를 ProdID 값과일치하면 'ProdID/ PRODCODE/ Maker/ Model/ ZONE/ BAY 를읽어온다. 'SQL Transact 'ResultCode = SQLTransact(ConnectionId); 'Exception 발생하여부득히 SQL Query 문을 2 개로만든다. 'Exception 설비 : UNISEM PCS8000A( Heat Exchange) + PCS5000B(O3Zen/Chiller) 를하나로하는장비들 'Exception 설비들은 Zone_Seq + Chamber_Seq 로검색한다. ResultCode = SQLSelect(ConnectionId, "TMS13_PRODINFO", "*", "PRODID = '" + Zone_Seq + "'", "PRODID" ); 'ex> SQL Query : SELECT * FROM TMS13_PRODINFO WHERE PRODID = Zone_Seq AND CHBA = Chamber_Seq 'ex> SQL Query : SELECT * FROM TMS13_PRODINFO WHERE PRODID = Zone_Seq 'Chamber_Seq = StringMid(MCode, 5, 1) ' 챔버순서값 'ex) Chamber_Seq = A ' DB에서읽은 Maker값을 mmaker변수에저장 IF ResultCode > 0 THEN ResultCode = SQLLast(ConnectionId); 1-69

85 irows = SQLNumRows(ConnectionId); IF irows > 0 THEN ResultCode = SQLFirst(ConnectionId); 'DB에서조건에맞는데이터를읽어변수에저장 ResultCode = SQLGetData(ConnectionId, 2, mmaker); ResultCode = SQLGetData(ConnectionId, 3, dmodel); ResultCode = SQLGetData(ConnectionId, 7, mtype); ResultCode = SQLGetData(ConnectionId, 8, meqpid); ResultCode = SQLGetData(ConnectionId, 9, Chamber_A); ResultCode = SQLGetData(ConnectionId, 10, Chamber_B); ResultCode = SQLGetData(ConnectionId, 11, Chamber_C); ResultCode = SQLGetData(ConnectionId, 12, mch1); ResultCode = SQLGetData(ConnectionId, 13, mch2); ResultCode = SQLGetData(ConnectionId, 14, mch3); ResultCode = SQLGetData(ConnectionId, 15, mch4); 'Maker에행당되는 Model 을 DB 에서읽는다. IF mmaker = "FST" THEN 'FSCS-CD352 => CD352 테이블상의 Model 명과 Window 명의차이에따른 Substring mmodel = StringMid(dModel, 5, StringLen(dModel)); ELSE IF mmaker = "UNISEM" THEN mmodel = dmodel; ELSE IF mmaker = "THC" THEN 'TK-TH12T4 => TH12T4 테이블상의 Model 명과 Window 명의차이에따른 Substring mmodel = StringMid(dModel, 3, StringLen(dModel)); ENDIF; ENDIF; ENDIF; ' 채널타입에맞는채널명을얻기위한조건문 IF mtype = "SINGLE" = mch1; Channel_Cnt = 1; ENDIF; 1-70

86 IF Chamber_A <> "X" THEN Chamber_Seq = Chamber_A; ELSE IF Chamber_B <> "X" THEN Chamber_Seq = Chamber_B; ELSE IF Chamber_C <> "X" THEN Chamber_Seq = Chamber_C; ENDIF; ENDIF; ENDIF; IF mtype = "DUAL" THEN IF mmodel = "PCD4000A" AND Chamber_Seq = "B" = = mch4; = = mch2; ENDIF; Channel_Cnt = 2; ENDIF; IF mtype = "THREE" = = = mch3; Channel_Cnt = 3; ENDIF; 'Channel에맞는태그생성 QuickFunction호출 QFDetailChannel(MCode, Channel_Cnt); ' 이전 PopUp 화면삭제 'IF SM_PrevDetailPopScreen <> "" THEN ' Hide SM_PrevDetailPopScreen; 'ENDIF; 'Open 하기위한화면에대한정의 POPUPPAGE("main.jcg", "Detail-" + mmaker + "(" + mmodel + ").jcg", 1, 1-71

87 358, 43) 'ShowTopLeftAt("Detail-" + mmaker + "(" + mmodel + ")", 360, 70 ); 'SM_PrevDetailPopScreen = "Detail-" + mmaker + "(" + mmodel + ")"; ResultCode = SQLDisconnect(ConnectionId); 'Open 하기위한 Trend 화면을호출하기위한 QuickFunction 호출 QFDetailTrend(MCode); ELSE MsgBox " 현재위치에해당되는데이터가존재하지않습니다. 관리자에게문의바랍니다."; ENDIF; ELSE MsgBox " 현재위치에해당되는데이터가존재하지않습니다. 관리자에게문의바랍니다."; ENDIF; END SUB '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'DB 에서레코드를가져올때 SUB QFDetailTrend(Dim MCode AS STRING) DIM ResultCode AS INTEGER; DIM ConnectionId AS INTEGER; DIM Zone_Seq AS String; 'MCode SubString Zone별 Sequence Number DIM EQPID_SUB AS String; 'EQPID SubString ETCH-TEL 에대해 ±8 로도 TREND 를보여주기위한구분변수 DIM Chamber_A AS String; 'MCode SubString Chamber Sequence Number DIM Chamber_B AS String; 'MCode SubString Chamber Sequence Number DIM Chamber_C AS String; 'MCode SubString Chamber Sequence Number DIM irows AS INTEGER; 'RowCount변수 1-72

88 DIM Channel_Chk AS String; 'Channel Count <Parameter로사용 > DIM mprodcode AS String; 'Prodcode <Parameter로사용 > DIM mmodel AS String; 'Model명변수 <Parameter로사용 > DIM mmaker AS String; 'MAKER명변수 <Parameter로사용 > DIM marea AS String; 'Area명변수 <Parameter로사용 > DIM meqpid AS String; 'EQCode명변수 <Parameter로사용 > DIM mmainpd AS String; 'MAINPD명변수 <Parameter로사용 > DIM mtype AS String; 'TYPE명변수 <Parameter로사용 > DIM mbay AS String; 'Bay명변수 <Parameter로사용 > DIM mch1 AS String; 'Ch1명변수 <Parameter로사용 > DIM mch2 AS String; 'Ch2명변수 <Parameter로사용 > DIM mch3 AS String; 'Ch3명변수 <Parameter로사용 = = = = = = = = = = = = = = = ""; Channel_Chk = = 0; 'Trend 에보여지는 PV-SV 차값 Channel1 ( 온도 = 0; 'Trend 에보여지는 PV-SV 차값 Channel2 ( 온도 = 0; 'Trend 에보여지는 PV-SV 차값 Channel3 ( 온도 ) 1-73

89 @MHV1 = 0; 'Trend 에보여지는 PV-SV 차값 Channel1 ( 습도 ) MCode = StringRemove(MCode, 'DB Reconntect ResultCode = SQLConnect(ConnectionId, "DSN=kos_sam; UID=; PWD=;"); 'MCode : S1_TMS_A82205 Connect 를위한부분으로해당태그의 Seqence(A001_A) 를 PRODID 값과일치하면 'EQPID / PRODCODE/ Maker/ Model/ ZONE/ BAY 를읽어온다. Zone_Seq = MCode; ' 칠러순차코드값 'SQL Transact 'ResultCode = SQLTransact(ConnectionId); 'Select Query ResultCode = SQLSelect(ConnectionId, "TMS13_PRODINFO", "*", "PRODID = '" + Zone_Seq + "'", "PRODID"); IF ResultCode > 0 THEN ResultCode = SQLFirst(ConnectionId); 'DB에서조건에맞는데이터를읽어변수에저장 ResultCode = SQLGetData(ConnectionId, 1, mprodcode); ResultCode = SQLGetData(ConnectionId, 2, mmaker); ResultCode = SQLGetData(ConnectionId, 3, mmodel); ResultCode = SQLGetData(ConnectionId, 4, marea); ResultCode = SQLGetData(ConnectionId, 5, mbay); ResultCode = SQLGetData(ConnectionId, 6, mmainpd); ResultCode = SQLGetData(ConnectionId, 7, mtype); ResultCode = SQLGetData(ConnectionId, 8, meqpid); ResultCode = SQLGetData(ConnectionId, 9, Chamber_A); ResultCode = SQLGetData(ConnectionId, 10, Chamber_B); 1-74

90 ResultCode = SQLGetData(ConnectionId, 11, = mprodcode; ' = meqpid; ' = marea; = mbay; = mmainpd; ' = mmaker; = mmodel; 'MODEL IF Chamber_A = "A" = Chamber_A; ENDIF; IF Chamber_B = "B" = Chamber_B; ENDIF; IF Chamber_C = "C" = Chamber_C; = mtype; 'TYPE = "SINGLE" THEN Channel_Chk = "100"; ENDIF; = "DUAL" THEN Channel_Chk = "200"; ENDIF; = "THREE" THEN Channel_Chk = "300"; ENDIF; ' Channel Count를 PLC Address 에서가져온다. = "SINGLE" THEN = "THC" = MCode + "_1_L113"; 'PV = MCode + "_1_L127"; ' <- 수정전 : L115 : SV = MCode + "_1_L114"; 'PV = MCode + "_1_L128"; 'SV Humidity = MCode + = MCode + "_1_L120"; ENDIF; ELSE = "DUAL" = MCode + = MCode + "_1_L120"; 1-75

91 @IA_Ch2_Process113 = MCode + = MCode + "_2_L120"; ELSE = "THREE" = Zone_Seq + = Zone_Seq + = Zone_Seq + = Zone_Seq + = Zone_Seq + = Zone_Seq + "_1_L120"; ELSE MsgBox "PLC Address 에서 Channel 값이올라오지않습니다. 관리자에게문의바랍니다." ENDIF; ENDIF; ENDIF; 'Channel Count Receive End ' 이전 PopUp 화면삭제 'IF SM_PrevPopScreen <> "" THEN Hide SM_PrevPopScreen; ENDIF; 'Open할화면에대한정의 EQPID_SUB = 1, 4); 'EQPID SUBSTRING = "THC" THEN POPUPPAGE("main.jcg","Detail-Trend100(THC).jcg",1,0,43) ELSE IF EQPID_SUB = "ETOE" THEN 'TEL(ETCH) 에관련된 TREND 는 ±8 차이 로한다. POPUPPAGE("main.jcg","Detail-Trend" + Channel_Chk + "(TEL- ETCH).jcg",1,0,43) ELSE POPUPPAGE("main.jcg","Detail-Trend" + Channel_Chk + ".jcg",1,0,43) ENDIF; ENDIF; ResultCode = SQLDisconnect(ConnectionId); ELSE 1-76

92 MsgBox "DB 에서해당데이터를찾을수없습니다. 관리자에게문의바랍니다."; ENDIF; END SUB ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' DIM ResultCode AS INTEGER; DIM ConnectionId AS INTEGER; Dim nlen As Integer; Dim xpos As Integer; Dim ypos As Integer; Dim slen As String; Dim sgas As String; Dim slay As String; Dim styp As String; Dim smfd As String; Dim sinv As String; Dim xposs As string; Dim yposs As string; dim V_CODE as string dim V_INVISIBLE as string dim V_PNAME as string dim RecvString As String dim RecvJcg As String RecvString = "L14GAS010103" 'Dim sarm As String;'Later 알람리스트 Option 줄때사용하려고한다. slen = V_INVISIBLE; nlen = StringLen(sLen); 1-77

93 'if nlen > 0 then ' 0.0); 'End if 'DB 에서 RecvString 에의한조건문으로 Data 를찾는다. '(Gas&Code, Proto Tag, Popup Page(MFD), Popup Page(Layout), Invisible Tag, Alarm Fucntion) ResultCode = SQLConnect(ConnectionId, "DSN=L14GMS; UID=; PWD=;"); IF ResultCode < 0 THEN MsgBox "DB에연결되지않았습니다. 관리자에게문의바랍니다."; ENDIF; 'ResultCode = SQLSelect(ConnectionId, "L14_GMS_INFO", "GASCODE,S_LAY,TYPE,CHG_JCG,HIDE_TAG,X_POS,Y_POS", "TAG = '" + RecvString + "'", "tag"); ResultCode = SQLSelect(ConnectionId, "L14_GMS_INFO", "GASCODE,S_LAY,TYPE,CHG_JCG,HIDE_TAG,X_POS,Y_POS", "TAG = '" + RecvString + "'", "tag"); ResultCode = SQLGetData(ConnectionId, 0, sgas); ResultCode = SQLGetData(ConnectionId, 1, slay); ResultCode = SQLGetData(ConnectionId, 2, styp); ResultCode = SQLGetData(ConnectionId, 3, smfd); ResultCode = SQLGetData(ConnectionId, 4, sinv); ResultCode = SQLGetData(ConnectionId, 5, xposs); ResultCode = SQLGetData(ConnectionId, 6, yposs); xpos = xposs ypos = yposs V_CODE = sgas; V_INVISIBLE = sinv; V_PNAME = sinv; 1-78

94 msgbox sgas msgbox xpos msgbox ypos 1.0); 'PopupProtoPage(RecvJcg,sMfd,RecvString,1,0,0,0,0); 'PopupPage(RecvJcg, slay,1,xpos,ypos); ResultCode = SQLDisconnect(ConnectionId); ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Dim nresult As Integer; Dim ConnectionId As Integer; Dim NumRows, NumCols As Integer; Dim strresult(3) As String; nresult = SQLConnect(ConnectionId, "DSN=EvScriptDb; UID=; PWD=;"); if nresult < 0 Then MsgBox "DB 에연결할수없습니다."; End Else MsgBox "DB 연결 OK"; EndIf nresult = SqlSelect(ConnectionId, "sample_db", "*", "", ""); NumRows = SQLNumRows(ConnectionId); MsgBox "selected record count : "+NumRows; NumCols = SQLNumFields(ConnectionId); nresult = SqlFirst(ConnectionId); While nresult > 0 nresult = SQLGetData(ConnectionId, 0, strresult(0)); nresult = SQLGetData(ConnectionId, 1, strresult(1)); nresult = SQLGetData(ConnectionId, 2, strresult(2)); 1-79

95 WEnd MsgBox strresult(0)+":"+strresult(1)+":"+strresult(2); nresult = SqlNext(ConnectionId); nresult = SQLDisconnect(ConnectionId); ============================================================== Dim nresult As Integer; Dim ConnectionId As Integer; Dim NumRows, NumCols As Integer; Dim strresult(3) As String; nresult = SQLConnect(ConnectionId, "DSN=EvScriptDb; UID=; PWD=;"); if nresult < 0 Then MsgBox "DB 에연결할수없습니다."; End Else MsgBox "DB 연결 OK"; EndIf nresult = SqlSelect(ConnectionId, "sample_db", "*", "str > ' '", ""); NumRows = SQLNumRows(ConnectionId); MsgBox "selected record count : "+NumRows; NumCols = SQLNumFields(ConnectionId); nresult = SqlLast(ConnectionId); If nresult > 0 Then nresult = SQLGetData(ConnectionId, 0, strresult(0)); nresult = SQLGetData(ConnectionId, 1, strresult(1)); nresult = SQLGetData(ConnectionId, 2, strresult(2)); MsgBox strresult(0)+":"+strresult(1)+":"+strresult(2); nresult = SqlNext(ConnectionId); EndIf 1-80

96 nresult = SQLDisconnect(ConnectionId); ============================================================== Dim nresult As Integer; Dim ConnectionId As Integer; Dim NumRows, NumCols As Integer; Dim strquery As String; nresult = SQLConnect(ConnectionId, "DSN=EvScriptDb; UID=; PWD=;"); if nresult < 0 Then MsgBox "DB 에연결할수없습니다."; End Else MsgBox "DB 연결 OK"; EndIf strquery = "Insert Into Sample_db(str, intval, fltval) values(' ', 6, 7.7)"; nresult = SqlExecute(ConnectionId, strquery); if nresult > 0 Then Msgbox " 삽입성공 "; else Msgbox " 삽입실패 "; endif nresult = SQLDisconnect(ConnectionId); ============================================================== dim nret as integer nret = RegisterOdbcDataSource("EV_Fms", "EV_Fms", " ", "YIJS", 1-81

97 "SQL Server") nret = RegisterOdbcDataSource("EV_Fms", "EV_Fms", " ", "YIJS", "SQL Server;DBMSSOCN") if nret < 0 then msgbox "fail" endif ============================================================== 1-82

98 4) SQLNumRows SQLSelect 에의하여반환된데이터의열개수를구한다. Integer SQLNumRows(Integer ConnectionID); 인자 ConnectionID DB 의연결 ID. SQLConnect() 에의하여구한다. 참고반드시 SQLSelect 실행이후에사용되어져야한다. 예제 SQLSelect 참조 1-83

99 5) SQLNumFields SQLSelect 에의하여반환된데이터의필드개수를구한다. Integer SQLNumFields(Integer ConnectionID); 인자 ConnectionID DB 의연결 ID. SQLConnect() 에의하여구한다. 참고반드시 SQLSelect 실행이후에사용되어져야한다. 예제 SQLSelect 참조 1-84

100 6) SQLFirst SQLSelect 에의하여반환된데이터의맨처음으로이동한다. Integer SQLFirst(ConnectionID); 인자 ConnectionID DB 의연결 ID. SQLConnect() 에의하여구한다. 참고반드시 SQLSelect 실행이후에사용되어져야한다. 예제 SQLSelect 참조 1-85

101 7) SQLNext SQLSelect 에의하여반환된데이터의현재커서위치의다음으로이동한다. Integer SQLNext(ConnectionID); 인자 ConnectionID DB 의연결 ID. SQLConnect() 에의하여구한다. 참고반드시 SQLSelect 실행이후에사용되어져야한다. 예제 SQLSelect 참조 1-86

102 8) SQLLast SQLSelect 에의하여반환된데이터의맨끝으로이동한다. Integer SQLLast(ConnectionID); 인자 ConnectionID DB 의연결 ID. SQLConnect() 에의하여구한다. 참고반드시 SQLSelect 실행이후에사용되어져야한다. 예제 SQLSelect 참조 1-87

103 9) SQLPrev SQLSelect 에의하여반환된데이터의현재커서위치의이전으로이동한다. Integer SQLPrev(ConnectionID); 인자 ConnectionID DB 의연결 ID. SQLConnect() 에의하여구한다. 참고반드시 SQLSelect 실행이후에사용되어져야한다. 예제 SQLSelect 참조 1-88

104 10) SQLGetData SQLSelect 에의하여반환된데이터의현재커서위치의지정데이터를구한다. Integer SQLGetData(Integer ConnectionID, Integer FieldPos, String strdata); 인자 ConnectionID DB 의연결 ID. SQLConnect() 에의하여구한다. FieldPos 얻고자하는데이터의필드번호 strdata 값이입력되어질문자열공간참고 FieldPos 는 0 번부터시작한다. 예제 SQLSelect 참조 1-89

105 11) SQLExecute 연결되어진 DB 에직접 SQL 문장을실행한다. Integer SQLExecute(Integer ConnectionID, String strquery); 인자 ConnectionID DB 의연결 ID. SQLConnect() 에의하여구한다. strquery 실행할쿼리문장참고 예제 Dim nresult As Integer; Dim ConnectionId As Integer; Dim NumRows, NumCols As Integer; Dim strquery As String; nresult = SQLConnect(ConnectionId, "DSN=EvScriptDb; UID=; PWD=;"); if nresult < 0 Then MsgBox "DB 에연결할수없습니다."; End Else MsgBox "DB 연결 OK"; EndIf strquery = "Insert Into Sample_db(str, intval, fltval) values(' ', 6, 7.7)"; nresult = SqlExecute(ConnectionId, strquery); if nresult > 0 Then Msgbox " 삽입성공 "; else Msgbox " 삽입실패 "; endif nresult = SQLDisconnect(ConnectionId); 1-90

106 12) RegisterOdbcDataSource 시스템의 ODBC 등록정보에 DSN 항목을입력한다. Integer RegisterOdbcDataSource(String strdsn, String strdesc, String strserver, String strdatabase, String strdatabasetype) 인자 strdsn : 등록될 Domain Name Service 명 strdesc : DSN 설명 strserver : 서버명 ( 또는 ComputerName ) strdatabase : 기본데이터베이스명 strdatabasetype : 데이터베이스종류 "SQL Server", Microsoft Access Driver (*.mdb) Microsoft ODBC for Oracle 참고 DSN 항목이이미입력되어있으면리턴한다. 예제 dim nret as integer nret = RegisterOdbcDataSource("EV_Fms", "EV_Fms", " ", "YIJS", "SQL Server") Network Libraries 에서 TCP/IP 를사용할경우에는데이터베이스종류에다음과같이추가하면된다. nret = RegisterOdbcDataSource("EV_Fms", "EV_Fms", " ", "YIJS", "SQL Server;DBMSSOCN") [ 그림 1.2-1] Add Network Libray Configuration 1-91

107 13) SQLTRANSACT SQL server 데이터베이스에만들어질 Transact_SQL 트랜잭션을나타낸다. 이클래스는상속될수없다. Public ref class SqlTransaction sealed : Public DbTransaction 1-92

108 1.2.7 태그관련 ( 입출력 ) 함수스크립트에서태그값을출력할때에디지털입력태그, 아날로그입력태그, 스트링입력태그는 assign 문을사용하여바로출력할수있지만디지털출력태그, 아날로그출력태그는출력할노드를구성하여로컬시스템또는리모트시스템에네트워크통신을이용하여출력할수있다. - 디지털입력태그, 아날로그입력태그, = = = = = abcd 1 디지털출력태그, 아날로그출력 - 출력할노드를설정해야한다. 노드명작성규칙은다음과같다. - 노드명 : 출력할노드명을지정한다. 노드명을시스템빌더의네트워크노드설정에서미리설정하여둔다. 노드명은로컬노드이거나네트워크노드일수있다. - 프로젝트명 : 출력하려는프로젝트명을설정한다. - DEVICE 명 : EasyView 에서는출력을실행하면현재구동중인 I/O 디바이스가출력을실행한다. EasyView 에서의스테이션은태그를관리하는그룹단위를의미한다. [ 그림 1.2-2] 네트워크노드설정 1-93

109 [ 그림 1.2-3] I/O DEVICE 명 1-94

110 1) OutputDo 디지털태그에출력을내보낸다. Integer OutputDo(String strnode, String strtag, Integer OutValue); 인자 strnode 노드명. 프로젝트명.DEVICE 명 strtag 태그명 OutVal 출력값참고 예제 Dim nresult As Integer nresult = OutputDo("IOSVR.MYPRJ.DEVICE1", "DO_1", 1); 'on 출력 nresult = OutputDo("IOSVR.MYPRJ.DEVICE1", 1); 'on 출력 nresult = OutputDo("IOSVR.MYPRJ.DEVICE1", "DO_1", 0); 'off 출력 nresult = OutputDo("IOSVR.MYPRJ.DEVICE1", 0); 'off 출력 1-95

111 2) OutputDi 입출력겸용태그에만사용할수있는함수. 디지털태그로출력을내보낸다. Integer OutputDi(String strnode, String strtag, Integer OutValue); 인자 strnode 노드명. 프로젝트명.DEVICE 명 strtag 태그명 OutVal 출력값참고태그의출력주소가비어있으면출력할노드의버퍼에데이터를출력한다. 예제 Dim nresult As Integer nresult = OutputDi("IOSVR.MYPRJ.DEVICE1", "DI_1", 1); 'on 출력 ( 입출력겸용태그일때만가능, Latch ON) nresult = OutputDi("IOSVR.MYPRJ.DEVICE1", 0); 'off 출력 ( 입출력겸용태그일때만가능, Latch OFF) 1-96

112 3) OutputAo 아나로그태그로출력을내보낸다. Integer OutputAo(String strnode, String strtag, Integer ntype, Float fval); 인자 strnode 노드명. 프로젝트명.DEVICE 명 strtag 태그명 ntype 출력형식 : [0:EngValue] [1:AdValue] fval 출력값참고 EngValue : 사용자값으로변환하기전, 하부장치로부터입력받은값 AdValue : 사용자가보기용이한값으로변환한값예제 Dim nresult As Integer nresult = OutputAo("IOSVR.MYPRJ.DEVICE1", "AO_1", 0, 50); ' eng 값으로출력 nresult = OutputAo("IOSVR.MYPRJ.DEVICE1", 0, 50); ' eng 값으로출력 nresult = OutputAo("IOSVR.MYPRJ.DEVICE1", "AO_1", 1, 50); ' ad 값으로출력 ( 여기서 50 은 eng 값 ) nresult = OutputAo("IOSVR.MYPRJ.DEVICE1", 1, 50); ' ad 값으로출력 ( 여기서 50 은 eng 값 ) 1-97

113 4) OutputAi 입출력겸용태그에서만사용할수있는함수. 아나로그태그로출력을내보낸다. Integer OutputAi(String strnode, String strtag, Integer ntype, Float fval); 인자 strnode 노드명. 프로젝트명.DEVICE 명 strtag 아나로그입력태그명 ntype 출력형식 : [0:EngValue] [1:AdValue] fval 출력값참고 EngValue : 사용자값으로변환하기전, 하부장치로부터입력받은값 AdValue : 사용자가보기용이한값으로변환한값 태그의출력주소가비어있으면출력할노드의버퍼에데이터를출력한다. 예제 Dim nresult As Integer nresult = OutputAi("IOSVR.MYPRJ.DEVICE1", "AI_1", 0, 50); ' eng 값으로출력 nresult = OutputAi("IOSVR.MYPRJ.DEVICE1", 0, 50); ' eng 값으로출력 nresult = OutputAi("IOSVR.MYPRJ.DEVICE1", "AI_1", 1, 50); ' ad 값으로출력 ( 여기서 50 은 eng 값 ) nresult = OutputAi("IOSVR.MYPRJ.DEVICE1", 1, 50); ' ad 값으로출력 ( 여기서 50 은 eng 값 ) 1-98

114 5) OutputSi 입출력겸용태그에서만사용할수있는함수. 아나로그태그로출력을내보낸다. Integer OutputSi(String strnode, String strtag, String sval, 0); 인자 strnode 노드명. 프로젝트명.DEVICE 명 strtag 아나로그입력태그명 sval 출력문자참고태그의출력주소가비어있으면출력할노드의버퍼에데이터를출력한다. 예제 Dim nresult As Integer nresult = OutputSi("IOSVR.MYPRJ.DEVICE1", "SI_1", abc, 0); 1-99

115 6) OutputBlock 버퍼블록을출력한다. 문자열태그를출력한다. Integer OutputBlock(String strnode, String strtag); 인자 strnode 노드명. 프로젝트명.DEVICE 명 strtag 문자열태그명참고문자열태그의크기에해당하는길이를출력한다. = "ABCD"; nresult = OutputBlock("IOSVR.MYPRJ.DEVICE1", "STR_1"); ' block 출력 nresult = OutputBlock("IOSVR.MYPRJ.DEVICE1", ' block 출력 Dim nresult As = "1234"; nresult = OutputBlock("IOSVR.MYPRJ.DEVICE1", ==================================================== Dim nresult As Integer; Dim strtag As = = = -50; Sleep(300); strtag = "V_B_CNF_OUTPUT_01"; nresult = outputblock("iosvr.gms.gas14.plc1", strtag); 1-100

116 7) SetDiValue 디지털태그에값을입력한다. Integer SetDiValue(String strtag, Integer nval); 인자 strtag 디지털태그이름 nval 입력값참고 예제 Dim nresult As Integer nresult = SetDiValue("S1_GMS_010101_AGA", 1); 1-101

117 8) SetAiValue 아나로그태그에값을입력한다. Integer SetAiValue(String strtag, Float fval); 인자 strtag 아나로그태그이름 fval 입력값참고 예제 Dim nresult As Integer nresult = SetAiValue("V_DAY", 1, 4433); // BCD Writing nresult = SetAiValue("V_DAY", 0, 4411); // general writing 1-102

118 9) SetStrValue 문자열태그에값을입력한다. Integer SetStrValue(String strtag, String strval); 인자 strtag 문자열태그이름 strval 입력값참고 예제 Dim nresult As Integer nresult = SetStrValue("S1_GMS_010101_AGA", "0x100000"); 1-103

119 10) GetAiValue 아날로그입력태그의값을반환한다. float GetAiValue(String strtag); 인자 strtag 문자열태그이름참고 예제 Dim fval As float fval = GetAiValue("S1_GMS_010101_AGA"); 1-104

120 11) GetDiValue 디지털입력태그의값을반환한다. float GetDiValue(String strtag); 인자 strtag 문자열태그이름참고 예제 Dim fval As float fval = GetDiValue("S1_GMS_010101_AGA"); 1-105

121 12) SetTagProperty 태그설정을변경한다. nresult SetTagProperty(Integer tagtype, string tagname, integer nmode, string decs); 인자 tagtype 태그타입 tagname 태그이름 nmode Property설정참고 'tagtype = EV_TYPE_DIGITAL_INPUT -> 1 'tagtype = EV_TYPE_DIGITAL_OUTPUT -> 2 'tagtype = EV_TYPE_ANALOG_INPUT -> 3 'tagtype = EV_TYPE_ANALOG_OUTPUT -> 4 'tagtype = EV_TYPE_STRING_INPUT -> 5 'nmode = 1 : // desc 'nmode = 2 : // on message 'nmode = 3 : // off message 'nmode = 4 : // output addr1 'nmode = 5 : // output addr2 'nmode = 6 : // eng-min 'nmode = 7 : // eng-max 'nmode = 8 : // ad-min 'nmode = 9 : // ad-max 'nmode = 10 : // hihi 'nmode = 11 : // high 'nmode = 12 : // low 'nmode = 13 : // lolo 예제 Dim nresult As Integer nresult = SetTagProperty(3, "R_UIMR", 1, " 태그설명변경 "); 1-106

122 13) GetAiADValue 아날로그 INPUT 태그의 AD Value 를읽어온다. GetAiADValue(str strtag, float ncnt); 인자 strtag 문자열태그이름 ncnt 읽어올 DATA 자릿수참고 예제 Dim fval As float fval = GetAiADValue("S1_GMS_010101_AGA", 7.5); 1-107

123 14) GetAoADValue 아날로그 OUTPUT 태그의 AD Value 를읽어온다. GetAoADValue(str strtag, float ncnt); 인자 strtag 문자열태그이름 ncnt 읽어올 DATA 자릿수참고 예제 Dim fval As float fval = GetAoADValue("S1_GMS_010101_AGA", 7.5); 1-108

124 1.2.8 파일과디렉토리함수 1) GetPrivateProfileString INI 파일의내용을읽는다. Section 명 Key 명 [ 그림 1.2-4] EasyView. INI 파일내용 String GetPrivateProfileString(String Section, String Key, String DefaultString, String IniFileName) 인자 Section : Section Name Key : Key Name DefaultString : 파일에서정보를읽지못했을때반환할문자 IniFileName : Section 과 Key 를참조할 Ini 파일경로참고 예제 Dim str As String str = GetPrivateProfileString("Cache", "VALUE", "NONE", "C: Sample.ini"); MsgBox str 1-109

125 2) WritePrivateProfileString INI 파일에내용을쓴다. WritePrivateProfileString(String Section, String Key, String strstring, String IniFileName) 인자 Section : Section Name Key : Key Name strstring : String 문자열 IniFileName : Section 과 Key 를참조할 Ini 파일경로참고 예제 WritePrivateProfileString("Cache", "VALUE", "abcd", "C: Sample.ini"); sub ReadRtuImgAutoTime(dim strrtu as string, Byref nuse as integer, Byref nday as integer, Byref nhour as integer, Byref nminute as integer) dim strinstallpath as string dim strfilename as string dim strval as string dim strapp as string dim strkey as string strinstallpath = GetInstallPath(); strfilename = strinstallpath + "/Bin/RtuImg.ini" strapp = "RTU_INFO_" + strrtu nuse = GetPrivateProfileString(strApp, "Use", "", strfilename) nday = GetPrivateProfileString(strApp, "Day", "", strfilename) nhour = GetPrivateProfileString(strApp, "Hour", "", strfilename) nminute = GetPrivateProfileString(strApp, "Minute", "", strfilename) 1-110

126 end sub sub WriteRtuImgAutoTime(dim strrtu as string, dim nuse as integer, dim nday as integer, dim nhour as integer, dim nminute as integer) dim strinstallpath as string dim strfilename as string dim strapp as string dim strval as string strinstallpath = GetInstallPath(); strfilename = strinstallpath + "/Bin/RtuImg.ini" strapp = "RTU_INFO_" + strrtu strval = nuse WritePrivateProfileString(strApp, "Use", strval, strfilename) strval = nday WritePrivateProfileString(strApp, "Day", strval, strfilename) strval = nhour WritePrivateProfileString(strApp, "Hour", strval, strfilename) strval = nminute WritePrivateProfileString(strApp, "Minute", strval, strfilename) end sub dim nuse as integer dim nday as integer dim nhour as integer dim nminute as integer WriteRtuImgAutoTime("rtu001", 1, 15, 16, 17) ReadRtuImgAutoTime("rtu001", nuse, nday, nhour, nminute) msgbox nuse msgbox nday msgbox nhour msgbox nminute 1-111

127 3) FileExist 특정파일의존재여부를리턴한다. Integer FileExist(String FileName) 인자 FileName : 조사할파일경로참고 예제 Dim nexist As Integer nexist = FileExist("C: Sample2.ini"); MsgBox nexist 1 : 존재함, 0 : 존재하지않음 1-112

128 4) GetFileList 지정한디렉토리에서조건에맞는파일명들을구한다. Integer GetFileList (String Path, String Mask, String strfiles,, 0) 인자 Path : 폴더경로 Mask : 파일마스크 strfiles : 파일명을받을배열형스트링변수참고만약 String 변수의배열크기가반환하려는파일명의개수보다작으면 String 변수의크기는자동으로확장된다. 예제 dim strfiles(10) as string dim ncnt as integer ncnt = GetFileList ( c:/picture, *.bmp, strfiles,, 0) 1-113

129 5) GetFileName 지정한디렉토리에서조건에맞는파일명을구한다. String GetFileName (String Path, String Mask, integer Mode,, 0) 인자 Path : 폴더경로 Mask : 파일마스크 Mode : 모드 ( 파일속성 ) 참고 예제 Dim strfile as string ' 가장과거에생성된파일을찾는다. strfile = GetFileName("c:/picture", "", 0, "", 0); msgbox strfile ' 가장최근에생성된파일을찾는다. strfile = GetFileName("c:/picture", "", 1, "", 0); msgbox strfile ' 가장과거에수정된파일을찾는다. strfile = GetFileName("c:/picture", "", 2, "", 0); msgbox strfile ' 가장최근에수정된파일을찾는다. strfile = GetFileName("c:/picture", "*kla*.jpg", 3, "", 0); msgbox strfile 1-114

130 6) CopyFile 특정파일을다른이름으로복사한다. CopyFile(String SourceFile, String TargetFile, Integer FailIfExists) 인자 SourceFile : 복사를시행할원본파일명 TargetFile : 복사를시행할대상파일명 FailIfExists : Target 파일이이미존재한다면복사금지플래그참고리턴값없음예제 CopyFile("C: Sample.ini", "C: Sample.2ini", 0); Dim nnodetype as integer DeleteFile("D: EasyView3.0 bin EVFtpSync.dat") if nnodetype = 0 then ' 웹서버일경우 CopyFile("D: EasyView3.0 bin EVFtpSync_svr.dat", "D: EasyView3.0 bin EVFtpSync.dat", 0) else if nnodetype = 1 then ' 웹클라이언트일경우 CopyFile("D: EasyView3.0 bin EVFtpSync_cli.dat", "D: EasyView3.0 bin EVFtpSync.dat", 0) endif; endif; Execute("EVFtpSync.exe", ""); 1-115

131 7) CreateDirectory 디렉토리를생성한다. CreateDirectory(String Directory) 인자 Directory : 생성할디렉토리명참고리턴값없음예제 CreateDirectory("C: Test Test2 ); 1-116

132 8) Execute 로컬컴퓨터에저장되어있는실행가능한파일을실행한다. execute(string strfile, String strparms) 인자 strfile : 실행할파일명 strparms : 실행파일과함께실행될파라미터명참고리턴값없음예제 dim strfile as String dim strparms as St Execute("iexplore.exe", "http:// :8080/gcs/cms14.htm") Execute( EVTag.exe, ) 1-117

133 9) CloseWindow 현재실행된프로그램을찾아서종료한다. CloseWindow(String strtitle, String strclassname) 인자 strtitle : 프로그램의윈도우타이틀 strclassname : 프로그램의클래스명참고리턴값없음예제 dim strtitle as String dim strclassname as St CloseWindow(strClassName, ""); closewindow("", strtitle) 1-118

134 10) FileDump 사용자가지정한내용을텍스트파일에저장한다. FileDump(String strfile, String strmessage) 인자 strfile : 저장할파일명 strmessage: 저장할내용참고리턴값없음예제 Dim BeforeStr As String; Dim AfterStr As String; Dim nresult As Integer; BeforeStr = "ABCDefg"; AfterStr = StringMakeLower(BeforeStr); MsgBox AfterStr; ' => "abcdefg" 파일명은전체경로를지정하여야한다. FileDump("C: imsi.log", AfterStr); 여러줄로구분하여파일에저장한다. BeforeStr = "ABCDefg r n ABCDefg r n ABCDefg r n ABCDefg "; FileDump("C: imsi.log", AfterStr); BeforeStr = "ABCDefg + ABCDefg + ABCDefg + ABCDefg "; FileDump("C: imsi.log", AfterStr); 1-119

135 11) OpenFile 사용자가지정한텍스트파일을 Open 한다. OpenFile(String strfilepath, 0) 인자 strfilepath : Open 할파일경로참고리턴값없음예제 dim nfile as integer dim nret as integer dim nlen as integer dim strline as string dim strfile as string strfile = "D:/EasyView3.0/bin/FMS.ini" nlen = GetFileLength(strFile) nfile = OpenFile(strFile, 0); nret = SeekFile(nFile, 10, 1); while strline <> "###EOF###" strline = ReadLine(nFile, 1024, 0); msgbox strline wend nfile = CloseFile(nFile) 1-120

136 12) SeekFile 사용자가지정한텍스트파일에읽을위치설정. nret = SeekFile(Integer nfile, Integer NCount, Integer Set); 인자 Integer NCount : 현재 Cursor 에서 Move 할 Byte 수 ( 글자수 ) 참고 Integer Set #define SEEK_CUR 1 #define SEEK_END 2 #define SEEK_SET 0 예제 dim nfile as integer dim nret as integer dim nlen as integer dim strline as string dim strfile as string strfile = "D:/EasyView3.0/bin/FMS.ini" nlen = GetFileLength(strFile) nfile = OpenFile(strFile, 0); nret = SeekFile(nFile, 10, 1); while strline <> "###EOF###" strline = ReadLine(nFile, 1024, 0); msgbox strline wend nfile = CloseFile(nFile) 1-121

137 13) ReadLine 텍스트파일을한줄씩 Read 한다. strline = ReadLine(nFile, 1024, 0); 인자참고예제 dim nfile as integer dim nret as integer dim nlen as integer dim strline as string dim strfile as string strfile = "D:/EasyView3.0/bin/FMS.ini" nlen = GetFileLength(strFile) nfile = OpenFile(strFile, 0); nret = SeekFile(nFile, 10, 1); while strline <> "###EOF###" strline = ReadLine(nFile, 1024, 0); msgbox strline wend nfile = CloseFile(nFile) 1-122

138 14) WriteFile 해당문자열을지정한파일로로드한다. WriteFile(String strdirectory, String str) 인자 strdirectory 는절대경로를나타냄참고저장되는파일에줄바뀜을나타낼때는문자열다음에 n 을더해주면됨예제 WriteFile("C: EasyView3.0 Projects test.csv", "aaaa") WriteFile("C: EasyView3.0 Projects test.csv", " n") WriteFile("C: EasyView3.0 Projects test.csv", "bbbb") 1-123

139 15) Execute3 지정한폴더가바로로드된다. Execute3(, explorer.exe, String strdirectory, ) 인자 strdirectory 는절대파일경로임참고예제 Execute3("", "explorer.exe", " /n,/e,c: easyview3.0", "") 1-124

140 16) GetSystemDirectory 시스템디렉터리의경로를검색합니다. Public Class App Public Shared Sub Main() ' Call GetSystemDirectory. Dim sysdirbuffer As New StringBuilder( 256 ) LibWrap.GetSystemDirectory( sysdirbuffer, sysdirbuffer.capacity ) FORMATSTRING 표시할형식항목문자열을제공한다. public: virtual property String^ FormatString { String^ get (); void set (String^ value); } 1-125

141 1.2.9 엑셀관련함수 1) OpenExcelFile 엑셀파일을오픈하는함수이다. Integer OpenExcelFile(String strfilepath, String strsheet, String strdefault, Integer napp, integer nvisible); 인자 strfilepath 엑셀파일의절대경로 strsheet 엑셀파일의 Sheet 이름 strdefault 현재는공백 napp 해당엑셀파일의연결 ID nvisible 1 이면보임, 0 이면안보임 예제 dim napp as integer dim nvisable as integer nvisable = 1 nret = OpenExcelFile("c:/Book1.xls", "sheet1", "", napp, nvisable); 1-126

142 2) SetActiveSheet 엑셀파일의활성화할 sheet 를변경하는함수이다. Integer SetActiveSheet (Integer napp, string strsheet); 인자 napp 해당엑셀파일의연결 ID strsheetno 엑셀파일의 Sheet 이름 예제 dim napp as integer dim nvisable as integer nvisable = 1 nret = OpenExcelFile("c:/Book1.xls", "sheet1", "", napp, nvisable); nret = SetActiveSheet(nApp, "sheet2"); 1-127

143 3) SetCellValue 엑셀 sheet 의행과열에저장할값을지정하는함수이다. Integer SetCellValue (Integer napp, integer nrow, integer ncol, string strvalue); 인자 napp 해당엑셀파일의연결 ID nrow 해당엑셀 Sheet 의행번호 ncol 해당엑셀 Sheet 의열번호 strvalue 저장할값 예제 dim napp as integer dim nvisable as integer dim nret as integer dim nrow as integer dim ncol as integer nvisable = 1 nret = OpenExcelFile("c:/Book1.xls", "sheet1", "", napp, nvisable); nret = SetActiveSheet(nApp, "sheet2"); nrow = 1 ncol = 2 nret = SetCellValue(nApp, nrow, ncol, " "); 1-128

144 4) PrintExcelFile 해당엑셀파일을프린트하는함수이다. Integer PrintExcelFile (Integer napp); 인자 napp 해당엑셀파일의연결 ID 예제 dim napp as integer dim nvisable as integer dim nret as integer dim nrow as integer dim ncol as integer nvisable = 1 nret = OpenExcelFile("c:/Book1.xls", "sheet1", "", napp, nvisable); if nret = 1 then nret = SetActiveSheet(nApp, "sheet2"); nrow = 1 ncol = 2 nret = SetCellValue(nApp, nrow, ncol, " "); nrow = 1 ncol = 3 nret = SetCellValue(nApp, nrow, ncol, " "); endif nret = PrintExcelFile(nApp); 1-129

145 5) SaveExcelFile 해당엑셀파일을파일로저장하는함수이다. Integer SaveExcelFile (Integer napp); 인자 napp 해당엑셀파일의연결 ID 예제 dim napp as integer dim nvisable as integer dim nret as integer dim nrow as integer dim ncol as integer nvisable = 1 nret = OpenExcelFile("c:/Book1.xls", "sheet1", "", napp, nvisable); if nret = 1 then nret = SetActiveSheet(nApp, "sheet2"); nrow = 1 ncol = 2 nret = SetCellValue(nApp, nrow, ncol, " "); nrow = 1 ncol = 3 nret = SetCellValue(nApp, nrow, ncol, " "); nret = PrintExcelFile(nApp); nret = SaveExcelFile(nApp); endif 1-130

146 6) CloseExcelFile 연결된엑셀파일의접속을해제한다. Integer CloseExcelFile (Integer napp); 인자 napp 해당엑셀파일의연결 ID 예제 dim napp as integer dim nvisable as integer dim nret as integer dim nrow as integer dim ncol as integer nvisable = 1 nret = OpenExcelFile("c:/Book1.xls", "sheet1", "", napp, nvisable); if nret = 1 then nret = SetActiveSheet(nApp, "sheet2"); nrow = 1 ncol = 2 nret = SetCellValue(nApp, nrow, ncol, " "); nrow = 1 ncol = 3 nret = SetCellValue(nApp, nrow, ncol, " "); nret = PrintExcelFile(nApp); nret = SaveExcelFile(nApp); nret = CloseExcelFile(nApp); endif 1-131

147 기타함수 1) PasswordDialog 값을입력받는다이얼로그박스를출력할때, 입력받는값이보이지않는문자 (****) 로세팅된다. Integer PasswordDialog(String strtitle, String strmessage, String strinput); 인자 strtitle 메시지박스제목 strmessage 메시지박스에나타낼메시지문자열 strinput 입력받을문자열변수참고 예제 Dim xx As String Dim nresult As Integer nresult = PasswordDialog(" 비밀번호를입력하시오 ", " 비밀번호 ", xx); msgbox xx + " : " + nresult [ 그림 1.2-5] 비밀번호입력화면 1-132

148 2) IputDialog 값을입력받는다이얼로그박스를화면에나타낸다. String InputDialog(String strtitle, String strmessage); 인자 strtitle 메시지박스제목 strmessage 메시지박스메시지참고 예제 Dim StrInput As String StrInput = InputDialog(" 값을입력하시오 ", " 문자열을입력하세요 "); MsgBox StrInput; [ 그림 1.2-6] 문자열입력화면 1-133

149 3) CopyScanBuffer 소스스캔버퍼위치의지정개수만큼을타겟스캔버퍼위치에복사한다. Integer CopyScanBuffer(String strsourcedrvname, Integer nsourcesbaddr, Integer nsourcecnt, String strtargetdrvname, Integer ntargetsbaddr); 인자 strsourcedrvname : 소스스테이션명 nsourcesbaddr : 소스스테이션에서복사할 ScanBuffer 의시작주소 nsourcecnt : 복사를수행할 Word( 2Bytes) 개수 strtargetdrvname : 소스스테이션명 ntargetsbaddr: 타켓스테이션의복사를수행할 ScanBuffer 의시작주소참고 예제 Dim nresult as Integer nresult = CopyScanBuffer("s_01", 32760, 11, "s_02", 32760); [ 그림 1.2-7] 스캔버퍼 1-134

150 4) ClearScanBufferW 특정스테이션의지정한 Scan Buffer 주소부터 WORD 개수만큼 0 으로초기화한다. Integer ClearScanBufferW(String strdrvname, Integer nsbaddr, Integer ncnt); 인자 strdrvname : 스테이션명 nsbaddr : 0 으로초기화할 ScanBuffer 시작주소 ncnt : Word 개수참고 예제 Dim nresult As Integer nresult = ClearScanBufferW("s_01", 100, 1); 100 번지부터 1 word(2 Bytes) 를 0 으로초기화 1-135

151 5) ClearScanBufferB 특정스테이션의지정한 Scan Buffer 주소부터 BYTE 개수만큼 0 으로초기화한다. Integer ClearScanBufferB(String strdrvname, Integer nsbaddr, Integer ncnt); 인자 strdrvname : 스테이션명 nsbaddr : 0 으로초기화할 ScanBuffer 시작주소 ncnt : BYTE 개수참고 예제 Dim nresult As Integer nresult = ClearScanBufferB("s_01", 100, 3); 100 번지부터 3 Bytes 를 0 으로초기화 1-136

152 6) GetTickCount System 의총가동시간을구한다. TickCount 는컴퓨터가부팅된후부터지금까지흐른시간을 1/1000 초 ( 밀리초 ) 값으로반환한다. Float GetTickCount() 인자없음참고 예제 Dim Tick1, Tick2 As Float Tick1 = GetTickCount(); Sleep(100); Tick2 = GetTickCount(); MsgBox Tick2-Tick1; 1-137

153 7) RGB 시스템에서사용할수있는 RGB 색상값을생성한다. Integer RGB(Integer R, Integer G, Integer B) 인자 R : (Red 색상 ) G : (Green 색상 ) B : 0-255(Blue 색상 ) 참고 예제 Dim nrgb As Integer; nrgb = RGB(255, 255, 255); 1-138

154 8) PlaySound 특정 Wave 파일을연주한다. PlaySound(String wavefile, Integer nmode) 인자 wavefile : 연주할 Wave 파일 nmode : 1( 반복연주 ), 0( 한번만연주 ) 참고리턴값없음 예제 PlaySound( C: Alarm.wav, 0); 1-139

155 9) StopSound 모든 Wave 파일을연주를종료한다. StopSound() 인자참고리턴값없음예제 StopSound(); 1-140

156 10) GetLoginId / GetUserPw / GetLoginIdLevel 그래픽감시에서 Login 한 User 의 ID, PASSWORD, 등급을읽어온다. String GetLoginId 로그인 ID 를얻어온다. String GetUserPw 로그인 PW 를얻어온다. integer GetLoginIdLevel(String user) 로그인 PW 를얻어온다. 인자참고 GetLoginIdLevel 함수의 Return 값 0 : Supervisor, 1 : Operator 2 : Monitor, 3 과 4 : Spare 5 : 해당로그인 ID 가존재하지않음 user 가비어있으면현재로그인한사용자의레벨이반환된다. 예제 dim strid as string dim strpw as string dim nlevel as integer strid = GetLoginId() strpw = GetUserPw(strID) nlevel = GetLoginIdLevel(strID) 1-141

157 11) SetObjectLock 그래픽감시에서, Page 에 Object 를사용자가마우스로선택하지못하도록한다. SetObjectLock(String PageName, String ObjectName, Integer State); 인자 PageName : Object 가있는 page Name ObjectName : 해당 Page 에 Lock 을걸고싶은객체 Name States ( 0 : Lock, 1 : LockFree ) 참고예제 dim nresult As Integer nresult = SetObjectLock( Main_Page.jcg, Button_1, 1); 1-142

158 12) GetUnAckedAlarmCount EasyView 엔진에서 Ack 한알람 Counter 를얻어온다. GetUnAckedAlarmCount(); 인자참고 Ack 한알람 Counter < 0 : 예외처리엔진에서 Alarm Counter 를계산할때함수가실행될경우, 정확한 Counter 를얻지못하기때문에 -1 이란값을가지게된다. 예제 dim nresult As Integer nresult = GetUnAckedAlarmCount(); 1-143

159 13) Beep 비프음을나타내는함수이다. Beep(String strdraw, Integer Herz, Integer ntime) 인자 Herz 의값에따라음이달라짐 ntime 은음이나오는시간 참고예제 dim nret as integer nret = Beep("main.jcg", 10000, 1000) 1-144

160 14) PlayWave Wav 파일의음을듣고자할때쓰는함수이다. PlayWave(String strdraw, string strdirectory, Integer ntype) 인자 strdirectory 는 wav 파일의절대경로를나타냄. ntype 이 0 이면한번만재생하고 1 이면반복재생이다. 참고예제 nret = PlayWave ("main.jcg", "c:/easyview3.0/projects/test_listctrl/sound ALARM.WAV ", 1) 1-145

161 15) Msgbox 사용자가지정한스트링이나값을메시지박스에표시한다. Msgbox abd 인자나타내고자하는스트링이나값참고예제 Msgbox "abc" Msgbox "abc" + "def"

162 16) MessageBox 사용자가지정한스트링이나값을메시지박스에표시한다. MessageBox("display text", "window title", 버튼스타일, 아이콘스타일, 디폴트버튼, 모달스타일 ) 인자 display text : 표시되는문자열메시지 window title : 타이틀에표시되는문자열버튼스타일 : 표시된는버튼스타일 MB_OK 0 MB_OKCANCEL 1 MB_ABORTRETRYIGNORE 2 MB_YESNOCANCEL 3 MB_YESNO 4 MB_RETRYCANCEL 5 아이콘스타일 : 표시되는아이콘스타일 MB_ICONERROR 16 MB_ICONQUESTION 32 MB_ICONWARNING 48 MB_ICONASTERISK 64 디폴트버튼 : 포커스가설정되는디폴트버튼 MB_DEFBUTTON1 0 MB_DEFBUTTON2 256 MB_DEFBUTTON3 512 모달스타일 : 메시지박스의모달스타일 MB_APPLMODAL 0 MB_SYSTEMMODAL 4096 MB_TASKMODAL 8192 참고예제 Dim nret as integer nret = MessageBox("display text", "window title", 4, 32, 256, 0) 1-147

163 17) SENDWINDOWMESSAGE 사용 Dim<span id="parametertooltip" class="tip" tabindex="0">message</span> As Integer Dim <span id="parametertooltip" class="tip" tabindex="0">wparam</span> As Integer Dim <span id="parametertooltip" class="tip" tabindex="0">lparam</span> As Integer Dim task1 As Task task1.sendwindowmessage(<span id="parametertooltip" class="tip" tabindex="0">message</span>, <span id="parametertooltip" class="tip" tabindex="0">wparam</span>, <span id="parametertooltip" class="tip" tabindex="0">lparam</span>) public: Void SendWindowMessage( Int32 Message, Int32 wparam, Int32 lparam ); 1-148

164 시스템접근용메소드 1) 기본알람그룹에속한알람발생개수참조 1024 개기본알람그룹에서발생된알람개수를참조한다. Integer $System.AlarmGroup(Integer nindex).total Integer $System.AlarmGroup(Integer nindex).hihi Integer $System.AlarmGroup(Integer nindex).high Integer $System.AlarmGroup(Integer nindex).medium Integer $System.AlarmGroup(Integer nindex).low Integer $System.AlarmGroup(Integer nindex).lolo 또는 Integer $System.AlarmGroup(String BAGName).Total Integer $System.AlarmGroup(String BAGName).HiHi Integer $System.AlarmGroup(String BAGName).High Integer $System.AlarmGroup(String BAGName).Medium Integer $System.AlarmGroup(String BAGName).Low Integer $System.AlarmGroup(String BAGName).LoLo 인자 nindex : ( 기본알람그룹을가리키는인덱스 ) BAGName : 기본알람그룹명또는 ALL 참고예제 nalarm = $System.AlarmGroup(1).Total; '2 번째기본알람그룹에서발생한알람총개수 nalarm = $System.AlarmGroup(0).HiHi; '1 번째기본알람그룹에서발생한 HiHi 레벨알람개수 nalarm = $System.AlarmGroup("CHILLER").Medium; ' 기본알람그룹명이 CHILLER 인곳에서발생한 Medium 레벨알람개수 nalarm = $System.AlarmGroup( ALL ).Total; ' 프로젝트전체에서발생한알람총개수 1-149

165 2) 프로젝트의태그개수참조현재프로젝트의 Station 개수, DI 태그개수, AI 태그개수, String 태그개수, DO 태그개수, AO 태그개수를참조한다. Integer $System.StationCount Integer $System.DiCount Integer $System.AiCount Integer $System.StrCount Integer $System.DoCount Integer $System.AoCount 인자참고예제 Dim NNN As Integer NNN = $System.StationCount; MsgBox NNN NNN = $System.DiCount; MsgBox NNN 1-150

166 3) 프로젝트에서발생한알람개수참조현재프로젝트에서발생한레벨별알람개수를참조한다. Integer $System.TotalAlarm Integer $System.HiHiAlarm Integer $System.HighAlarm Integer $System.MediumAlarm Integer $System.LowAlarm Integer $System.LoLoAlarm 인자참고예제 Dim NNN As Integer NNN = $System.TotalAlarm; 전체알람개수 MsgBox NNN NNN = $System.HiHiAlarm; HiHi 레벨알람개수 MsgBox NNN $System.TotalAlarm : 현재프로젝트에서발생한총알람수 Dim nprjtotalarm as Integer nprjtotalarm = $System.TotalAlarm $System.HiHIAlarm : 현재프로젝트에서발생한 HiHi 레벨총알람수 Dim nprjhihialarm as Integer nprjtotalarm = $System.HiHiAlarm $System.Driver(1).TotalAlarm : 첫번째 Station 에서발생한총알람수 Dim ndrv1totalarm as Integer ndrv1totalarm = $System.Driver(1).TotalAlarm $System.AlarmGroup(0).Count : 첫번째기본알람그룹에서발생한총알람수 Dim nalarmgrp1totalarm as Integer nalarmgrp1totalarm = $System.AlarmGroup(1).TotalAlarm 1-151

167 4) 태그의 Active 상태참조및설정동적으로태그의 Active 여부를설정한다. Integer $System.IOTag(String TagName).Active 참조 $System.IOTag(String TagName).Active = 1 or 0 설정인자 TagName : 태그명참고예제 MsgBox $System.IOTag("L12CHIA10001_AL147_00").Active; 1 or 0 $System.IOTag("L12CHIA10001_AL147_00").Active = 0; 비활성화시킴 1-152

168 5) 그래픽 Object 의속성설정활성화되어있는도면에속한그래픽 Object 의속성을변경한다. $System.Graphic(String strdraw).object(string strobj).visible : 객체의보이기 / 안보이기상태를변경한다. $System.Graphic(String strdraw).object(string strobj).fillcolor : 객체내부의채우기색상을변경한다. $System.Graphic(String strdraw).object(string strobj).linecolor : 객체의테두리색상을변경한다. $System.Graphic(String strdraw).object(string strobj).textcolor : 문자열객체의글자색을변경한다. $System.Graphic(String strdraw).object(string strobj).resetdata() : 리스트의내용을삭제하거나트랜드의화면을클리어한다. $System.Graphic(String jcgfile).object(string objectname).check : 체크박스를체크한다. $System.Graphic(String jcgfile).object(string objectname).addstring : 리스트박스, 콤보박스에서문자열을추가한다. $System.Graphic(String jcgfile).object(string objectname).setcurstr : 리스트박스, 콤보박스에서지정한문자를찾아서선택한다. $System.Graphic(String jcgfile).object(string objectname).setcursel : 리스트박스, 콤보박스에서지정한인덱스를선택한다. $System.Graphic(String jcgfile).object(string objectname).reloadimage : 이미지객체가표시하는이미지파일을바꾼다. 변경할이미지파일의경로는전체경로를지정해주어야한다. ( c:/image/aaa.bmp ) 1-153

169 인자 jcgfile :.JCG 파일명 objectname : JCG 파일에존재하는그래픽 Object 명 [ 그림 1.2-8] 태그기본정보참고예제 $System.Graphic("main.jcg").Object("Text1").Visible = 1; $System.Graphic("main.jcg").Object("Text1").FillColor = RGB(255,255,255); $System.Graphic("main.jcg").Object("Text1").LineColor = RGB(0,0,0); $System.Graphic("main.jcg").Object("Text1").TextColor = RGB(255,0,0); $System.Graphic(" 상황판.jcg").Object("cbo0001").SetCurSel = 1 $System.Graphic(" 상황판.jcg").Object("cbo0001").SetCurStr = " 기흥 4 라인 " $System.Graphic("main.jcg").Object("Trend1").ResetData(); $System.Graphic("main.jcg").Object("List1").ResetData(); $System.Graphic("startup.jcg").Object("ppic").ReloadImage = "D:/Document/ 회사자료 /EasyView3.0/ 평택시로고.jpg" $System.Graphic("main.jcg").Object("Text1").Visible = 1; $System.Graphic("Main.jcg").Object("Title_Fst").Visible = 0; $System.Graphic("Main.jcg").Object("Title_Unisem").Visible = 0; 1-154

170 $System.Graphic("Main.jcg").Object("Title_Thc").Visible = 0; $System.Graphic("Main.jcg").Object("PH1").Visible = 0; $System.Graphic("Main.jcg").Object("PH2").Visible = 0; $System.Graphic("Main.jcg").Object("PH3").Visible = 0; $System.Graphic("main.jcg").Object("Text1").FillColor = RGB(255,255,255); $System.Graphic("main.jcg").Object("Text1").LineColor = RGB(0,0,0); $System.Graphic("main.jcg").Object("Text1").TextColor = RGB(255,0,0); $System.Graphic("main.jcg").Object("Trend1").ResetData(); $System.Graphic("main.jcg").Object("List1").ResetData(); Dim color As Integer 입력한생상을변수로지정하여사용할수있다. color = RGB(128,128,128); $System.Graphic("main.jcg").Object("Text1").FillColor = color; $System.Graphic("main.jcg").Object("Text1").LineColor = color; $System.Graphic("main.jcg").Object("Text1").TextColor = color; 1-155

171 6) GetNodeType 현재실행되는엔진의노드타입을구한다. Integer GetNodeType() 인자빌더의프로젝트 / 로컬운영정보설정 / 네트웍 / 노드타입의인텍스참고예제 Msgbox GetNodeType() 1-156

172 7) GetNodeName 현재실행되는엔진의노드타입을구한다. String GetNodeName() 인자빌더의프로젝트 / 로컬운영정보설정 / 네트웍 / 노드명참고예제 Msgbox GetNodeName() 1-157

173 8) GetInstallPath 시스템이설치된경로를반환한다. String GetInstallPath() 인자참고예제 dim strinstallpath as string strinstallpath = GetInstallPath() 1-158

174 9) GetProjectName 현재실행되고있는프로젝트명을반환한다. String GetProjectName() 인자참고예제 dim strprojectname as string strprojectname = GetProjectName () 1-159

175 10) 시스템에등록된 I/O 디바이스명가져오기현재구동중인 I/O 디바이스의이름을반환한다. String $System.IODevice(integer nstn).name 인자참고예제 Dim nstn as Integer Dim strdev as string nstn = 1 strdev = $System.IODevice(nStn).Name 1-160

176 메모리태그의태그포인터기능메모리태그는 IO 태그에대한포인터역할을수행할수있다. ( 단, DI 메모리태그는 DI IO 태그 ( 실태그 ) 를, AI 메모리태그는 AI IO 태그 ( 실태그 ) 를가리켜야한다.) - 아래와같이 AI 메모리태그를설정한다. [ 그림 1.2-9] AI 메모리태그설정 = L12CHIA10001_LS113 으로지정하면, 의값은 L12CHIA10001_LS113 태그의값을지칭하게된다. = = " L12CHIA10001_LS113"; L12VARIATION_MEM; = 100; L12CHIA10001_LS113; 100 Dim mcode AS String mcode = = mcode + "_LS103_00"; 1-161

윈도우즈프로그래밍(1)

윈도우즈프로그래밍(1) 제어문 (2) For~Next 문 윈도우즈프로그래밍 (1) ( 신흥대학교컴퓨터정보계열 ) 2/17 Contents 학습목표 프로그램에서주어진특정문장을부분을일정횟수만큼반복해서실행하는문장으로 For~Next 문등의구조를이해하고활용할수있다. 내용 For~Next 문 다중 For 문 3/17 제어문 - FOR 문 반복문 : 프로그램에서주어진특정문장들을일정한횟수만큼반복해서실행하는문장

More information

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등

More information

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다 이장에서사용되는 MATLAB 명령어들은비교적복잡하므로 MATLAB 창에서명령어를직접입력하지않고확장자가 m 인 text 파일을작성하여실행을한다. 즉, test.m 과같은 text 파일을만들어서 MATLAB 프로그램을작성한후실행을한다. 이와같이하면길고복잡한 MATLAB 프로그램을작성하여실행할수있고, 오류가발생하거나수정이필요한경우손쉽게수정하여실행할수있는장점이있으며,

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

PCServerMgmt7

PCServerMgmt7 Web Windows NT/2000 Server DP&NM Lab 1 Contents 2 Windows NT Service Provider Management Application Web UI 3 . PC,, Client/Server Network 4 (1),,, PC Mainframe PC Backbone Server TCP/IP DCS PLC Network

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된

More information

Java ...

Java ... 컴퓨터언어 1 Java 제어문 조성일 조건문 : if, switch 어떠한조건을조사하여각기다른명령을실행 if 문, switch 문 if 문 if - else 문형식 if 문형식 if ( 조건식 ) { 명령문 1; 명령문 2;... if ( 조건식 ) { 명령문 1; 명령문 2;... else { 명령문 a; 명령문 b;... 예제 1 정수를입력받아짝수와홀수를판별하는프로그램을작성하시오.

More information

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600 균형이진탐색트리 -VL Tree delson, Velskii, Landis에의해 1962년에제안됨 VL trees are balanced n VL Tree is a binary search tree such that for every internal node v of T, the heights of the children of v can differ by at

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770> 예약어(reserved word) : 프로그래밍 언어에서 특별한 용도로 사용하고자 미리 지정한 단어 - 프로그램의 구성요소를 구별하게 해주는 역할 => 라벨, 서브 프로그램 이름, 변수에 연관되어 다른 변수나 서브 프로그램 등과 구별 - 식별자의 최대길이는 언어마다 각각 다르며 허용길이를 넘어서면 나머지 문자열은 무시됨 - FORTRAN, COBOL, HTML

More information

APOGEE Insight_KR_Base_3P11

APOGEE Insight_KR_Base_3P11 Technical Specification Sheet Document No. 149-332P25 September, 2010 Insight 3.11 Base Workstation 그림 1. Insight Base 메인메뉴 Insight Base Insight Insight Base, Insight Base Insight Base Insight Windows

More information

<C6F7C6AEB6F5B1B3C0E72E687770> 1-1. 포트란 언어의 역사 1 1-2. 포트란 언어의 실행 단계 1 1-3. 문제해결의 순서 2 1-4. Overview of Fortran 2 1-5. Use of Columns in Fortran 3 1-6. INTEGER, REAL, and CHARACTER Data Types 4 1-7. Arithmetic Expressions 4 1-8. 포트란에서의

More information

MySQL-.. 1

MySQL-.. 1 MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

160322_ADOP 상품 소개서_1.0

160322_ADOP 상품 소개서_1.0 상품 소개서 March, 2016 INTRODUCTION WHO WE ARE WHAT WE DO ADOP PRODUCTS : PLATON SEO SOULTION ( ) OUT-STREAM - FOR MOBILE ADOP MARKET ( ) 2. ADOP PRODUCTS WHO WE ARE ADOP,. 2. ADOP PRODUCTS WHAT WE DO ADOP,.

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

Chapter 4. LISTS

Chapter 4. LISTS C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or

More information

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1); void method() 2); void method1() public class Test 3); args) A 제 10 장상속 예제 1) ConstructorTest.java class Parent public Parent() super - default"); public Parent(int i) this("hello"); super(int) constructor" + i); public Parent(char c) this(); super(char) constructor

More information

OPCTalk for Hitachi Ethernet 1 2. Path. DCOMwindow NT/2000 network server. Winsock update win95. . . 3 Excel CSV. Update Background Thread Client Command Queue Size Client Dynamic Scan Block Block

More information

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f JPA 에서 QueryDSL 사용하기위해 JPAQuery 인스턴스생성방법 http://ojc.asia, http://ojcedu.com 1. JPAQuery 를직접생성하기 JPAQuery 인스턴스생성하기 QueryDSL의 JPAQuery API를사용하려면 JPAQuery 인스턴스를생성하면된다. // entitymanager는 JPA의 EntityManage

More information

10X56_NWG_KOR.indd

10X56_NWG_KOR.indd 디지털 프로젝터 X56 네트워크 가이드 이 제품을 구입해 주셔서 감사합니다. 본 설명서는 네트워크 기능 만을 설명하기 위한 것입니다. 본 제품을 올바르게 사 용하려면 이 취급절명저와 본 제품의 다른 취급절명저를 참조하시기 바랍니다. 중요한 주의사항 이 제품을 사용하기 전에 먼저 이 제품에 대한 모든 설명서를 잘 읽어 보십시오. 읽은 뒤에는 나중에 필요할 때

More information

Assign an IP Address and Access the Video Stream - Installation Guide

Assign an IP Address and Access the Video Stream - Installation Guide 설치 안내서 IP 주소 할당 및 비디오 스트림에 액세스 책임 본 문서는 최대한 주의를 기울여 작성되었습니다. 잘못되거나 누락된 정보가 있는 경우 엑시스 지사로 알려 주시기 바랍니다. Axis Communications AB는 기술적 또는 인쇄상의 오류에 대해 책 임을 지지 않으며 사전 통지 없이 제품 및 설명서를 변경할 수 있습니다. Axis Communications

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

컴파일러

컴파일러 YACC 응용예 Desktop Calculator 7/23 Lex 입력 수식문법을위한 lex 입력 : calc.l %{ #include calc.tab.h" %} %% [0-9]+ return(number) [ \t] \n return(0) \+ return('+') \* return('*'). { printf("'%c': illegal character\n",

More information

Chapter 4. LISTS

Chapter 4. LISTS 연결리스트의응용 류관희 충북대학교 1 체인연산 체인을역순으로만드는 (inverting) 연산 3 개의포인터를적절히이용하여제자리 (in place) 에서문제를해결 typedef struct listnode *listpointer; typedef struct listnode { char data; listpointer link; ; 2 체인연산 체인을역순으로만드는

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

안전을 위한 주의사항 제품을 올바르게 사용하여 위험이나 재산상의 피해를 미리 막기 위한 내용이므로 반드시 지켜 주시기 바랍니다. 2 경고 설치 관련 지시사항을 위반했을 때 심각한 상해가 발생하거나 사망에 이를 가능성이 있는 경우 설치하기 전에 반드시 본 기기의 전원을

안전을 위한 주의사항 제품을 올바르게 사용하여 위험이나 재산상의 피해를 미리 막기 위한 내용이므로 반드시 지켜 주시기 바랍니다. 2 경고 설치 관련 지시사항을 위반했을 때 심각한 상해가 발생하거나 사망에 이를 가능성이 있는 경우 설치하기 전에 반드시 본 기기의 전원을 Digital Video Recorder 간편설명서 XD3316 안전을 위한 주의사항 제품을 올바르게 사용하여 위험이나 재산상의 피해를 미리 막기 위한 내용이므로 반드시 지켜 주시기 바랍니다. 2 경고 설치 관련 지시사항을 위반했을 때 심각한 상해가 발생하거나 사망에 이를 가능성이 있는 경우 설치하기 전에 반드시 본 기기의 전원을 차단하고, 전원 플러그를 동시에

More information

Microsoft Word - FunctionCall

Microsoft Word - FunctionCall Function all Mechanism /* Simple Program */ #define get_int() IN KEYOARD #define put_int(val) LD A val \ OUT MONITOR int add_two(int a, int b) { int tmp; tmp = a+b; return tmp; } local auto variable stack

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp 1 0 1.7 6 5 'A ' '/ u 4 4 2 2 ' " JS P 프로그래밍 " A ', 'b ', ' 한 ', 9, \ u d 6 5 4 ' c h a r a = 'A '; 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 < % @ p a g e c o n te n

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

System Recovery 사용자 매뉴얼

System Recovery 사용자 매뉴얼 Samsung OS Recovery Solution 을이용하여간편하게 MagicInfo 의네트워크를설정하고시스템을백업및복원할수있습니다. 시스템시작시리모컨의 - 버튼이나키보드의 F3 키를연속해서누르면복구모드로진입한후 Samsung OS Recovery Solution 이실행됩니다. Samsung OS Recovery Solution 은키보드와리모컨을사용하여조작할수있습니다.

More information

歯표지_통합_.PDF

歯표지_통합_.PDF LG GLOFA MASTER-K PID G3F-PIDA G4F-PIDA G3F-PIDA/G4F-PIDA PLC GLOFA GM3/4 CPU MASTER-K 200S/300S/1000S CPU!!! 2 ! PLC,,,,,! PCB,,, Off! 1 1-1 ~ 1-1 11 1-1 2 2-1 ~ 2-13 21 2-1 22 2-2 23 2-3 24 PID 2-4 241

More information

11111111111111111111111111111111111111111111111111111111111111111111111111111

11111111111111111111111111111111111111111111111111111111111111111111111111111 서울시 금천구 가산동 448 대륭테크노타운 3차 301호 전화 : (02)838-0760 팩스 : (02)838-0782 메일 : support@gyrosoft.co.kr www.gyrosoft.co.kr www.gyro3d.com 매뉴얼 버전 : 1.00 (발행 2008.6.1) 이 설명서의 어느 부분도 자이로소프트(주)의 승인 없이 일부 또는 전부를 복제하여

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

Chapter 1

Chapter 1 3 Oracle 설치 Objectives Download Oracle 11g Release 2 Install Oracle 11g Release 2 Download Oracle SQL Developer 4.0.3 Install Oracle SQL Developer 4.0.3 Create a database connection 2 Download Oracle 11g

More information

TITLE

TITLE CSED421 Database Systems Lab MySQL Basic Syntax SQL DML & DDL Data Manipulation Language SELECT UPDATE DELETE INSERT INTO Data Definition Language CREATE DATABASE ALTER DATABASE CREATE TABLE ALTER TABLE

More information

804NW±¹¹®

804NW±¹¹® Copyright Samsung SDS All rights Reserved. 1 2 3 4 센트에서 빼낸 다음 삼성 S D S 고객센터 기사에게 연락합니다. 5 6 삼성 고객센터 기사에게 이지온 영상 전화기가 작동하는 상태에서 안전점검을 수행토록 요구해야 합니다 7 8 반드시 삼성 에서 승인된 부품만을 사용해야 합니다 삼성 에서 승인된 부품을 사용하지 않을

More information

..........(......).hwp

..........(......).hwp START START 질문을 통해 우선순위를 결정 의사결정자가 질문에 답함 모형데이터 입력 목표계획법 자료 목표계획법 모형에 의한 해의 도출과 득실/확률 분석 END 목표계획법 산출결과 결과를 의사 결정자에게 제공 의사결정자가 결과를 검토하여 만족여부를 대답 의사결정자에게 만족하는가? Yes END No 목표계획법 수정 자료 개선을 위한 선택의 여지가 있는지

More information

특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가

특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가 www.kdnetwork.com 특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가능할 삭제할 건전지 사용자를 위한 개별 비밀번호 및 RF카드

More information

07 자바의 다양한 클래스.key

07 자바의 다양한 클래스.key [ 07 ] . java.lang Object, Math, String, StringBuffer Byte, Short, Integer, Long, Float, Double, Boolean, Character. java.util Random, StringTokenizer Calendar, GregorianCalendar, Date. Collection, List,

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton

More information

슬라이드 1

슬라이드 1 강력한성능! 인터넷 / 업무용데스크탑 PC NX-H Series Desktop PC NX1- H700/H800/H900 NX2- H700/H800/H900 NX1-H Series 사양 Series 제품설명 ( 모델명 ) NX1-H Series, 슬림타입 기본형모델중보급형모델고급형모델 NX1-H800:112SN NX1-H800:324SN NX1-H800:534MS

More information

PHP & ASP

PHP & ASP 단어장프로젝트 프로젝트2 단어장 select * from address where address like '% 경기도 %' td,li,input{font-size:9pt}

More information

CLX8380_KR.book

CLX8380_KR.book 이 사용설명서와 제품은 저작권법에 의해 보호되어 있습니다. 삼성전자 ( 주 ) 의 사전 서면 동의 없이 사용설명서 및 제품의 일부 또는 전체를 복사, 복제, 번역 또는 전자매체나 기계가 읽을 수 있는 형태로 바꿀 수 없습니다. 이 사용설명서와 제품은 표기상의 잘못이나 기술적인 잘못이 있을 수 있으며 사전 통보 없이 이러한 내용들이 변경될 수 있습니다. CLX-8380ND,

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729> 8주차중간고사 ( 인터럽트및 A/D 변환기문제및풀이 ) Next-Generation Networks Lab. 외부입력인터럽트예제 문제 1 포트 A 의 7-segment 에초시계를구현한다. Tact 스위치 SW3 을 CPU 보드의 PE4 에연결한다. 그리고, SW3 을누르면하강 에지에서초시계가 00 으로초기화된다. 동시에 Tact 스위치 SW4 를 CPU 보드의

More information

IRISCard Anywhere 5

IRISCard Anywhere 5 이 빠른 사용자 가이드는 IRISCard Anywhere 5 및 IRISCard Corporate 5 스캐너의 설치와 시작을 도와 드립니다. 이 스캐너와 함께 제공되는 소프트웨어는: - Cardiris Pro 5 및 Cardiris Corporate 5 for CRM (Windows 용) - Cardiris Pro 4 (Mac OS 용) Cardiris 의

More information

오버라이딩 (Overriding)

오버라이딩 (Overriding) WindowEvent WindowEvent 윈도우가열리거나 (opened) 닫힐때 (closed) 활성화되거나 (activated) 비활성화될때 (deactivated) 최소화되거나 (iconified) 복귀될때 (deiconified) 윈도우닫힘버튼을누를때 (closing) WindowEvent 수신자 abstract class WindowListener

More information

vi 사용법

vi 사용법 네트워크프로그래밍 6 장과제샘플코드 - 1:1 채팅 (udp 버전 ) 과제 서버에서먼저 bind 하고그포트를다른사람에게알려줄것 클라이언트에서알려준포트로접속 서로간에키보드입력을받아상대방에게메시지전송 2 Makefile 1 SRC_DIR =../../common 2 COM_OBJS = $(SRC_DIR)/addressUtility.o $(SRC_DIR)/dieWithMessage.o

More information

ActFax 4.31 Local Privilege Escalation Exploit

ActFax 4.31 Local Privilege Escalation Exploit NSHC 2013. 05. 23 악성코드 분석 보고서 [ Ransomware 악성코드 ] 사용자의 컴퓨터를 강제로 잠그고 돈을 요구하는 형태의 공격이 기승을 부리고 있 습니다. 이러한 형태의 공격에 이용되는 악성코드는 Ransomware로 불리는 악성코 드 입니다. 한번 감염 시 치료절차가 복잡하며, 보고서 작성 시점을 기준으로 지속 적인 피해자가 발생되고

More information

untitled

untitled (Rev. 1.6) 1 1. MagicLAN.......8 1.1............8 1.2........8 1.3 MagicLAN.......10 2.........12 2.1.... 12 2.2 12 2.3....12 3. Windows 98SE/ME/2000/XP......13 3.1.....13 3.2 Windows 98SE.... 13 3.3 Windows

More information

Chapter ...

Chapter ... Chapter 4 프로세서 (4.9절, 4.12절, 4.13절) Contents 4.1 소개 4.2 논리 설계 기초 4.3 데이터패스 설계 4.4 단순한 구현 방법 4.5 파이프라이닝 개요*** 4.6 파이프라이닝 데이터패스 및 제어*** 4.7 데이터 해저드: 포워딩 vs. 스톨링*** 4.8 제어 해저드*** 4.9 예외 처리*** 4.10 명령어 수준

More information

Windows Server 2012

Windows Server  2012 Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Verilog: Finite State Machines CSED311 Lab03 Joonsung Kim, joonsung90@postech.ac.kr Finite State Machines Digital system design 시간에배운것과같습니다. Moore / Mealy machines Verilog 를이용해서어떻게구현할까? 2 Finite State

More information

목차 1. 개요... 3 2. USB 드라이버 설치 (FTDI DRIVER)... 4 2-1. FTDI DRIVER 실행파일... 4 2-2. USB 드라이버 확인방법... 5 3. DEVICE-PROGRAMMER 설치... 7 3-1. DEVICE-PROGRAMMER

목차 1. 개요... 3 2. USB 드라이버 설치 (FTDI DRIVER)... 4 2-1. FTDI DRIVER 실행파일... 4 2-2. USB 드라이버 확인방법... 5 3. DEVICE-PROGRAMMER 설치... 7 3-1. DEVICE-PROGRAMMER < Tool s Guide > 목차 1. 개요... 3 2. USB 드라이버 설치 (FTDI DRIVER)... 4 2-1. FTDI DRIVER 실행파일... 4 2-2. USB 드라이버 확인방법... 5 3. DEVICE-PROGRAMMER 설치... 7 3-1. DEVICE-PROGRAMMER 실행파일... 7 4. DEVICE-PROGRAMMER 사용하기...

More information

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인 스마일서브 CLOUD_Virtual 워드프레스 설치 (WORDPRESS INSTALL) 스마일서브 가상화사업본부 Update. 2012. 09. 04. 본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게

More information

歯메뉴얼v2.04.doc

歯메뉴얼v2.04.doc 1 SV - ih.. 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 - - - 23 24 R S T G U V W P1 P2 N R S T G U V W P1 P2 N R S T G U V W P1 P2 N 25 26 DC REACTOR(OPTION) DB UNIT(OPTION) 3 φ 220/440 V 50/60

More information

Microsoft PowerPoint - 27.pptx

Microsoft PowerPoint - 27.pptx 이산수학 () n-항관계 (n-ary Relations) 2011년봄학기 강원대학교컴퓨터과학전공문양세 n-ary Relations (n-항관계 ) An n-ary relation R on sets A 1,,A n, written R:A 1,,A n, is a subset R A 1 A n. (A 1,,A n 에대한 n- 항관계 R 은 A 1 A n 의부분집합이다.)

More information

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어 개나리 연구소 C 언어 노트 (tyback.egloos.com) 프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어먹고 하더라구요. 그래서,

More information

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1 디지털 사진 프린터 P-S100 프린터 드라이버 설치 가이드 사용하는 컴퓨터에 따라 제공된 프린터 드라이버를 설치합니다. 설치 절차 에 대한 자세한 내용은 CD-ROM의 Readme 파일을 참조하십시오. 작동 환경 Windows 호환 모델: IBM PC/AT 및 호환품 운영 체제: Windows 98 SE/Me/2000/XP (Windows 98 SE/Me/2000/XP

More information

A 001~A 036

A 001~A 036 4 3 2 0 8 91 0 1 2 3 4 5 6 08 09 00 01 02 03 04 18 19 10 29 20 22 23 39 30 31 32 33 48 49 40 41 59 50 69 1 2 3 4 1 2 3 4 1 4 7 10 13 1 2 3 4 5 6 rev. C C r C a f h f h L h h nrpm f h f n L C 3 P L

More information

Windows 네트워크 사용 설명서

Windows 네트워크 사용 설명서 Windows 네트워크 사용 설명서 (Wireless Manager mobile edition 5.5) 그림의 예로 사용된 프로젝터는 PT-FW300NTEA 입니다. 한국어 TQBH0205-5 (K) 목차 소프트웨어 라이센스 계약 3 무선 연결 사용 시 참고 사항 4 보안 관련 참고 사항 6 소프트웨어 요구 사항 12 시스템 요구 사항 12 Wireless

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

y 0.5 9, 644 e = 10, y = ln = 3.6(%) , May. 20, 2005

y 0.5 9, 644 e = 10, y = ln = 3.6(%) , May. 20, 2005 8 116, May. 20, 2005 y 0.5 9, 644 e = 10, 000 1 9644 y = ln = 3.6(%) 0.5 10000 9 116, May. 20, 2005 y 0.5 9, 644 e = 10, 000 1 9644 y = ln = 3.6(%) 0.5 10000 1 FV r T = ln T PV 10 116, May. 20, 2005 Public

More information

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET 135-080 679-4 13 02-3430-1200 1 2 11 2 12 2 2 8 21 Connection 8 22 UniSQLConnection 8 23 8 24 / / 9 3 UniSQL 11 31 OID 11 311 11 312 14 313 16 314 17 32 SET 19 321 20 322 23 323 24 33 GLO 26 331 GLO 26

More information

Week5

Week5 Week 05 Iterators, More Methods and Classes Hash, Regex, File I/O Joonhwan Lee human-computer interaction + design lab. Iterators Writing Methods Classes & Objects Hash File I/O Quiz 4 1. Iterators Array

More information

MF Driver Installation Guide

MF Driver Installation Guide Korean MF 드라이버 설치설명서 사용자 소프트웨어 CD-ROM... 드라이버 및 소프트웨어 정보...1 지원되는 운영 체제...1 MF 드라이버 및 MF Toolbox 설치... [쉬운 설치]를 사용한 설치...2 [사용자 정의 설치]를 사용한 설치...10 USB 케이블 연결(USB를 이용해 연결하는 경우만)...20 설치 결과 확인...21 온라인

More information

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

Microsoft Word - FS_ZigBee_Manual_V1.3.docx FirmSYS Zigbee etworks Kit User Manual FS-ZK500 Rev. 2008/05 Page 1 of 26 Version 1.3 목 차 1. 제품구성... 3 2. 개요... 4 3. 네트워크 설명... 5 4. 호스트/노드 설명... 6 네트워크 구성... 6 5. 모바일 태그 설명... 8 6. 프로토콜 설명... 9 프로토콜 목록...

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 사용자계정관리 운영체제실습 목차 Ⅲ. 사용자계정관리 4.1 사용자계정관리 4.2 그룹관리 4.3 사용자계정관련파일 4.4 패스워드관리 4.5 사용자신분확인 4.1 사용자계정관리 사용자생성관련명령어 사용자생성 : useradd / adduser 사용자삭제 : userdel 사용자정보변경 : usermod 패스워드설정및변경 : passwd 그룹생성관련명령어 group

More information

목차 제 1 장 inexio Touch Driver소개... 3 1.1 소개 및 주요 기능... 3 1.2 제품사양... 4 제 2 장 설치 및 실행... 5 2.1 설치 시 주의사항... 5 2.2 설치 권고 사양... 5 2.3 프로그램 설치... 6 2.4 하드웨

목차 제 1 장 inexio Touch Driver소개... 3 1.1 소개 및 주요 기능... 3 1.2 제품사양... 4 제 2 장 설치 및 실행... 5 2.1 설치 시 주의사항... 5 2.2 설치 권고 사양... 5 2.3 프로그램 설치... 6 2.4 하드웨 최종 수정일: 2010.01.15 inexio 적외선 터치스크린 사용 설명서 [Notes] 본 매뉴얼의 정보는 예고 없이 변경될 수 있으며 사용된 이미지가 실제와 다를 수 있습니다. 1 목차 제 1 장 inexio Touch Driver소개... 3 1.1 소개 및 주요 기능... 3 1.2 제품사양... 4 제 2 장 설치 및 실행... 5 2.1 설치 시

More information

ALTIBASE 사용자가이드 Templete

ALTIBASE 사용자가이드 Templete Real Alternative DBMS ALTIBASE, Since 1999 WINDOWS ADO.NET 환경의 ALTIBASE 개발가이드 2010. 09 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record Date Author Change

More information

<32303134313138395FC1A6BEC8BFE4C3BBBCAD2E687770>

<32303134313138395FC1A6BEC8BFE4C3BBBCAD2E687770> 제 안 요 청 서 (신구대학교 모바일 학사행정시스템 개발) 2014년 12월 12일 목 차 I. 사업개요 1. 사업명 2. 사업 목적 3. 개발범위 4. 사업 추진 일정 5. 입찰 및 사업자 선정 방식 6. 사업 관련 문의 1 1 1 1 2 2 2 II. 학교 현황 및 기존 시스템 1. 신구대학교 현황 2. 관련장비 현황 3 3 3 III. 제안 요구 사항

More information

목차 Q-1. 데이터를 통한 음성통화가 되지 않습니다.... 4 Q-2. WiFi 연결이 안됩니다.... 4 Q-3. 인터넷 또는 네트워크 연결이 안됩니다.... 5 Q-4. 표준 부속품을 알려주시기 바랍니다.... 6 Q-5. 구입하였습니다만, 배터리는 어떻게 장착하

목차 Q-1. 데이터를 통한 음성통화가 되지 않습니다.... 4 Q-2. WiFi 연결이 안됩니다.... 4 Q-3. 인터넷 또는 네트워크 연결이 안됩니다.... 5 Q-4. 표준 부속품을 알려주시기 바랍니다.... 6 Q-5. 구입하였습니다만, 배터리는 어떻게 장착하 사용자 FAQ (URoad-LFM300) 2015. 08. 26 1 / 19 Copyright c MODACOM Co., Ltd. 목차 Q-1. 데이터를 통한 음성통화가 되지 않습니다.... 4 Q-2. WiFi 연결이 안됩니다.... 4 Q-3. 인터넷 또는 네트워크 연결이 안됩니다.... 5 Q-4. 표준 부속품을 알려주시기 바랍니다.... 6 Q-5.

More information

% Rectangular Value 입력 t = -50 : 1 : 50; % 시간영역 for i = 1 : 101 if abs ( t ( i ) ) < 10 x ( i ) = 1; else x ( i ) = 0; % 화면을 2 열 1 행으로나눈후 % 2 열 1 행에 R

% Rectangular Value 입력 t = -50 : 1 : 50; % 시간영역 for i = 1 : 101 if abs ( t ( i ) ) < 10 x ( i ) = 1; else x ( i ) = 0; % 화면을 2 열 1 행으로나눈후 % 2 열 1 행에 R % sin 그래프계산및출력 t = -50 : 1 : 50; T = 10; f = 1/T; Nsin = sin ( ( 2 * pi * f * t ) ) % 시간영역 % 주기 % 주파수 % sin(2πft) % F(sin) 계산 Fsin = fftshift ( fft ( Nsin ) ); % 화면을 2 열 1 행으로나눈후 % 2 열 1 행에 Sin 그래프출력 subplot

More information

Microsoft PowerPoint - chap06-4 [호환 모드]

Microsoft PowerPoint - chap06-4 [호환 모드] 2011-1 학기프로그래밍입문 (1) chapter 06-4 참고자료 문자열의처리 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 문자열의연산 문자열은배열의형태로구현된응용자료형이므로연산을자유롭게할수없다. 배열에저장된문자열의길이를계산하는작업도간단하지않다.

More information

Microsoft PowerPoint - 7_배열_문자열

Microsoft PowerPoint - 7_배열_문자열 * 이번주주제: 배열, 문자열 1 * 지난주내용: 함수 2 * 배열의 개념 (p86) - 복수의 동일한 데이터 형의 변수를 하나로 묶은 것. - 대량의 데이터를 취급할 때나 여러 데이터를 차례로 자동적으로 입출력해야 할 때 배열을 사용 하면 편리. - 배열도 변수와 마찬가지로 선언이 필요. - 배열을 초기화 할 때는 { }를 사용하여 값을 열거. - [ ]안의

More information

歯DCS.PDF

歯DCS.PDF DCS 1 DCS - DCS Hardware Software System Software & Application 1) - DCS System All-Mighty, Module, ( 5 Mbps ) Data Hardware : System Console : MMI(Man-Machine Interface), DCS Controller :, (Transmitter

More information

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public Chapter 9 Lab 문제정답 1. public class Circle private double radius; static final double PI=3.141592; // PI 이름으로 3.141592 로초기화된정적상수 (1) public Circle(double r) radius = r; (2) public double getradius() return

More information

<목 차 > 제 1장 일반사항 4 I.사업의 개요 4 1.사업명 4 2.사업의 목적 4 3.입찰 방식 4 4.입찰 참가 자격 4 5.사업 및 계약 기간 5 6.추진 일정 6 7.사업 범위 및 내용 6 II.사업시행 주요 요건 8 1.사업시행 조건 8 2.계약보증 9 3

<목 차 > 제 1장 일반사항 4 I.사업의 개요 4 1.사업명 4 2.사업의 목적 4 3.입찰 방식 4 4.입찰 참가 자격 4 5.사업 및 계약 기간 5 6.추진 일정 6 7.사업 범위 및 내용 6 II.사업시행 주요 요건 8 1.사업시행 조건 8 2.계약보증 9 3 열차운행정보 승무원 확인시스템 구축 제 안 요 청 서 2014.6. 제 1장 일반사항 4 I.사업의 개요 4 1.사업명 4 2.사업의 목적 4 3.입찰 방식 4 4.입찰 참가 자격 4 5.사업 및 계약 기간 5 6.추진 일정 6 7.사업 범위 및 내용 6 II.사업시행 주요 요건 8 1.사업시행 조건 8 2.계약보증 9 3.시운전 및 하자보증 10

More information

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor 19. 전처리와분할컴파일 순천향대학교컴퓨터학부이상정 1 학습내용 전처리명령어 #include #define 기호상수 const 분할컴파일 순천향대학교컴퓨터학부이상정 2 전처리과정 전처리 (preprocessor) 전처리명령어는 # 기호로시작 #incldue #define 순천향대학교컴퓨터학부이상정 3 #include (1) 지정된파일을프로그램에삽입 꺽쇠괄호는포함할파일을컴파일러에설정되어있는특정디렉토리에서검색

More information

교육자료

교육자료 THE SYS4U DODUMENT Java Reflection & Introspection 2012.08.21 김진아사원 2012 SYS4U I&C All rights reserved. 목차 I. 개념 1. Reflection 이란? 2. Introspection 이란? 3. Reflection 과 Introspection 의차이점 II. 실제사용예 1. Instance의생성

More information

씨에이에스는 서울특별시 시설관리공단 계약 제1579호(2005.7.25) 장애인 콜택시 콜센터 차량관제시스템 구축사업 감리용역 에 근거하여 카나스 에서 수행중인 장애인콜택시 콜센터 차량관제시스템 구축사업에 대한 최종감리를 실시하고 본 보고서를 제출합니다. 2005.11

씨에이에스는 서울특별시 시설관리공단 계약 제1579호(2005.7.25) 장애인 콜택시 콜센터 차량관제시스템 구축사업 감리용역 에 근거하여 카나스 에서 수행중인 장애인콜택시 콜센터 차량관제시스템 구축사업에 대한 최종감리를 실시하고 본 보고서를 제출합니다. 2005.11 관리 번호 씨에이에스 감리 2005-102호 서울특별시 시설관리공단 장애인콜택시 콜센터 차량관제시스템 구축사업 최종감리 보고서 2005 년 11 월 씨에이에스 씨에이에스는 서울특별시 시설관리공단 계약 제1579호(2005.7.25) 장애인 콜택시 콜센터 차량관제시스템 구축사업 감리용역 에 근거하여 카나스 에서 수행중인 장애인콜택시 콜센터 차량관제시스템 구축사업에

More information

untitled

untitled Step Motor Device Driver Embedded System Lab. II Step Motor Step Motor Step Motor source Embedded System Lab. II 2 open loop, : : Pulse, 1 Pulse,, -, 1 +5%, step Step Motor (2),, Embedded System Lab. II

More information

1

1 1 2 3 4 5 6 b b t P A S M T U s 7 m P P 8 t P A S M T U s 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Chapter 1 29 1 2 3 4 18 17 16 15 5 6 7 8 9 14 13 12 11 10 1 2 3 4 5 9 10 11 12 13 14 15

More information

Chapter_06

Chapter_06 프로그래밍 1 1 Chapter 6. Functions and Program Structure April, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 이장의강의목표 2 문자의입력방법을이해한다. 중첩된 if문을이해한다. while 반복문의사용법을익힌다. do 반복문의사용법을익힌다.

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 9 강. 클래스의활용목차 멤버함수의외부정의 this 포인터 friend 선언 static 멤버 임시객체 1 /17 9 강. 클래스의활용멤버함수의외부정의 멤버함수정의구현방법 내부정의 : 클래스선언내에함수정의구현 외부정의 클래스선언 : 함수프로토타입 멤버함수정의 : 클래스선언외부에구현

More information

ch3.hwp

ch3.hwp 미디어정보처리 (c) -4 한남대 정보통신멀티미디어학부 MCCLab. - -...... (linear filtering). Z k = n i = Σn m Σ j = m M ij I ji 컨볼루션 영역창 I I I I 3 I 4 I 5 I 6 I 7 I 8 x 컨볼루션 마스크 M M M M 3 M 4 M 5 M 6 M 7 M 8 I 입력 영상 Z 4 = 8 k

More information

Microsoft Word - Installation and User Manual_CMD V2.2_.doc

Microsoft Word - Installation and User Manual_CMD V2.2_.doc CARDMATIC CMD INSTALLATION MANUAL 씨앤에이씨스템(C&A SYSTEM Co., Ltd.) 본사 : 서울특별시 용산구 신계동 24-1(금양빌딩 2층) TEL. (02)718-2386( 代 ) FAX. (02) 701-2966 공장/연구소 : 경기도 고양시 일산동구 백석동 1141-2 유니테크빌 324호 TEL. (031)907-1386

More information

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리 ArcGIS for Desktop 10.4 Single Use 설치가이드 Software: ArcGIS for Desktop 10.4 Platforms: Windows 10, 8.1, 7, Server 2012, Server 2008 ArcGIS for Desktop 10.4 시스템 요구사항 1. 지원 플랫폼 운영체제 최소 OS 버전 최대 OS 버전 Windows

More information

<3035303432365FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

<3035303432365FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770> 개 요 홈페이지 해킹 현황 및 사례 홈페이지 개발시 보안 취약점 및 대책 주요 애플리케이션 보안 대책 결 론 참고자료 [부록1] 개발 언어별 로그인 인증 프로세스 예제 [부록2] 대규모 홈페이지 변조 예방을 위한 권고(안) [부록3] 개인정보의 기술적 관리적 보호조치 기준(안) [부록4] 웹 보안관련 주요 사이트 리스트 7000 6,478 6000 5000

More information

Microsoft Word - Armjtag_문서1.doc

Microsoft Word - Armjtag_문서1.doc ARM JTAG (wiggler 호환 ) 사용방법 ( IAR EWARM 에서 ARM-JTAG 로 Debugging 하기 ) Test Board : AT91SAM7S256 IAR EWARM : Kickstart for ARM ARM-JTAG : ver 1.0 ( 씨링크테크 ) 1. IAR EWARM (Kickstart for ARM) 설치 2. Macraigor

More information

[8051] 강의자료.PDF

[8051] 강의자료.PDF CY AC F0 RS1 RS0 OV - P 0xFF 0x80 0x7F 0x30 0x2F 0x20 0x1F 0x18 0x17 0x10 0x0F 0x08 0x07 0x00 0x0000 0x0FFF 0x1000 0xFFFF 0x0000 0xFFFF RAM SFR SMOD - - - GF1 GF0 PD IDL 31 19 18 9 12 13 14 15 1 2 3 4

More information

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집 Modern Modern www.office.com ( ) 892 5 : 1577-9700 : http://www.microsoft.com/korea Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와

More information

OZ-LMS TM OZ-LMS 2008 OZ-LMS 2006 OZ-LMS Lite Best IT Serviece Provider OZNET KOREA Management Philosophy & Vision Introduction OZNETKOREA IT Mission Core Values KH IT ERP Web Solution IT SW 2000 4 3 508-2

More information

PRO1_01E [읽기 전용]

PRO1_01E [읽기 전용] PCS 7 Software NET PC WinCC HMI DP Controller Siemens AG 1999 All rights reserved File: PRO1_01E1 2 S7-200 3 S7-200: 4 S7-200: CPU 5 S7-300 6 S7-300: 7 S7-300: CPU 8 S7-400 9 S7-400: 10 S7-400: CPU (1)

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 11 장상속 이번장에서학습할내용 상속이란? 상속의사용 메소드재정의 접근지정자 상속과생성자 Object 클래스 종단클래스 상속을코드를재사용하기위한중요한기법입니다. 상속이란? 상속의개념은현실세계에도존재한다. 상속의장점 상속의장점 상속을통하여기존클래스의필드와메소드를재사용 기존클래스의일부변경도가능 상속을이용하게되면복잡한 GUI 프로그램을순식간에작성

More information

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오. 메 뉴 다음 사항을 꼭 확인하세요! --------------------------------- 2p 안전을 위한 주의 사항 --------------------------------- 3p 구성품 --------------------------------- 4p 각 부분의 명칭 --------------------------------- 5p 제품의 규격

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 11 곡선과곡면 01 Spline 곡선 02 Spline 곡면 03 Subdivision 곡면 C n 연속성 C 0 연속성 C 1 연속성 2 C 2 연속성 01 Spline 곡선 1. Cardinal Spline Curve 2. Hermite Spline Curve 3. Bezier Spline Curve 4. Catmull-Rom Spline Curve 5.

More information