본문 바로가기
  • IT & Factory Automation
Factory Automation

Codesys 데이터 타입 변환하는 방법 (Data type conversion)

by EasyMotion 2023. 3. 20.
반응형

 

안녕하세요. 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로 분리하는 방법을 알려드리겠습니다. 

아래 포스팅을 참고하시기 바랍니다. 감사합니다.

 

 

두 개의 Word 데이터를 하나의 DoubleWord로 합치는 방법

 

 

하나의 DoubleWord를 두 개의 Word로 분리하는 방법

 

반응형

댓글