본문 바로가기
공부,일/HMI

20210909 스크립트 , 보고서

by fromnothing1 2021. 9. 9.

하이라는 스크립트 선언 ( 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초 

 

1 태그등록 버튼

 

양식 엑셀 파일 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

댓글