Sub Word2Bit()
worddata = GetTagVal("WORDDATA")
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
● Get 성질을 띄는 내부 함수란, 특정 함수 A를 호출 했을 때 리턴 되는 어떤 값이 존재 한다면 그 함수는 Get 성질을 띤 함수이다
예) GetTagVal, TLogVal, CommStatus 함수 등
Set 성질을 띄는 내부함수는 괄호를 입력하지 않음
● Set 성질을 띄는 내부 함수란, 특정 함수 A를 호출 했을 때 리턴 되는 값은 없고 오로 지 특정 명령을 수행하는 함수라면 그 함수는 Set 성질을 띤 함수이다.
예) SetTagVal, OpenFileDlg, LoginEx 함수 등
이상한 애들의 약속
1. 연산식 혹은 명령식 괄호를 입력해야 함.
예를 들어, LoginEx(“userid”,”userpwd”)
2. 스크립트 함수 괄호를 입력하지 말아야 함.
예를 들어, LoginEx “userid”, ”userpwd”
왜이리 만든거야 귀찮게...
모든언어가 쓰는
if 와 select Case 는 다있음
Sub Main()
변수1# = GetTagVal("아날로그태그")
if 변수1# = 0 then
MsgBox "0입니다“
elseif 변수1# = 1 Then
MsgBox “1입니다”
else
MsgBox "0, 1이 아닙니다"
end if
End Sub
위처럼 좀 end if 쳐야함 귀찮음
Sub 반복예제()
합계 = 0
for i = 0 to 10
합계 = 합계 + i
next i //<-----여기 이거 i++같은거임
MsgBox CStr(합계)
End Sub
for문은 또 end 안씀 이상함
Sub DigChange()
While TRUE
Sleep (1000)
a = GetTagVal(“DIG1”)
SetTagVal “DIG1”,1-a
wEnd
End Sub
Sub AnaChange()
While TRUE
Sleep (2000)
a = GetTagVal(“ANA1”)
SetTagVal “ANA1”,a+1
wEnd
End Sub
while 은 또 wEnd로 줄여씀 break 같은거인가 아님 메모리 차지 없에는건가
Exit For 나간다 Break랑 같은듯
Sub 반복예제()
합계 = 0
for i = 0 to 10
if 합계 > 30 then
Exit For
else
합계 = 합계 + i
end if
next i
MsgBox CStr(합계)
End Sub
계속보니깐 대충은 보임
Sub DigChange()
While TRUE
Sleep (1000)
a = GetTagVal(“DIG1”)
SetTagVal “DIG1”,1-a
wEnd
End Sub
Sub AnaChange()
While TRUE
Sleep (2000)
a = GetTagVal(“ANA1”)
SetTagVal “ANA1”,a+1
wEnd
End Sub
c언어를 많이 하다보니깐 이것도 좋은듯한 느낌도 있고
암튼 위에꺼 메인함수에 넣어주던가 어떻게 쓰면 될듯함
슬립도 여기서 하는거 똑같은듯 1000이 1초일듯함
이거 참고하면 좋을듯
Sub 반복예제()
합계 = 0
for i = 0 to 10
if 합계 > 30 then
Exit For
else
합계 = 합계 + i
end if
next i
MsgBox CStr(합계)
End Sub
Exit 예제인듯
Sub Word2Bit()
worddata = GetTagVal("WORDDATA")
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