하이라는 스크립트 선언 ( stirng 타입의 변수 aaa 정의 )
변수는 dim 으로 선언 할 수 있으면
딱히 선언 하지 않고 바로 값을 초기화 해줘도 상관없다.
하지만 string 타입의 경우 명시적으로 선언 해줘야한다.
화면 열때 하이 스크립트 호출 하는 방법 'runscript'
명령식에 runscript("스크립트명") 을 해주면 스크립트가 호출된다.
태그 관련 함수
예제
버튼 태그를 통해서 램프를 키고 끈다.
버튼 태그가 변활때 마다 스크립트 실행 하도록 설정
for 문이랑 캐스팅 연습
메세지 박스에 출력
bit 표현
word 를 bit 로 변화시켜서 태그에 1대1 매치 해준다.
sub Word2Bit()
worddata = gettagval("비트.WORD")
bitmask = 1
for i = 0 to 15
tagstr$ = "비트.BIT" + Format(i,"00")
bitdata = worddata AND bitmask
if(bitdata > 0 ) then
settagval tagstr$ , 1
else
settagval tagstr$ , 0
end if
bitmask = bitmask * 2
next
End sub
Sub Bit2Word()
worddata = 0
bitmask = 1
for i = 0 to 15
tagstr$ = "비트.BIT" + Format(i,"00")
BitVal = GetTagVal(tagstr$)
bitmask = 2^i
worddata = worddata + bitmask*BitVal
Next
SetTagVal "비트.WORD" ,worddata
End Sub
보고서
보고서.보고서 태그가 1이면 시작 , 0 이면 보고서 출력 데이타 수집 주기 5초
양식 엑셀 파일 3 번 row 부터 데이터를 넣는다.
스크립트 파일을 이용한 엑셀 파일 생성
Sub StatusSave()
Set ExcelApp = CreateObject("Excel.Application")
fFormName$ = "C:\Users\ad\OneDrive\바탕 화면\양식.xlsx"
fTodayName$ = "C:\" + TimeStr(12) + ".xlsx"
If (FileExists(fTodayName$) = True ) Then
Set DayRpt = ExcelApp.Workbooks.Open(fTodayName$)
Else
FileCopy fFormName$, fTodayName$
Set DayRpt = ExcelApp.Workbooks.Open(fTodayName$)
SetTagVal "보고서.CELL_NO",3
End If
Set Sheet1 = DayRpt.Worksheets(1)
i = GetTagVal("보고서.CELL_NO")
while ( GetTagVal("보고서.동작시그날"))
set Cell = Sheet1.Range("A" + CSTR(i))
Cell.Value = TimeStr(44)
set Cell = Sheet1.Range("B" + CSTR(i))
Cell.Value = GetTagVal("보고서.ANA1")
set Cell = Sheet1.Range("C" + CSTR(i))
Cell.Value = GetTagVal("보고서.ANA2")
set Cell = Sheet1.Range("D" + CSTR(i))
Cell.Value = GetTagVal("보고서.ANA3")
i = i +1
Interval = GetTagVal("보고서.시간간격")
sleep(Interval * 1000)
Wend
SetTagVal "보고서.CELL_NO", i
Sheet1.Calculate
DayRpt.Save
ExcelApp.Quit
Set ExcelApp = Empty
End sub
'공부,일 > HMI' 카테고리의 다른 글
20210916 (0) | 2021.09.16 |
---|---|
20210903 경보 (0) | 2021.09.03 |
210903 통신 (0) | 2021.09.03 |
수업 (2) (0) | 2021.08.27 |
20210820 SCADA (0) | 2021.08.20 |
댓글