안녕하세요?


어제 포스팅에 이이서 화요일에 있었던 수업의 내용을 포스팅 하고자 합니다. 지난번 포스팅에서도 언급을 했지만, 고등학교때인가 배웠는 진수라는 개념이 여기서 사용되는 것을 보고서 무어라 할말이 없었습니다.



이번에는 BMOV명령부터 들어가 보도록 하겠습니다. [BMOV D0 K1M30 K3] 라고 한다고 하면, 먼저 D0에 저장된 값부터 K3라고 했기 때문에, D0를 포함한 3개-D0, D1, D2라는 메모리상에 저장된 데이터를 M30부터 4자리씩 단위를 잡아서 저장을 하겠다는 의미가 됩니다. 간단하게 표현하자면, D0부터 D2에 저장된 값을 M30번지 부터 PLC의 디바이스에 저장을 하겠다는 명령어 입니다.



실제로 D0와 D1에 8이라는 값이 저장되어 있었기 때문에, 4비트의 2진수로 표현하면 4번째 자리만 1이 되면 됩니다. 그렇게 해서 M30부터 해서 저장이 된 것을 확인할 수 있었습니다.



실제로 이렇게 되는지를 확인하기 위해서 D1에 10진수 15의 값을 저장한 다음, 제대로 저장이 되는지를 확인해 보고자 했습니다.



제대로 동작하는 것을 확인할 수 있었습니다.



다음으로는 BMOV가 제대로 작동하는 지를 확인해 보기 위해서 D0부터 D4까지 다양한 값을 입력해 보도록 합니다.



그런데 이 단계에서는 제가 몰랐는데, 뒤에 붙은 값이 K3다 보니 3군데만 데이터가 저장이 되는 것을 볼 수 있었습니다.



그래도 K3라고 되어 있던 것을 K5라고 숫자를 올려서 실습을 해 보았습니다.




제대로 5군데라고 해야 할까요? 이런 부분에 걸쳐서 데이터가 저장되는 것을 볼 수 있었습니다.



다음으로는 ASCII라고해서 아스키 코드에 대한 것을 실습해 보고자 합니다. 먼저 위 스크린샷에 보이는 메뉴를 GT designer상에서 불러 오도록 합니다.



이번에는 $MOV라고 해서 문자 전송 명령에 대해서 다루어야 합니다. 일단 문자의 경우에는 1워드라는 단위로 전송이 되는데, 이 1워드는 16비트 단위로 이루어져 있습니다.



그리고 다음에는 GT designer에서 위 스크린샷과 같이 아스키 코드에 관계가 되어서 문자를 출력하는 디스플레이를 만들어 주도록 합니다.



그리고 다음으로 시뮬레이터를 작동시키자, Ver-0.01이라는 것이 제대로 나오는 것을 확인할 수 있었습니다.



너무 글자의 크기가 큰 것 같아서, 텍스트 사이즈를 조절 하도록 합니다.



실제로 글자의 사이즈가 작아지는 것을 확인할 수 있었습니다.




다음으로는 D13이라는 영역에 02라는 것을 숫자가 아닌, 문자로 저장을 하도록 하겠습니다.



그런데 제가 의도하지 않은 부분까지 02라고 변경이 되는 것까지 확인을 할 수 있었습니다.



그래서 확인을 위해서 한번 더 작업을 하고자 합니다.



실제로 제가 의도하지 않은 부분까지 무언가 문제가 일어나는 것을 볼 수 있었습니다.



이렇게 디바이스/메모리 모니터를 보자, 제가 의도하지 않은 부분까지 건드려 진 것을 확인흘 수 있었습니다.



위 스크린샷처럼 ASC라고 아스키 코드로 바꾸자, D13부분이 실은 01을 저장하는 곳이라는 것을 알 수 있었습니다. 여기다가 다른 값이 겹쳐져서 Ver-0.01이 아닌 다른 값이 나오게 된 것입니다.



다음으로는 이해가 정말 난해하고, 사용도 잘 안되는 부분이라서 대충 넘어가도록 하는 부분이기는 하는 것인데, 일단 D1에다가 16진수로 30이라는 숫자를 전송하고자 합니다.




여기서는 어째서 인지 Ver-0.03이라고 나왔는데, 일단 지금의 단계에서는 이해가 가능한 것이라고는 그저 30이라는 숫자가 전송이 되면서 앞과 뒤가 바뀌어서 전송이 되었고, 그에 따라 03이라는 값이 마지막에 붙게 된 것이라고 이해를 할 수 밖에는 없었습니다.



다음으로는 ASC라는 명령어로 해당하는 아스키 코드로 변환해서 보내라는 명령인데, 이 명령어도 얼마나 자주 사용이 되는지는 잘은 모르겠습니다. 일단 이날의 마지막 수업 내용에서는 이 문자 전송은 가능한데, ASC에 대해서는 $MOV와는 반대된 다는 것만 겨우 이해를 하였습니다.



무언가 이해가 좀 난해한 듯한 일종의 일련의 코드가 나오는 것을 볼 수 있었습니다.



일단 여기서는 ASC나 ASCP나 같다는 것을 알 수 있었습니다만, 끝에 P가 붙으면 이건 pulse가 올라가는 순간에만 신호가 간다는 것을 알 수 있을 뿐, 무슨 큰 차이가 있는지는 그렇게 알 수 없었습니다.

+ Recent posts

티스토리 툴바