본문 바로가기
반응형

전체 글165

[lua] 함수를 실행하는 함수 function start(func, ...) func(...) end start(print, 'hello, world!') -- 'hello, world!' 2022. 3. 22.
[이미지맥스] 내장함수 GetImageROI()를 활용하여 인식화면의 사이즈, 모니터의 해상도를 확인하는 방법 화면의 해상도에 맞추어 이미지를 가변 하고 싶으셨나요? 그런데 이미지맥스로는 해상도를 알수가 없으셨다고요? 이제 그런 고민을 하지 않으셔도 됩니다. 이미지맥스에서도 스크린의 해상도를 알수 있습니다. 1. 이미지를 생성하고 인식범위를 '전체' 로 설정하기 우선 아무 1픽셀 이상의 이미지를 생성합니다. 그리고 인식범위를 '전체'로 설정합니다. 인식범위에 '전체' 라고 직접 키보드로 작성하여도되고, 혹은 ROI 버튼을 눌른후 Ctrl + A 버튼을 눌러 스크린이나 인식화면 전체를 ROI 영역으로 설정합니다. 2. ROI 취득함수(GetImageROI) 를 이용하여 ROI가 전체인 이미지의 인식범위를 취득하기 screen = GetImageROI('screen') print(screen.w, screen.h) .. 2022. 3. 18.
[lua] string replace a = '[PLC1]X01234' print(a) -- > [PLC1]X01234 a = a:gsub('%[PLC1]','') print(a) -- > X01234 a = a:gsub('%Y0', 'Y') a = a:gsub('%X0', 'X') a = a:gsub('%M0', 'M') print(a) -- > X1234 2022. 3. 18.
[MELSOFT] GX Works2 1.611M 업데이트 다운로드 및 패치노트 (영문판) Mitsubishi PLC 시퀀서 엔지니어링 소프트웨어 GX Works2 Version1 (영문판) (SW1DNC-GXW2-E/SW1DND-GXW2-E) (프로그래밍, 시뮬레이션, 인텔리전트 기능 유닛 컨피그레이션 기능을 통합) 의 업데이트판입니다. ※ 본 버전으로 업데이트를 위해서는 설치판을 통해 프로그램이 설치되어있어야 합니다. 설치판 프로그램은 유료판매용입니다. 관련 문의는 미쓰비시전기오토메이션 대리점이나 본사 (http://kr.mitsubishielectric.com/fa/ko/) 를 통해 해주시기 바랍니다. [ 대응 시리즈 ※ ] MELSEC-Q시리즈, MELSEC-L시리즈, MELSEC-F시리즈 ※대응하는 CPU모델등의 상세사항은 「GX Works2 Version 1 Operating Man.. 2022. 3. 16.
[이미지맥스] 특정 이미지를 인식후 특정 횟수 반복동작 하기 이미지맥스는 화면상의 이미지를 인식하여 원하는 동작을 수행 하도록 자동화 프로그램을 만들수 있는 툴입니다. 특정한 이미지를 인식후 특정 횟수를 반복하는 동작을 하는 방법 2가지를 알아보겠습니다. 액션이미지를 역순으로 배치하여 인식 활성/비활성을 활용하여 동작을 카운트하는 방법 이미지 활성/비활성 기능을 이용하면 특정 이미지를 인식 후 다음 동작을 제어할수있습니다. 원하는 이미지를 인식 성공시 다음으로 찾을 이미지를 활성하고 자기 이미지는 비활성 하여 점차 진행하는 방법으로 순서대로 동작하는 순차동작을 꾸밀수 있는것입니다. 이를 활용하여 특정 횟수를 반복하게 꾸밀수도 있는데, 위에서 아래로 이미지 인식 처리를 하는 이미지맥스의 특성을 이용하여 액션 이미지를 역순으로 배치하여 인식 활성 하도록 하면 파도 타.. 2022. 3. 13.
[이미지맥스] 특정 이미지를 인식 후 동작하는 방법 2가지 이미지맥스는 화면상의 이미지를 인식하여 원하는 동작을 수행 하도록 자동화 프로그램을 만들수 있는 툴입니다. 특정한 이미지를 인식후 차례로 순차 동작을 하는 방법 2가지를 알아보겠습니다. 1. 이미지 인식 활성/비활성 기능을 이용하는 방법 이미지 활성/비활성 기능을 이용하면 특정 이미지를 인식 후 다음 동작을 제어할수있습니다. 원하는 이미지를 인식 성공시 다음으로 찾을 이미지를 활성하고 자기 이미지는 비활성 하여 점차 진행하는 방법으로 순서대로 동작하는 순차동작을 꾸밀수 있는것입니다. 예를들어 '별', '원', '네모', '세모' 4개의 이미지를 이용하여 '별' 이미지를 인식하면 '원' -> '네모' -> '세모' 이미지를 순차적으로 클릭 하는 동작을 꾸민다고 하였을시 '별' 이미지를 인식하면 '원' 이미.. 2022. 3. 13.
[MELSEC] PLC 프로그램을 함수화 해보자 -3- (체크섬 생성) PLC는 손쉽게 그림 그리듯 래더라는 언어를 이용하여 프로그램 할수 있는 뛰어난 자동화 제어장치입니다. 하지만 단점이 있으니 프로그램을 여러 유니트에 맞추어 어드레스를 변경해가며 일일이 복사해서 코딩을 해주어야 한다는 점입니다. PLC에서도 간단한 기능들은 CALL이나 XCALL 문을 이용하여 함수화 할수 있으니 이를 활용하면 보다 프로그램이 간단해 질것입니다. 이번에는 세번째로 다뤄볼 기능으로 시리얼통신을 하다보면 은~그으은~히 스트레스가 되는 체크섬 Checksum 입니다. 이 기기, 저 기기 와 통신 프로토콜을 하다보면 가끔씩 튀어 나오는 존재라서 그때그때 프로그램하기 참 귀찮은 친구입니다. 그래서 체크섬 생성을 콜문형 함수화 해놓고 사용하기로 했습.. 2022. 2. 28.
[MELSOFT] MT Works2 1.170C 업데이트 다운로드 및 패치노트 (영문판) 모션콘트롤러를 사용하는 시스템을 구축 / 보수하기위한 엔지니어링 소프트웨어 MT Works2 (SW1DND-MTW2-E, SW1DNC-MTW2-E)의 업데이트판입니다. ※ 본 버전으로 업데이트를 위해서는 설치판을 통해 프로그램이 설치되어있어야 합니다. 설치판 프로그램은 유료판매용입니다. 관련 문의는 미쓰비시전기오토메이션 대리점이나 본사(http://kr.mitsubishielectric.com/fa/ko/) 를 통해 해주시기 바랍니다. MT Works2 (영문판) | 버전 : 1.170C | 갱신일 : 2021년 12월 17일 | Windows® 10、 Windows® 8.1、 Windows® 8、 Windows® 7 본 다운로드 모듈로 인스톨을 하면 MR Con.. 2022. 2. 28.
[MELSOFT] GX Works3 1.082L 업데이트 다운로드 및 패치노트 (영문판) 시퀀서 엔지니어링 소프트웨어 GX Works3 Version1 (영문판) (SW1DND-GXW3-E) 의 업데이트 판입니다. ※ 본 버전으로 업데이트를 위해서는 설치판을 통해 프로그램이 설치되어있어야 합니다. 설치판 프로그램은 유료판매용입니다. 관련 문의는 미쓰비시전기오토메이션 대리점이나 본사 (http://kr.mitsubishielectric.com/fa/ko/) 를 통해 해주시기 바랍니다. [ ※대응 시리즈 ] MELSEC iQ-R시리즈, MELSEC iQ-F시리즈 ※ 대응 하고있는 CPU 형명등의 상세정보는 [GX Works3 Operation Manual] 을 참조해 주십시오. Gx Works3 Version1 (영문판) | 버전 : 1.082L | 갱신일 : 2022.. 2022. 2. 28.
[MELSOFT] EIP Configurator Tool 1.00A 설치판 다운로드 (영문판) MELSEC Q시리즈용 Ethernet/IP TAG 통신용 세팅툴 EIP Configurator Tool Ver.1.00 입니다. EIP Configuraton Tool (영문판) | 버전 : 1.00A | 2022. 2. 28.
[MELSEC] (미립자팁) CPU 용량이 부족할 때 급하게 응급조치할 만 한 방법 구형 PLC로 제작한 옛날 설비를 개조하러 갔더니 이게 뭐람? 용량이 부족하다고? 큰일났네! 프로그램 다 찾아서 지워야하나? 이런 경험 한두번쯤은 있으실겁니다. 이런 경우 한번쯤 해볼만한 조치방법을 소개해드립니다. 기본적으로 PLC는 온라인 쓰기가 가능하여 구동 중인 설비도 손쉽게 디버깅 할수 있는 장점이 있죠. 하지만 이런것이 가능한 것은 온라인 런중 쓰기용 버퍼메모리를 상시 잡고있기 때문입니다. 런중 쓰기를 많이 하다보면 이 메모리를 다 사용했다고 알람 메시지를 보신적도 있으실겁니다. 이 영역이 POU 프로그램단위 별로 기본값으로 500스텝으로 잡혀있으니 이를 줄인다면 생각보다 많은 영역을 확보 할수있게됩니다. 프로그램 온라인 쓰기 메뉴에서 Detail 을 누르.. 2022. 2. 25.
[MELSEC] PLC에서 스톱워치를 구현하는 두가지 방법 PLC에서 스톱워치를 구현하거나 시간을 측정하거나 하는 일은 공정을 구현하면서 필요가 아니라 필수가 되어버린지 오래입니다. 간단하게 스톱워치를 구현하는 두가지 샘플을 올려드리니 참조해보세요. #1. 티칭타이머 TTMR 펑션을 활용하는 방법 티칭타이머 TTMR은 파라미터에 의해 타이머의 단위를 손쉽게 변경하고, 타이머의 초기화에 대하여 큰 고민없이 쉽게 구현할수 있는 명령어입니다. D0 데이터디바이스에 타이머를 실행할 경우 [TTMR D0 상수] 형식으로 써주게 되는데 상수자리에 파라미터에 0을 쓰면 초단위 타이머, 1을 쓰면 0.1초 타이머, 2를 쓰면 0.01초 타이머가 됩니다. 그리고 TTMR펑션을 실행할때마다 자동으로 D0은 0부터 초기화되어 시간을 측정하게됩니다. 많은 로직들이 단 한줄로 처리가 .. 2022. 2. 24.
[MELSEC] PLC 프로그램을 함수화 해보자 -2- (문자열 스플릿) PLC는 손쉽게 그림 그리듯 래더라는 언어를 이용하여 프로그램 할수 있는 뛰어난 자동화 제어장치입니다. 하지만 단점이 있으니 프로그램을 여러 유니트에 맞추어 어드레스를 변경해가며 일일이 복사해서 코딩을 해주어야 한다는 점입니다. PLC에서도 간단한 기능들은 CALL이나 XCALL 문을 이용하여 함수화 할수 있으니 이를 활용하면 보다 프로그램이 간단해 질것입니다. 이번에는 두번째로 다뤄볼 예문으로 지난번에 다루었던 SCALE 기능과 마찮가지로 과거에 제가 한번 다루었었던 콤마(,)로 문자열을 나누는 스플릿 기능을 XCALL을 활용하여 함수화 해봅니다. 해당 과거글을 참고해보시면 이해에 조금더 도움이 되실것입니다. 2022.01.22 - [PLC .. 2022. 2. 20.
[MELSEC] (미립자팁) 랜덤값을 음수를 포함하여 얻는 방법 (-32768 ~ 32767) 미츠비시에는 RND 명령어를 통해 랜덤값을 얻을수 있지만 양수의 값만 랜덤으로 얻을수 있습니다. 하지만 음수의 값은 얻을수 없어 살짝 불만입니다. 음수의 값까지 포함하여 얻고 싶다면 이렇게 하도록 합니다. 두개 이상의 RND 결과를 더하면 복잡한 계산 없이, 손쉽게 음수값을 포함한 랜덤 결과를 얻을수 있습니다. 일부러 16비트 숫자를 오버플로우 시켜 음수가 나오도록 유도합니다. 혹은 곱하는것도 좋습니다. 2022. 2. 19.
[이미지맥스] 지정영역을 자동으로 분할한 ROI 테이블 만들기 makeRoi() -- ROI 생성 함수 : 영역 설정(sx, sy, ex, ey), 이미지 ROI 사이즈(img_w, img_y) function makeRoi(_sx, _sy, _ex, _ey, _img_w, _img_h) print('==================================================') print('>> ROI를 생성합니다.') -- 서치할 영역의 폭(x), 높이(h) 계산 local width = _ex - _sx local height = _ey - _sy print('width : '..width, 'height : '..height) -- 서치할 영역 분할 갯수 (서치 영역의 폭 / 검색 거리 간격) local width_split = (width / _img_w) -.. 2022. 2. 19.
[MELSEC] PLC 프로그램을 함수화 해보자 -1- (스케일 변환) PLC는 손쉽게 그림 그리듯 래더라는 언어를 이용하여 프로그램 할수 있는 뛰어난 자동화 제어장치입니다. 하지만 단점이 있으니 프로그램을 여러 유니트에 맞추어 어드레스를 변경해가며 일일이 복사해서 코딩을 해주어야 한다는 점입니다. PLC에서도 간단한 기능들은 CALL이나 XCALL 문을 이용하여 함수화 할수 있으니 이를 활용하면 보다 프로그램이 간단해 질것입니다. 제가 과거에 한번 다뤄봤었던 입력값의 스케일 변환 출력 프로그램을 샘플로 XCALL을 활용한 펑션화하여 새롭게 업로드합니다. [참고글 : [래더] 스케일 변경 프로그램 [SCL 명령어, 래더시퀀스 2개 버전] https://cafe.naver.com/cplc/245772 [래더] 스케일 변경 프로.. 2022. 2. 19.
[이미지맥스] 한번에 여러 이미지를 클릭하는 함수 clickImage(...) -- 이미지 클릭 함수 function clickImage(...) local result_table = {} for key, value in pairs({...}) do local ret, acc, ix, iy, sx, sy = ImageSearch(value) if ret == 1 then table.insert(result_table, true) print('clickImage() : '..value..' [ '..ix, iy, sx, sy..' ]') -- 랜덤 좌표 생성 local rx = ix - sx local ry = iy - sy local rx = math.random(-rx, rx) local ry = math.random(-ry, ry) -- 클릭 좌표 랜덤값 적용 local ix .. 2022. 2. 12.
[이미지맥스] 한번에 여러 이미지를 서치하여 boolean으로 반환 함수 isImage(...) -- MultiImage() 이미지서치 통합 함수 (결과 boolean 반환) function isImage(...) local result_table = {} for key, value in pairs({...}) do if MultiImage(value) == 1 then table.insert(result_table, true) else table.insert(result_table, false) end end return table.unpack(result_table) end 그동안 이미지맥스를 활용하면서 이미지 서치의 결과를 boolean 으로 반환 받기 위해 여러 형태로 isImage() 라는 함수를 만들어가면서 사용해왔습니다. 이번에는 이전에 만들었던 형태보다 간결하면서도 또한 강력한 기능인.. 2022. 2. 12.
프로페이스 I/O 램프 텍스트 일일이 써주기 귀찮았던 사람.gif 2022. 2. 8.
[이미지맥스] GUI에 데이터를 표시하고 업데이트 하는 방법 이미지맥스에 추가된 GUI 기능을 활용하면 로그창을 이용한 피드백보다 보다 직접적으로 데이터를 한눈에 보이게 꾸밀수 있습니다. 가령 OCR로 읽은 문자나 숫자를 GUI에 표시하는 것처럼 말이죠. 그럼 간단하게 OCR로 읽은 데이터를 GUI상에 표시하고 업데이트 하는 방법을 알아봅니다. 1. 메인 GUI 생성 우선 그룹을 만들어 OCR 데이터를 표시할 구획 영역을 할당해 줍니다. 어느정도 적당히 대충 만들고 그안을 텍스트와 데이터를 표시할 에디트로 채워봅니다. ※ GUI 생성시 미립자 팁:: GUI를 만들때 그룹을 생성한 좌표를 기준으로 x, y좌표에 상대적인 수치를 더하여 Text, Edit, Button, Radio 등을 생성하면 추후에 GUI를 수정이 필요하여 움직여야할때 그룹의 좌표만 옮겨주면 그룹.. 2022. 2. 7.
[이미지맥스] GUI 기능을 활용한 간단한 사용/미사용 옵션 만들기 이미지맥스에 GUI 를 생성할수 있는 함수들이 추가되었습니다. GUI는 사전처리스크립트 (PreScript)에 코드를 작성하여 불러오는 방법으로 사용합니다 이를 활용하는 방법은 많지만 가장 간편하게 이용할만한 활용법이 동작중 이미지의 사용/미사용 변경 입니다. 왜냐하면 이미지맥스가 START 되어 동작중에는 이미지의 인식상태를 변경할수가 없으니까요. 이를 GUI를 생성하여 EnableImage() 함수와 함께 활용한다면 동작중에도 이미지의 인식 여부를 간편하게 변경할 수 있습니다. 1. 메인 GUI 생성 우선 메인 GUI를 생성합니다. 이미지맥스에 생성되는 메인 GUI에는 다이얼로그 윈도우를 생성하는 GUIAddButton() 버튼를 생성합니다. 이때 GUIAddGroup() 으로 그룹을 생성하여 비슷한.. 2022. 2. 6.
spy++ (윈도우 핸들 검색툴) Visual Studio C++ 툴에 포함되어있는 spy++ 2022. 1. 30.
Ascii to hex 변환 유틸리티 (AsciiTable V1.3.1) 국내 개발자분이 만든 아스키코드 to 16진수 변환 유틸리티입니다. 아스키코드표와 아스키코드 -> 16진수 변환, 16진수 -> 아스키코드 변환을 지원합니다. 통신 프로그램 작성시 매우 유용합니다. 2022. 1. 26.
[MELSEC Q] (뻘짓주의) 스크린에 도트 스프라이트 애니매이션을 구현해보자? PLC에서 도트 픽셀의 좌표계 (X, Y) 와 도트애니메이션을 구현합니다. 주요 기능으로는 방향키를 조작하여 도트 픽셀 이미지의 위치를 변경할수 있습니다. 참고로 왜 이런 짓을 하느냐? 그건 아무도 몰?루 그냥 재밌으니까요... [ 좌표계 I/O Map ] X0, X1 : X좌표계 이동 (+1 / -1) X2, X3 : Y좌표계 이동 (+1 / -1) Y0 ~ YFF : 미니맵 좌표 표시등 Y100 ~ Y8FD : 메인 베이스화면 좌표 표시등 D0 : X좌표 D1 : Y좌표 D2 : 미니맵 X, Y 좌표 연산 D4 : 메인 베이스화면 X, Y 좌표 연산 [ 프로그램 ] #1. X, Y좌표계 구현 X0, X1 스위치를 누르면 D0을 가산, 감산 하여 X좌표를 움직합니다. X2, X3 스위치를 누르면 D1을.. 2022. 1. 23.
[MELSEC] 콤마(,)로 나열된 데이터를 분리하는 방법 (INSTR, MIDR명령어) 계측기나 다양한 검사장비들과 데이터를 송수신하다보면 손쉽게 만나는 데이터 형식으로 콤마(,)로 정리된 문자열입니다. 이제는 PLC에서도 이렇게 콤마(,)로 구분되어 수신된 데이터를 정리하여 다시 표현 해야하는건 요즘은 너무나도 흔한 일이 되어버린것 같습니다. 이런 경우 사용하면 좋은 명령어 문자열 검색 INSTR()와 문자열 추출 명령어 MIDR() 두가지를 소개합니다. 1. 문자열 검색 명령어 : INSTR() INSTR 명령어의 인수는 [ 검색문자, 기준문자열, 검색문자위치, 검색시작위치 ] 입니다. 테스트를 위해 "OK,162.5,165.8,126.1" 이라는 예문을 D0 에 저장하고 콤마(,) 를 찾기위해 D1000에 콤마("," 0x2C) 를 저장하여 INSTR 명령어를 사용하여 D10에 찾은 .. 2022. 1. 22.
[MELSOFT] MR Configurator2 1.130Q 업데이트 다운로드 및 패치노트 (영문판) 서보의 셋업부터 메인터넌스까지를 지원하는 MR Configurator2 영문판(SW1DNC-MRC2-E)의 업데이트 판입니다. ※ MELSOFT iQ Works, GX Works3, GX Works2, MT Works2, EM Software Development Kit그리고 CW Configurator를 구입한 경우에는 본 소프트웨어를 다운로드하여 사용할수 있습니다. ※최신버전은 윈도우2000 이전의 OS에 대응하지 않습니다. (Windows® 2000, Windows® Me, Windows® 98, Windows NT® 4.0, Windows® 95) 윈도우2000 이전 버전 OS에 설치하는 경우에는 버전 1.21X (구버전) 을 사용해주십시오. MR-J5, MR-JET, MR-J4,.. 2022. 1. 22.
[MELSOFT] 멜소프트 환경삭제도구 1.08J 다운로드 및 패치노트 (영문판) MELSOFT Navigator, GX Works3, GX Works2, MT Works2, GT Works3, RT ToolBox3, RT ToolBox2, FR Configurator2, CW Configurator, MELSOFT FieldDeviceConfigurator, MELSOFT FR Configurator SW3, 모션제어설정 등 각 제품과 컴몬컴포넌트, 레지스트리 설정을 전부 언인스톨 하는 소프트웨어입니다. ※ 실행시 모든 멜섹 소프트웨어 설치프로그램과 레지스트리를 삭제하니, 꼭 필요시 사용해주세요. MELSOFT 환경제거도구 (영문판) | 버전 : 1.08G | 갱신일 : 2021년 11월 26일 | < MELSOFT 환경제거도구 1.08J의 주요한 신규기능.. 2022. 1. 22.
[MELSOFT] GT Designer2 Classic 1.12N 설치판 다운로드 (영문판) GOT900 시리즈용의 화면데이터 편집용 소프트웨어 GT Designer2 Classic (영문판) (GTD2C-E) 의 업데이트 설치판 입니다. GOT1000, GOT2000 시리즈의 HMI 터치스크린 화면 데이터 작화 편집툴은 GT Designer3 를 사용하십시오. [ 알림 ] GT Designer2 Classic Version 1.11M 에서 프로젝트를 읽어들일 경우 정상적으로 동작하지 않는 문제가 있었습니다. GT Designer2 Classic Version1.11M (gtd2c-e_111m.zip)을 다운로드 한 분은 최신버전인 GT Designer2 Classic Version1.12N 이후의 버전으로 갱신하여 업데이트 해주십시오. GT Designer2 Clas.. 2022. 1. 22.
[MELSOFT] GX Works2 1.610L 업데이트 다운로드 및 패치노트 (영문판) Mitsubishi PLC 시퀀서 엔지니어링 소프트웨어 GX Works2 Version1 (영문판) (SW1DNC-GXW2-E/SW1DND-GXW2-E) (프로그래밍, 시뮬레이션, 인텔리전트 기능 유닛 컨피그레이션 기능을 통합) 의 업데이트판입니다. ※ 본 버전으로 업데이트를 위해서는 설치판을 통해 프로그램이 설치되어있어야 합니다. 설치판 프로그램은 유료판매용입니다. 관련 문의는 미쓰비시전기오토메이션 대리점이나 본사 (http://kr.mitsubishielectric.com/fa/ko/) 를 통해 해주시기 바랍니다. [ 대응 시리즈 ※ ] MELSEC-Q시리즈, MELSEC-L시리즈, MELSEC-F시리즈 ※대응하는 CPU모델등의 상세사항은 「GX Works2 Version 1 Operating Man.. 2022. 1. 22.
[Gx Works2] 스테이트먼트 (Statement) 를 활용하자 Gx Works2로 코딩을 하실때 스테이트먼트를 어디까지 활용하시는지요? 프로그램을 구분시켜주는 주석의 역할을 하는 스테이트먼트만 잘 활용하면 가독성이 보다 좋은 프로그램을 설계 할수 있습니다. 1. 스테이트먼트는 Q PLC에 프로그램 삽입시 래더와 함께 메모리에 저장됩니다. 2. Gx Works2에서 Ctrl+L 을 누르면 현재 래더프로그램에서 사용한 스테이트먼트를 리스트로 확인할수있습니다. 3. 스테이트먼트의 색상을 교체하여 가독성을 향상시킬수 있습니다. (저는 보통 노란색이나 보라색을 많이 씁니다.) 4.스테이트먼트는 래더 맨처음부에서 엔터를 친후 ; (세미콜론) 만 붙이면 바로 달수있습니다. 5. 스테이트먼트에 ;[Title] 대소문자 구문하여 작성하면 래더프로그램을 폴더링하여 관리할수있습니다. .. 2022. 1. 22.
반응형