안녕하세요?
지난번 포스팅에서 openpageex라는 명령식을 이용해서 태그의 값을 변수로 만들어서 다른 페이지에 보낼 수 있다는 것을 이야기 했습니다.
먼저 운전창페이지에 있는 정지 버튼에다가 태그값쓰기라고 터치시의 행동을 지정해 둔 다음, 태그이름이라는 항목을 잘 보시면 여기다가 $2라는 것이 있습니다. 이 말은 지난번 포스팅의 마지막에 이야기를 했는 태그의 값을 변수로 지정하고, 이 변수는 $1, $2, $3 등으로 지정해서 불러 올 수가 있습니다. 여기서는 정지이기 때문에 기계1이나 2의 운전정지에 관련된 태그가 오는 $2를 0으로 쓰도록 지정을 했습니다.
운전에 관계된 곳에는 당연히 $2의 값을 1로 쓰도록 태그값 쓰기를 지정하고, 여기서 상단에 있는 박스에는 지난번 포스팅을 보시면 $1에 해당하는 변수에 각 태그의 주석을 가져오도록 했는데 당연 태그값이라는 요소라고 해야 할까요? 표시할 값을 $1으로 지정해서 각각 태그인 기계1운전정지, 기계2운전정지에서 주석을 표시하게 됩니다.
다음으로는 기계설비라는 페이지에 있는 각각의 기계인 애니메이션, 그러니까 FAN이 돌아가는 것으로 만들기 위해서 위 스크린샷에 있는 것처럼 각각의 해당되는 태그가 ON이 되었을 때 돌아가도록 설정을 하도록 합니다.
다음으로는 각각의 태그값이라고 해야 할까요? 정확히는 $2의 값-그러니까 기계설비라는 페이지에서 넘어온 태그의 값이 운전에 해당하는 1인지 정지에 해당하는 0인지를 따져서 색이 변화하는 것을 만들고자 합니다. 이 버튼은 운전이 되었는지 정지가 되었는지 확인해 드립니다.
여기서 결과만 놓고 말하자면, 일단 1개의 제어판에 해당하는 페이지를 두고서 2개의 기계를 번갈아 가면서 조작하는 데 성공했습니다. 이게 왜 중요한가 하면, 이렇게 해야 조작해야 하는 기계가 100개인 경우 일일히 조작판을 100개 만들기에는 너무 일이 많습니다. 그래서 이 일을 줄이기 위해서 하는 수 없이 이렇게 openpageex라는 함수를 사용해야 하는 것입니다. 이게 사용하기 머리가 아프다면, 손발이 고생하게 되는 것이라고 해야 할까요?
다음의 실습을 위해서 이번엔느 4개의 태그를 만들도록 합니다. 아날로그 태그인 A1, A2, A3, A4라는 태그를 데이터베이스 상에서 만들어서 지정을 했습니다.
다음으로는 한개의 페이지-이전에 하던 기계1과 기계2에 관련된 것이 아닌, 새로운 작업입니다. 이 작업에서 쓰일 태그값표시에 데이터 입력을 지정하도록 합니다. 이걸 왜 하냐하면, CiMonX에서 바로 숫자를 입력해서 직접 바꾸어도 되지만, 그러기에는 안전장치가 없어서 한번 더 확인을 거치는 단계와 '확인창'을 띄우기 위해서입니다.
다음은 새로운 페이지를 만들어서 여기다가 아날로그 입력이라는 이름을 지정하도록 합니다. 이렇게 미리 페이지를 만드는 이유는 당연 openpageex라는 명령어를 쓰기 위해서 입니다.
다음으로는 여기다가 openpageex라는 명령어를 지정하도록 합니다. 이번에는 주석을 사용하지 않을 것이기 때문에 태그이름:DESC라는 것은 없는 것을 확인 하실 수 있으실 겁니다.
먼저 이전 페이지에서 가져온 값인 $1을 아날로그 확인이라는 새로 만든 페이지에서 표시하는 장면입니다. 여기서는 일단 표시만 하는 것이지만..........
우선은 아랫쪽에 있는 태그값이라는 항목에서 데이터 입력을 지정하도록 해서, 값을 입력하도록하는데, 이건 $2에 해당하는 태그에 들어간다는 것이 문제입니다. 즉, 여기서 입력만 해서는 실제로 기계에 입력된 값을 바꾸라는 것을 할 수 없습니다.
그리고 나서 확인이라는 버튼을 누르면 이제서야 값을 변경한다는 것을 넣도록 합니다. 명령식이지만 어느정도 프로그래밍의 요소도 있는 것이, 우선 $2 = $1 이라고 하면, 변수 $2와 $1이 같다는 소리가 아니라 $2에다가 $1의 값을 집어 넣으라는 의미가 됩니다.
마지막으로 강조하고 싶은 것은, 변수로 지정된 $1, $2, $3, $4같은 것도 다시한번 openpageex에서 지정이 가능하다는 것입니다. 일단 아래와 같이 첫번째 페이지에서 다음과 같이 지정을 했다고 합니다.
openpageex("두번째 페이지", "태그1, 태그2, 태그3")
그럼 두번째 페이지에서는 당연 $1=태그1, $2=태그2, $3=태그3 이런 식으로 지정이 자동으로 되게 됩니다. 그런데 두번째 페이지에서 다음과 같이 세번째 페이지로 지정을 할 수있는 것입니다.
openpageex("세번째 페이지", "$2,$3")
이렇게 하면 세번째 페이지에서는 이 값을 받을 수 있는데, 문제는 변수를 받을 때 계속 $2가 $2를 유지하는 게 아니라 세번째 페이지에서는 $2에 들어가 있는 값인 태그2가 $1으로 재지정이 되어서 세번째 페이지가 받는 다는 것입니다. 말이 어렵기는 한데, openpageex를 쓸때마다 $뒤에 붙는 숫자가 재 지정되지만, 그 안에 들어가 있는 값은 다른 페이지로 전달만 되면 된다는 소리 이기도 합니다.
그런데 위에서 처럼 이렇게 데이터를 옮기고 변경시키고 하는 데는 태그가 3개는 필요했으며, 이걸 줄이는 것이 CiMon을 사용하는 데 들어가는 비용을 줄이는 데도 관련이 있다고 보시면 됩니다. 그래서 이번에는 태그1개에 많은 데이터를 담을 수 있는 방법에 대해서 들어가고자 합니다.
아날로그 태그라고 해도, 여기서 사용하지 않는 항목이 제법 됩니다. 물론 이 값들이 사용될 때도 있지만, 대표적으로 사용되지 않는 값이 단위표시입니다. 이번에는 이 단위표시를 사용하는 방법에 대해서 들어가고자 합니다.
그전에 사소한 팁으로 미리 페이지의 이름을 저장한 다음, 위 스크린샷처럼 $1같은 변수를 지정하면, 이 페이지를 여는 openpageex라는 명령어를 실행했을 때, 이전 페이지에서 넘어온 태그의 이름을 이렇게 페이지의 이름에다가 지정을 할 수 있는 것입니다.
또 다른 사소한 팁으로 변수인 $1의 앞뒤로 큰 따옴표 " " 를 두면, 이 변수의 값을 가져오는 것이 아니라 이 변수를 문자로서 이름을 그대로 가지고 오게 됩니다. 즉, 변수안에 들어간 태그를 그대로 '이름만'가지고 오는 것이 된다는 것입니다. 이렇게 하면 제어판이 되는 페이지를 열때마다 정확히 무슨 기계를 조작하는 지를 알려 줄 수 있는 것입니다.
원래라면 태그3개를 써서 여기다가는 빈 데이터를 저장해야 하는 태그가 들어가야 할 터이지만, 여기서는 이야기가 많이 달라집니다.
여기서는 $1:unit라고 해서 전혀 쓰지않던 단위표시에 들어가 있는 내용을 그대로 가지고 오도록 하는 것입니다. 그러면 여기 비어 있는 항목에다가 값을 입력할 수 있는데, 이렇게 함으로써 아날로그 태그1개에 여러개의 값을 저장하는 것이 가능하다는 이야기입니다.
다음으로는 여기다가 그냥 $1을 지정해서 태그하나만을 확인을 위한 페이지로 넘기도록 합니다. 왜냐하면 따로 지정하지 않아도 변수 $1에 들어가 있는 태그의 '단위표시'값은 그대로 따라서 전달이 되기 때문입니다.
마지막으로 확인란에 확인을 클릭하면 $1=($1:unit) 라고 지정을 하는 것이 중요합니다. 이렇게만 하면, 단위표시에 있는 값을 그대로 아날로그 태그에 쓸 수 있게 되는 것입니다.
이것으로 지난번에 배웠던 CiMon의 페이지에 관련된 내용을 포스팅 하는 데는 성공하였습니다. 다만 이게....... 글쎄요. 이 포스팅을 얼마나 많은 사람들이 볼지도 의문이기는 합니다만, 보시고서 의문점이 있으면 좀더 상세한 설명이라도 할 용의는 있습니다. 다만 저도 어디까지나 PLC 자동제어를 막 배우기 시작하는 입장이라서 얼마나 자세히 알고 있을 지는.....
'PLC 자동제어 학습 > CiMon Scada 수업' 카테고리의 다른 글
CiMonD에서 크기와 위치변화 실습, 그리고 visual basic을 이용한 기능구현 (0) | 2017.10.25 |
---|---|
CiMon에서 경보를 울리는 법과, 스크립트 작업을 하는 법 (0) | 2017.10.23 |
CiMon에서 페이지 관련된 실습 part1 (4) | 2017.10.20 |
다른 컴퓨터의 CiMonX를 원격으로 조종하는 법 (2) | 2017.10.17 |
CiMon을 이용한 모터를 제어하는 제어판을 만드는 작업 (2) | 2017.10.13 |