본문 바로가기
728x90
반응형

XCALL6

미쓰비시 PLC CRC-16/MODBUS 함수화: XCALL 재사용 라이브러리 (함수화 6편) 이전 글 — 함수화 5편: 랜덤 문자열 생성미쓰비시 PLC에서 CRC-16/MODBUS 체크코드를 XCALL 재사용 함수로 만들어, MODBUS RTU 시리얼 통신마다 매번 새로 짜지 않고 갖다 쓰는 방법을 다룹니다.CRC-16 은 MODBUS RTU 교신에서 빠지지 않고 등장해 많은 사람의 골머리를 썩게 만드는 주제입니다.한 번 함수로 만들어 두면 국번·어드레스만 바꿔 어느 유닛에서든 재사용할 수 있습니다. 1. 왜 CRC-16 을 함수로 만드는가PLC는 그림 그리듯 래더라는 도식화된 언어와 메이커가 제공하는 펑션·명령어로 프로그램하는 뛰어난 자동화 제어장치입니다.하지만 단점이 있습니다.설비 규모가 커질수록 같은 동작의 프로세스라도 여러 유닛에 맞춰 어드레스를 일일이 변경하거나 복사해가며 번거롭게 코딩.. 2023. 3. 1.
미쓰비시 PLC 랜덤 문자열 생성 함수화 : 테스트 데이터 만들기 (함수화 5편) 이전 글 — 함수화 4편: 범위지정 랜덤값 생성미쓰비시 PLC에서 원하는 길이의 랜덤 문자열을 생성하는 함수를 XCALL로 만드는 방법을 다룹니다.생성할 문자 개수만 지정하면 임의의 문자열을 만들어 주어, 통신 테스트나 더미 데이터 생성에 유용합니다.4편에서 숫자 난수를 다뤘다면, 이번에는 문자로 된 랜덤 데이터입니다.여러 테스트를 하다 보면 문득 임의의 문자열이 필요한 순간이 옵니다. 1. 숫자 난수와 무엇이 다른가4편의 범위지정 랜덤값은 정수 하나를 만드는 함수였습니다. 이번 편은 문자 여러 개를 이어 붙인 문자열을 만듭니다.쓰임새도 다릅니다. 랜덤 문자열은 다음과 같은 상황에서 유용합니다. 통신 송수신 로직의 테스트용 더미 데이터 생성임시 시리얼 번호·배치 코드 같은 임의 식별자 생성문자열 처리 함.. 2022. 4. 26.
미쓰비시 PLC 범위지정 랜덤값 생성 함수화 : RND 한계 극복 (함수화 4편) 이전 글 — 함수화 3편: 체크섬 생성미쓰비시 PLC에서 원하는 최소·최대 범위의 랜덤값을 생성하는 함수를 XCALL로 만드는 방법을 다룹니다.내장 RND 명령의 고정 범위 한계를 스케일 변환으로 극복해, 음수를 포함한 임의 구간의 난수를 바로 얻습니다.각종 테스트·시뮬레이션을 하다 보면 간간이 랜덤값이 필요합니다. 이를 함수화해 두면 편리하게 호출해 쓸 수 있습니다. 1. 미쓰비시 RND 명령의 한계미쓰비시 PLC가 제공하는 랜덤 명령(RND)은 0 ~ 32767 의 정수형 값만 생성합니다.문제는 실제로 원하는 값은 그 범위가 아니라는 점입니다.예를 들어 -5 ~ 10 같은 구간의 난수가 필요하면, RND 결과를 원하는 범위로 다시 환산하는 연산을 매번 직접 해야 합니다.음수가 끼면 처리는 더 번거로워.. 2022. 4. 25.
미쓰비시 PLC 체크섬 생성 함수화 : 시리얼 통신 데이터 검증 (함수화 3편) 이전 글 — 함수화 2편: 문자열 스플릿미쓰비시 PLC에서 시리얼 통신 데이터의 체크섬(Checksum)을 생성·검증하는 함수를 XCALL로 만드는 방법을 다룹니다.송신 프레임에 체크섬을 붙이는 경우와, 수신 데이터의 체크섬을 비교해 유효성을 확인하는 경우를 모두 함수 하나로 처리합니다.체크섬은 이 기기 저 기기와 프로토콜을 맞추다 보면 가끔 튀어나와 그때그때 새로 짜기 번거로운 존재입니다. 콜문 함수로 만들어 두면 매우 편합니다. 1. 체크섬이란: CRC 와의 차이체크섬은 데이터 바이트를 단순 합산한 뒤 하위 바이트만 취해 통신 오류를 검출하는 가장 기본적인 방식입니다.연산이 가볍고 구현이 단순해 많은 계측기·간이 프로토콜에서 사용합니다.📝 NOTE체크섬과 CRC 는 목적은 같지만(전송 오류 검출) .. 2022. 2. 28.
미쓰비시 PLC 문자열 스플릿 함수화 : 콤마 구분 데이터 분리 (함수화 2편) 이전 글 — 함수화 1편: 스케일 변환미쓰비시 PLC에서 콤마(,)로 나열된 문자열을 항목별로 분리하는 스플릿 함수를 XCALL로 만드는 방법을 다룹니다.계측기·검사장비에서 수신하는 CSV 형태 데이터를 PLC에서 바로 잘라 쓸 수 있습니다.계측기나 검사장비와 데이터를 주고받다 보면 콤마로 정리된 문자열을 자주 만납니다.이를 매번 새로 파싱하지 않고 함수 하나로 처리하는 것이 목표입니다. 1. 문자열 스플릿의 원리PLC에서 문자열 분리는 두 가지 명령을 조합해 구현합니다. INSTR — 원본 문자열에서 구분자(예: ,)의 위치를 찾습니다.MIDR — 시작 위치와 길이를 지정해 그 사이 부분 문자열을 추출합니다. 즉 "다음 구분자가 어디 있는지(INSTR)" 찾고, "이전 구분자 다음부터 그 직전까지(MI.. 2022. 2. 20.
미쓰비시 PLC 스케일 변환 함수화 : XCALL로 아날로그 환산 재사용 (함수화 1편) 미쓰비시 PLC에서 스케일 변환(아날로그 입력값을 실제 물리량으로 환산)을 XCALL 재사용 함수로 만드는 방법을 다룹니다.채널·유닛마다 입력 레인지를 바꿔가며 똑같은 환산식을 복사하지 않고, 함수 하나로 어디서든 호출하는 것이 목표입니다.PLC를 함수화하는 시리즈의 첫 글로, 가장 빈번하게 쓰이는 스케일 변환부터 시작합니다. 1. 스케일 변환이란A/D 변환 모듈이나 인버터·계측기에서 들어오는 값은 대부분 디지털 정수입니다.예를 들어 0~10V 입력이 디지털값 0~32000 으로, 4~20mA 입력이 0~20000 같은 범위로 들어옵니다.이 원시 디지털값을 사람이 읽을 수 있는 실제 물리량(압력 0~100bar, 온도 0~500℃ 등)으로 바꾸는 것이 스케일 변환입니다.원리는 단순한 1차 비례식입니다. .. 2022. 2. 19.
728x90
반응형