안녕하세요. IT & 자동화 정보를 하나하나 쉽게 알려드리는 이지원 입니다.
이번 시간에는 Codesys 에서 데이터 타입을 변환하는 방법, 두 개의 워드를 하나의 더블워드로 합치는 방법, 하나의 더블워드를 두 개의 워드로 분리하는 방법을 소개하겠습니다.
(Data type conversion, Combine two Words to Doubleword, Devide Doubleword into two Words)
변수의 타입을 변환하는 명령어는 Codesys에서 기본적으로 사용할 수 있는 연산자 입니다.
Word 데이터를 Int 형태로, Double word 데이터를 word로, Timer에 사용하는 시간 값도 변환 가능합니다.
Codesys 도움말에서 "Operators" 항목의 하위메뉴 "Type conversion operators" 에 영문으로 된 설명이 나옵니다.
프로그램 예제를 통해 사용방법을 알려드리겠습니다.
1. 연산자 사용
프로젝트를 열어, 변수를 선언합니다.
데이터 타입 변환 연산자는 "(입력데이터 타입)_TO_(출력데이터타입)" 입니다.
예제 프로젝트에서 사용한 연산자를 살펴보겠습니다.
기능 | 연산자 | 입력 데이터 타입 | 출력 데이터 타입 |
Integer 를 Word로 | INT_TO_WORD | Integer | Word |
Double Word를 Integer로 | DWORD_TO_INT | Double Word | Integer |
TIME 값을 Word로 | TIME_TO_WORD | Time 값 | Word |
2. 프로그램 테스트
시뮬레이션 모드에서 값을 입력해 보겠습니다.
1) INT_TO_WORD
입력 변수에 -1000을 넣었더니, 출력 값 64536 이 나왔습니다.
같은 16 비트 데이터이지만 Int 데이터의 범위는 -32768 ~ 32767 이고, Word 데이터 범위는 0 ~ 65535 입니다.
2) DWORD_TO_INT
입력 변수에 65537을 넣었더니, 출력 값 1이 나왔습니다.
32비트 데이터인 Double Word를 16비트 데이터인 Integer로 변환해보니, 상위 16비트는 사라지고 하위 16비트만 변환되는 것을 알 수 있습니다. 그래서 출력 값이 1이 나오는 것입니다.
3) TIME_TO_WORD
입력 변수에 30초를 넣었더니, 출력 값 30000 이 나왔습니다.
Time 변수 기본 단위가 ms이기 때문에 30초를 Word로 변환하면 30000 (ms) 가 나오게 됩니다.
3. DoubleWord to 2 Words, 2 Words to DoubleWord
지금까지는 데이터 타입을 변환하는 방법을 소개했습니다.
이번에는 Word 데이터 2개를 하나의 DoubleWord로 병합하거나, 하나의 DoubleWord를 2개의 Word로 분리하는 방법을 알려드리겠습니다.
아래 포스팅을 참고하시기 바랍니다. 감사합니다.
'Factory Automation' 카테고리의 다른 글
Lenze 소프트웨어 사용법 (EasyStarter, Engineer, VisiwinNet, PLC Designer) (0) | 2023.03.27 |
---|---|
Lenze ACTech 메뉴얼, 결선도 (0) | 2023.03.23 |
Lenze 8200 Motec - 결선도, 파라미터, 메뉴얼 (Wiring, parameter, manual) (0) | 2023.03.20 |
Lenze 9300 드라이브 결선도, 파라미터, 에러코드 (wiring, parameter, errorcodes) (0) | 2023.03.17 |
Lenze GDC 소프트웨어 설치 및 사용방법 (Install & How to use) (0) | 2023.03.16 |
댓글