PLC NX Plus Series 명령어 V3.0 사용설명서 NX Plus CPU 의 F/W 버전 5.0 이상 WinGPC4.15 이상 지원되는 명령어 사용설명서 입니다. S Automation 2011. 9 0
목 차 제 1 장 NX Plus 시리즈 명령어 개요 1.1 개요 1.2 특징 제 2 장 기능 및 성능 2.1 CPU 성능 2.2 CPU 운전 개요 2.3 CPU 초기화 2.4 프로그램 진단 제 3 장 번지 체계 및 형식 3.1 NX Plus 시리즈의 번지 체계 3.2 번지 지정 형식 3.3 더블워드 번지지정 3.4 절대번지 지정 3.5 음수(Signed) 지정 3.6 간접지정 번지 3.7 명령어 형식 제 4 장 프로그래밍 소프트웨어 4.1 WinGPC 개요 4.2 WinGPC 운영 1) WinGPC 기동 2) 프로젝터 작업과정 3) 프로그래밍 작업 4) 프로그램 저장, 컴파일 5) 프로그램 다운로드 및 모니터링 1
제 5 장 명령어 이해 5.1 접점 명령 :ST, STN, DIF, DFN, DF, DN, NOT 5.2 출력 명령 : OUT,SET,ST,ALT,PLS,PLF 5.3 블록처리 명령 : ANB, OB, MS, M, MCS, MC 5.4 타이머 : TIM, TOF, SST, TM 5.5 카운터 : UC, DC, CT, UDC, 5.6 시프트 S 명령 : S 5.7 스텝제어 명령 : ISTP, SSTP, NSTP, ASTP, CSTP, CBSTP, ESTP 5.8 증감 명령어 : INC, DINC, INCB, DINCB, DEC, DDEC, DECB, DDECB, FINC, FDEC 5.9 대입 명령어 : LET, DLET, FLET, MLET, DMLET, FMLET 5.10 부호처리 명령 : ABS, DABS, FABS, WNOT, DNOT, NEG, DNEG 5.11 연산 위치 대입 : LETX, DLETX, FLETX 5.12 데이터 전송 명령 : MOV, FMOV, BMOV, BFMV 5.13 간접지정 대입명령 : LD, DLD, STO, DSTO 5.14 데이터 테이블 처리 명령 : FIFOW, LIFOW, POPS, TOS 5.15 정수 비교 명령 : ==,D==,<>,D<>,>,D>,>=,D>=,<=,D<=,<,D< 5.16 실수 비교 명령 : F==,F<>,F>,F>=,F<=,F<, 5.17 데이터 범위 비교명령 : LIM, DLIM, FLIM 5.18 산술연산명령 : ADD, DADD, ADC, DADC, SUB, DSUB, SBC, DSBC MUL, DMUL, DIV, DDIV, FADD, FSUB, FMUL, FDIV, 5.19 BCD 산술 연산 : ADDB, DADDB, ADCB, DADCB, SUBB, DSUBB, SBCB, DSBCB, MULB, DMULB, DIVB, DDIVB 5.20 논리연산: WAND,DAND, WO,DO, WXO,DXO, WXN,DXN 5.21 회전명령 : LC,DLC, C,DC, OL,DOL, O,DO, 5.22 시프트 명령 : SHL,DSHL, SH,DSH 5.23 BCD 숫자 변환 : BCD, DBCD, BIN, DBIN, ENCO, DECO, SEG 5.24 데이터 변환 : XCHG, DXCHG, DIS, UNI, SWAP, EXT BSET, BST, BNOT, BTST, SUM, SC, C, CC 5.25 데이터 처리 : MAX, DMAX, FMAX, MIN, DMIN, FMIN, AVG, DAVG, FAVG, WSUM,DSUM, FSUM,SOT, DSOT, FSOT 5.26 함수처리 명령 : SCALE, DSCALE, FSCALE, SCP, DSCP, FSCP 5.27 데이터 제한 명령 : LIMIT,DLIMIT,FLIMIT, BAND,DBAND,FBAND, BIAS,DBIAS,FBIAS 5.28 실수 변환 명령 : N2F, L2F, F2N, F2L, D2, 2D 5.29 문자열 처리 : STLET, STADD, STEX, ST==(3), ST<>(3), SEACH 5.30 문자열 변환 : A2H, H2A, A2I, I2A, A2L, L2A, 5.31 삼각 함수명령 : SIN, ASIN, COS, ACOS, TAN, ATAN, SQT, EXP, LOG, LN, POWE, 5.32 루프/분기 명령 : FO, DFO, NEXT, JMP, LBL, JMPS, JMPE, CALL, SB, ET 5.33 인터럽트 명령 : INT, ETI, 5.34 입출력 제어 : INP, OUT, WAT, END, 5.35 특수기능 제어 : HSC, SET_HSC, PWM, SET_PWM, PTO, SET_PTO, PID, SET_PID, SUS 5.36 시간 제어 : SET_DATE, GET_DATE, SET_TIME, GET_TIME, T2S, S2T 5.37 통신모듈 제어 : EAD, WITE, MD, MW, ECV, SEND, ECVB,SENDB 5.38 통신 제어 명령 : MODCOMM, PLCCOMM, WASCII, DASCII, WBIN, DBIN, CHKSUM, 2
제 1 장 NX Plus 시리즈 명령어 개요 1.3 개요 이 사용설명서는 PLC NX plus 시리즈에 사용되는 명령어의 종류 및 기능에 대한 설명서 입니다. 이 매뉴얼을 이용해서 프로그래밍 소프트웨어(WinGPC 버전 4.15.2 이상)에서 사용되는 명령어를 쉽게 사용 할 수 있도록 하기 위해 제작되었습니다. 1.4 특징 NX plus 시리즈의 특징은 쉬운 사용자 환경에 따라 다양한 기능을 효과적으로 이용할 수 있도록 지원합니다. - 쉬운 사용자 환경으로 구성 - 간략화된 명령어 체계 지원 - 모니터링 중 명령어 수정 기능 - 부호선택 기능 및 실수 연산, 삼각함수 기능등 다양한 명령어 지원 - 다양한 통신 방식에 따른 접속 가능 - 편리한 자기진단 기능 주의) 본 매뉴얼에는 NX plus 시리즈의 각 제품별 버전에 따라 지원되는 명령어가 다르며, 동일한 명령어에도 기능이 다르게 수정된 경우도 있을 수 있으므로 버전에 따라 충분한 시험을 한 후 제품에 적용하시기 바랍니다. 본 매뉴얼은 NX7 의 V5.0 이상, NX7 제품을 중심으로 설명이 되어 있습니다. 3
제 2 장 기능 및 성능 2.1 CPU 성능 CPU 종류 NX7s NX7 NX7 NX70 NX700 제 어 방 식 프로그램 저장, 반복연산 방식 외부입출력 점수 명령어 메 모 리 용 량 통 신 기 능 기 타 기본명령 응용명령 프로그램 용량 입출력,내부() 링크 접점 (L) 내부 접점 (M) 정전 유지 (K) 특수 접점 (F) 타이머/ 카운터 데이터워드(W) 데이터워드(D) 특수워드(S) 10,14,20,28, 40,48 점 20(A), 28, 48, 확장 2 개, 14/28 점 V3.x 이하= 30 종 V5.x 이상=,36 종 V3.x 이하= 139 종 V5.x 이상= 284 여종 2KW V3.x 이하 = 9KW, V4.x 이상=32K(주 1) 28 확장 2 개 14/28 ~384 점 ~1600 점 36 여종 30 종 30 종 284 여종 V2=약 148 종 V2=약 150 종 32K 70P1=9.6K, 70P2=20K 000.00 ~ 127.15 (2048 점, 128 워드) L000.00 ~ L063.15 (1024 점, 64 워드) M000.00 ~ M127.15 (2048 점, 128 워드) K000.00 ~ K127.15 (2048 점, 128 워드) F000.00 ~ F015.15 (256 점, 16 워드) 256 채널 (타이머+카운터), 채널 중복사용 불가 V2.x=사용불가 V2 이하=사용불가 V3 이상=2048WV4 이상=12800W 통신속도 4800, 9600, 19200, 38400 W0000 ~ W2047 (2048 워드) 20K 12800W 2048W 2048W S000 ~ S511 (512 워드) ~57600, 115200, 4800, 9600, 19200, 38400 통신 포트 2Ports (Port1 : NX7S=S232C 전용, 기타 모델:S232C/S485 겸용) (Port2 : NX7S=S485 전용, 기타 모델:S232C/S485 겸용) 통신 Protocol 1 2/4 단계 NXp 통신 Protocol, 사용자 정의통신, 통신 Master, Modbus Slave 통신 Protocol 2 - V5.x 이상 지원 지원 - - 특수 기능 고속카운터 1Ch, 펄스출력 2Ch, 펄스캐치 4 점 HSC 2Ch, Pulse Out 2Ch, Analog,TD,TC, HSC, Pulse, Position, Link, 시계기능 없음 내장 내장(옵션밧데리) 내장 내장 PID 8 Loops 지원 (NX7 V5=494Loops) 최대 494 Loops 8 Loops 지원 메모리 백업 EEPOM 백업 Option 메모리 EEPOM 백업 프로 그램 Tools WinGPC 전체 V5.x 이상= WinGPC4.5 이상 WinGPC 전체 WinGPC4.15.2 이상 주 1) WinGPC 가 지원하는 CPU Processor(단종모델) -SPC-10(CPU14), SPC24S(CPU24S), SPC100(CPU10, CPU10A), SPC120S(CPU12S), -SPC300(CPU300,CPU300A,CPU300C,CPU500), A200(CPU200,CPU201), -N70(CPL9215A,CPL9216A), N700(CPL7215A) 주 2) N plus 시리즈 Data 영역 비교 -N70 : 9215A =9.6KW, D 영역:사용불가, 9216A = 20KW, D 영역:2048W -N700: V2.x 이하 = 24KW, D 영역:2048W 주 3) 명령어 종류는 버전에 따라 달라질 수 있습니다. 주 4) WinGPC 버전이 4.14 이전 에서는 D0 부터의 영역이 W3072 부터 표시됩니다. 4
2.2 CPU 운전 개요 NX Plus CPU 의 운전 스위치는 UN / MT(emote) / POG(Stop)의 스위치 상태가 있으며, 상태에 따라 제어할 수 있는 기능 다르며, 다음과 같은 운전모드를 가집니다. CPU 운전 스위치별 운전모드 및 기능 운전스위치 운전모드 UN LED 상태 POG 프로그램 변경 데이터 변경 전원 OFF ON 시 운전모드 UN MT (emote) UN 불가능 가능 UN STOP 불가능 가능 UN UN 가능 가능 UN PAUSE 가능 가능 PAUSE POG. STOP 가능 가능 STOP 참조 : - LED 상태표시의 =ON 상태, =점별상태, =꺼진상태 표시입니다 - POG. LED 가 ON 되어 있으면 사용자 프로그램의 변경이 가능합니다. - 모드전환스위치가 EMOTE 일때는 전원 OFF ON 시 운전모드가 기억됩니다. - 사용자 프로그램 디버깅시 모드전환 스위치를 EMOTE 에 두면 편리합니다. 운전 스위치 이동상태에 따른 모드의 기능 주 1) 상태 1과 같이 모드가 UN 상태에서 에러가 발생하면 에러내용에 따라 자동으로 운전모드가 STOP 또는 Pause 상태로 전환되며, E 램프가 점등 됩니다. 단, 연산에러와 같이 운전중 E 가 생기면, E 램프가 켜지고, STOP 으로 전환되며, 이후에 CPU 가 정지해 있을 경우 E 램프가 OFF 되는 경우도 있습니다. 주 2) 상태 2의 모드전환은 EO 가 해제된 상태에서 원격으로 전환됩니다. 주 3) 주 1) 또는 주 2)의 상태전환은 운전모드를 제어하는 F0.15 접점을 ON/OFF 할 경우에도 전환되므로 프로그램 작성시 주의하시기 바랍니다. 5
2.3 CPU 초기화 NX plus 시리즈의 CPU 를 처음 개봉할 경우, CPU 에 Data 또는 프로그램이 남아있는 경우가 발생합니다. 이것은 개봉 후 전원을 연결할 때부터 유지되고 있는 비 정상적인 프로그램이나 설정 Data 이므로 이것을 초기화 하여 사용해야 정상적으로 동작될 수 있습니다. 그러므로 다음과 같은 순서대로 초기화를 실시한 후 사용하시기 바랍니다. 1) 제품을 개봉하고, 정전유지를 위한 밧데리를 연결한다(밧데리가 없는 모델은 제외) 2) PC 와 온라인 접속을 한다. 3) Online 메뉴에서 CPU 초기화(Initialize CPU) 를 선택하여 백업된 Data 와 프로그램을 클리어 한다. 4) 프로그램을 다운로드 하여 운전동작을 한다. 5) 초기화를 하지않고 프로그램을 다운로드하여 운전을 하면, 설정된 Data 가 남아있는 상태에서 작동하므로 오동작을 할 수도 있습니다. 2.4 프로그램 진단 PLC 프로그램을 작성하여 CPU 에서 운전을 실시할 때, 다음과 같이 3 단계로 프로그램을 점검합니다. 1) WinGPC 에서 프로그램을 작성할 때 CPU 기종별로 지원되는 명령어를 구별하여 에러처리 2) 프로그램 작성 후 저장, 컴파일을 실시하면 에러창에 정상 또는 비정상 프로그램인지 구별 3) 프로그램을 CPU 에 다운로드 한 후 CPU 의 에러 LED 가 작동하는지 구별함. 각각의 에러는 단계별로 수정해야 다음 단계로 진행할 수있습니다. 처음 명령어 입력단계의 에러는 WinGPC 의 프로젝터 메뉴의 CPU 선택 항목에서 CPU 기종 및 버전을 정확하게 입력하면 해당 CPU 에서 지원되는 명령어를 모두 사용할 수 있습니다. 또한 각 명령어에 입력되는 변수(Parameter)를 기준에 맞게 입력해야 정상적으로 작성됩니다. 두번째 컴파일 단계의 에러는 WinGPC 상에서 완성이 안된 프로그램이거나 프로그램 용량초과, 중복사용, 비정상적인 명령어 등으로 발생하여 프로그램을 CPU 에 다운로드 할 수 없는 경우에 발생하며, WinGPC 상에서 정상적인 프로그램으로 만들어야 완성될 수 있습니다. 세번째로 CPU 에서 발생한 에러 LED 는 WinGPC 의 모니터링 메뉴의 CPU 진단 창에서 확인 할 수 있으며, 에러가 발생한 스텝번호를 알 수 있고, 발생한 에러 부분을 수정하면 정상적인 운전을 할 수 있다. 만약 CPU 의 에러 LED 가 깜박이면 프로그램 오류가 아니고, 밧데리가 연결되지 않았거나 다른 외부 원인에 의한 문제로 프로그램은 정상적으로 운전시킬 수 있는 상태를 나타낸다. 6
제 3 장 번지 체계 및 형식 3.1 NX Plus 시리즈의 번지 체계 메모리 번지 지정은 그 종류에 따라, L, M, K, F, TC, SV, PV, W, D, S 등으로 구분합니다. 종 류 비트접점 워드번지 특 성 외부 입출력 () 000.00 ~ 127.15 000 ~ 127 - 입출력 영역 (2048 점, 128 워드) - CPU 기종별로 지정영역이 다릅니다. 링크 접점 (L) L000.00 ~ L063.15 L000 ~ L063 - 링크 접점 공유 영역, - 1024 점, 64 워드 - 링크 사용 않을시 내부 접점 사용 가능 내부접점 (M) M000.00 ~ M127.15 M000 ~ M127 - 내부 보조접점 영역 - 2048 점, 128 워드 정전유지접점 (F) K000.00 ~ K127.15 K000 ~ K127 - 정전기억 가능한 내부보조 접점(기종별 다름) - 2048/점, 128 워드 - '정전영역 초기화'를 하면 Clear 됨 특수접점 (F) F000.00 ~ F015.15 F000 ~ F015 - 특수 내부접점영역 - 256 점, 16 워드 타이머/카운터 (TC, SV, PV) 데이터 워드 (W) 확장 데이터 워드 (D) 특수워드 (S) 채널= 0 ~ 255 출력접점= TC0~TC255 설정치= SV0~SV255 현재치= PV0~PV255-256 채널 공동사용(중복사용 불가) - TC 는 접점표시 - 설정치=SV+채널번호, 현재치=PV+채널번호로 사용 - SV 값은 0 ~ 65535 까지 지정가능 사용불가 W0000 ~ W2047 - CPU 기종별로 정전영역 범위가 달라질 수 있음 - Bit 로 지정불가 - '정전영역 초기화'를 하면 Data 가 Clear 됨 D0000 ~ D2047 D0000 ~ D12799 S000 ~ S511 - CPU 기종별, F/W 버젼별로 범위가 다름 - Bit 로 지정불가 - '정전영역 초기화'를 하면 Data 가 Clear 됨 - WinGPC4.13 이전 버전은 W3072 부터 표시됨 - CPU 상태표시, Data 설정, TC 등 - Error 상태표시, 진단, 특수설정 등 - 특수 내부 데이터 영역 -Bit로지정불가 참조) - 비트 또는 워드, 더블워드번지는 명령어의 종류에 따라 구별되어 사용됩니다. - 워드 전용 레지스터(W, D, S, SV, PV 등)는 비트 명령어에 사용할 수 없습니다. 7
3.2 번지 지정 형식 비트 번지는 종류를 구별하는 문자인, L, M, K, F 등과 워드를 표시하는 3 자리의 10 진수 숫자(000~127 까지)와 비트를 표시하는 2 자리의 10 진수(00~15 까지) 숫자로 구성하며, 타이머 및 카운터의 접점은 TC000 과 같이 문자(TC)와 채널번호(000~255) 로 구성합니다. 워드번지는 문자, L, M, K, F, W, SV, PV, S 등과 워드를 표시하는 3 자리(000~127 까지) 또는 4 자리(0000~2047 까지)의 10진수 숫자로 구성되며, 특수영역인 S000~S511 까지는 W2560~W3071 처럼 사용하기도 합니다. 비트 번지와 워드번지를 동시에 사용할 수 있는, L, M, K, F 등은 명령어 의 종류에 따라 비트번지와 워드번지가 자동으로 구분되므로 사용할 때 주의해야 합니다. 비트 번지는 ON(1)또는 OFF(0)등의 상태를 나타내며, 워드 번지는 16bit 로 구성되어 데이터 값을 0~65535 까지 처리할 수 있고, 더블 워드를 처리하는 명령어는 32bit 로 구성되어 값을 0~4,294,967,295 까지 처리할 수 있습니다. 음수(Signed)를 처리할 수 있는 버전의 경우 1~32767 까지는 양수 영역, -1 ~ -32768 까지는 음수영역, 0 등의 값을 가진다.(음수처리 참조) 표현 예제 M123.12 비트번호: 2 자리수로 표현되며, 범위는 00~15 까지 10 진수로 증가합니다. 점(Point): 워드번지와 비트번지를 구분하기 위해 사용합니다 워드전용 명령어 에서는 사용하지 않습니다. 워드번호 : 워드번호를 나타내며, 0 부터 최대값까지 10 진수로 증가합니다. 비트번호와 동시에 사용할 때는 3 자리 (000~127)로 표현합니다. 워드번호로만 사용할 때는 4~5 자리로 표현하며, 점(.)과 비트 번호는 사용할 수 없습니다. 번지 형식문자 : 번지의 종류에 따라, L, M, K, F, SV, PV, TC, W, D, S, 등으로 구별합니다. 8
31 230 5 14 [ NX plus V3.0 명령어 ] 3.3 더블워드 번지지정 워드와 더블워드의 구별은 명령어로 합니다. ( LET, INC 등은 워드명령어, DLET, DINC 등은 더블워드 명령어) 더블워드 지정은 워드번호 지정 방법과 동일하고, 지정한 번호와 그 다음 번호가 합쳐져 32bit 의 데이터를 처리합니다. 예 1) 워드 와 더블워드 구분 -워드번지 명령 D 또는 S 의 파라미터는 1 워드(16bit= 0~65535 까지)의 데이터를 처리할 수 있습니다. -더블 워드번지 명령 D 또는 S 의 파라미터에는 2 워드(32bit)인 0~4,294,967,295 까지 데이터를 처리할 수 있다. 더블워드 W0000 번지의 Data 구조 2 31 2 30 2 17 2 16 2 15 2 14 2 1 2 0 15 14 1 0 15 14 1 0 W0001 W0000 즉, W0 는 W0 와 W1 이 합쳐져 구성되고 W0000 는 LSB 이고, W0001 은 MSB 에 위치한다. 또한, W0001 로 지정하면 W0001 과 W0002 가 합쳐진 형태가 된다. 데이터를 중복으로 사용하면 문제가 발생할 수 있으므로 주의를 해야 한다. W0001 W0000 W0001 W0002 W0003 W0000 W0002 더블워드 명령어 사용범위가 상위워드영역을 포함합니다. 9
3.4 절대번지 지정 PLC 의 번지 체계는 PLC 내부의 메모리 영역에서 WINGPC 등을 이용한 프로그래밍 작업용 번지를 의미하며, 이 번지 체계와 별도로 통신용으로 사용하거나 특수한 명령어를 이용한 번지를 순서대로 나열하여 지정한 방식을 절대번지라고 지정하여 표시합니다. 이 절대번지는 PLC 메모리를 물리적인 순서대로 0000 부터 마지막까지 16 진수(10 진수)로 증가하도록 하며, 절대번지와 NX plus 번지체계가 1 대 1 로 대응되도록 다음과 같이 되어 있습니다. 구분 레지스터 번지 외 부 입 출 력 링 크 영 역 내 부 접 점 정 전 유 지 접 점 절대번지 dec. hex. 0000 000 $0000 0001 001 $0001 0002 002 $0002......... 0126 126 $007E 0127 127 $007F L0000 128 $0080 L0001 129 $0081 L0002 130 $0082......... L0062 190 $00BE L0063 191 $00BF M0000 192 $00C0 M0001 192 $00C1 M0002 194 $00C2 M0003 195 $00C3......... M0064 256 $0100 M0065 257 $0101......... M0126 318 $013E M0127 319 $013F K0000 320 $0140 K0001 321 $0141 K0002 322 $0142 K0003 323 $0143......... K0126 446 $01BE K0127 447 $01BF 구분 내 부 특 수 접 점 데 이 타 영 역 T/C 설 정 치 T/C 현 재 치 상 태 표 시 데 이 타 영 역 레지스터 번 지 절대번지 dec. hex. F0000 448 $01C0 F0001 449 $01C1 F0002 450 $01C2......... F0014 462 $01CE F0015 463 $01CF W0000 512 $0200 W0001 513 $0201 W0002 514 $0202......... W2047 2559 $09FF SV000 2560 $0A00 SV001 2561 $0A01......... SV255 2815 $0AFF PV000 2816 $0B00 PV001 2817 $0B01......... PV255 3071 $0BFF S000 3072 $0C00 S001 3073 $0C01......... S511 3583 $0DFF D0000 3584 $0E00 D0001 3585 $0E01......... D2047 5631 $15FF D2048 5632 $1600......... D12799 16383 $3FFF D 영역의 번지는 CPU 기종별, F/W 버전에 따라 지원범위의 차이가 있습니다. 10
3.5 음수(Signed) 지정 NX plus 의 기본적인 명령어 체계는 양수(Decimal)로 연산을 수행하며 CPU 기종 및 버전에 따라 마이너스(-)부호처리를 지원하는 기종과 지원하지 않는 기종이 있다. 마이너스 부호처리를 할 수 있는 기종은 NX7 V5.x 이상, NX7 등의 기종이며, 기본적으로 음수처리를 하려면 내부 특수영역에 데이터를 설정하면된다. PLC 에서 다루는 데이터는 부동 소수점을 제외하고는 16 비트 또는 32 비트 정수 값이다. 이 값들은 부호를 갖는 표시되는 경우와 부호 없이 값이 표시되는 경우로 나뉘어진다. 정수 값을 부호를 갖는 경우로 표시하는 경우에는 최상위비트(MSB)가 부호 표시를 위해 사용되고, 나머지 비트만으로 값을 표시하게 된다. 16 비트 정수의 경우에 부호 없이 표시되는 값은 2 16 으로 나타낼 수 있는 0 ~ 65535 가 되지만 부호를 표시하는 경우에는 2 15 으로 나타낼 수 있는 0 ~ 32767 가 된다. MSB 가 1 이면 음수를 나타내므로 부호를 가지고 표시되는 값의 범위는 - 32767 ~ 32767 이 되며, 32768 값(부호는 이고, Data 는 모두 0 인값) 은 -32768 로 처리한다. 이 들 두 부호있는 정수와 부호없는 정수의 연산처리는 부호처리에 기인하여 다른 결과를 초래하므로 연산시 처리방식을 달리하여야 한다. 처리 전에 부호있는 정수의 처리인지 아니면 부호없는 정수의 처리인지를 알려주어야 한다. NX PLC 는 이를 표시하기 위해 별도의 Flag 를 갖고 있다. - F13.3 : 부호처리 접점 (ON= -32768 ~ +32767, Off= 0~65535 ) - F13.4 : 최대,최소값 제한설정 (ON= 최대(최소)값 초과시 최대(최소)값 유지, Off= 최대(최소)값 초과시 사이클링 연산함(Flag 처리 후 계속 연산함) F13.03 의 설정에 따라 정수처리 연산은 부호를 가지고 처리(On 인 경우)하기도 하고, 부호없이(Off 인 경우) 처리하기도 한다. 출하시의 기본설정은 Off 이다 추가로 연산의 결과에 따른 정수데이터의 오버플로우 또는 언더플로우 의 경우 NX PLC 에서는 F13.04 의 설정에 따라서 다르게 처리됩니다. 오버(또는 언더)플로우가 발생하면 Carry (F1.08)가 On 되고, F13.04 가 Off 인 경우는 하위값이 결과값으로 저장되고 상위값은 S20,S21 에 저장되나, F13.04 가 On 인 경우는 +/-Max 값이 결과값으로 출력됩니다. 출하시의 기본설정은 Off 이다 부동소수점 연산의 경우는 F13.03, F13.04 에 관련없이 Signed 연산에 +/-Max 로 처리됩니다. 이 경우 +/-Max 는 INF 라는 부통소수점 값이 저장됩니다. ) 덧셈명령어 ADD D=W0, S1=W1, S2=W2 연산의 경우, W1+W2=W0 에 저장하는 기능이며, W1=65535(-1), W2=32768(-32768) 이라고 하면 출력값(W0)는 다음과 같다. F13.03 = Off F13.03 = Off F13.03 = On F13.03 = On 조건 F13.04 = Off F13.04 = On F13.04 = Off F13.04 = On 출력값(W0) 32767 65535 32767 32768(-32768) 관련된 명령어 1. ADD(DADD), SUB(DSUB), MUL(DMUL), DIV(DDIV)등의 사칙연산 2. ==(D==), <>(D<>), >=(D>=), <=(D<=), >(D>), <(D<), LIM(DLIM) 의 비교 명령어 3. MIN,MAX,SUM,AVG,SOT 등의 데이터 처리 명령어 4. SCALE,SCP,BAND,BIAS,LIMIT 등의 데이터 처리 명령어 11
3.6 간접지정 번지 NX plus 의 명령어에서 간접지정 방식으로 프로그래밍 하는 경우에 사용한다. 이 방식은 명령어에서 사용된 번지의 Data 값에 따라 지정되는 번지가 다르게 할당되는 체계를 말하며, LD, DLD, STO, DSTO 등의 명령어에 사용되며, 번지지정은 절대번지의 Data 를 이용한다. 3.7 명령어 형식 명령어의 기본적인 형식은 기본명령어와 응용명령어의 차이 및 접점명령어와 출력 명령어가 있다. 기본 명령어는 대부분의 시퀀스 기호에 의한 지령 및 제어를 의미하며, 응용명령은 연산, 이동, 대입, 인터럽트, 블록처리 등 함축된 제어를 위해 필요하다. 다음설명에서 기본명령어와 응용명령어를 구분하여 설명되어 있다. 점점 명령어는 래더의 앞부분에서 점점의 상태 또는 비교명령등 입력된 상태나 값의 중간에 사용되며, 출력명령어는 래더 프로그램의 출력부분에 위치하면서 입력조건에 따라 연산이 수행된다. 12
제 4 장 프로그래밍 소프트웨어 4.1 WinGPC 개요 PLC NX plus CPU 기종을 운영하거나 프로그래밍, 진단하는 소프트웨어는 WinGPC 를 이용하며, 출시되고 있는 NX 기종의 최신명령어는 WinGPC 4.15 이후의 버전에서 지원된다. WinGPC 는 쉽고 간편하게 NX plus PLC 를 효과적으로 운영할 수 있으며, 각종 진단기능, 편집, 모니터링, 제어, 설정변경 등을 빠르게 대응함으로써 최적의 제어시스템을 구축할 수 있다. WinGPC V4.x 에서 지원되는 PLC 기종은 NX700plus, NX70plus, NX7 계열 등의 NX 시리즈와 단종된 제품 N700plus, N70 plus, SPC 시리즈(SPC300, A200, SPC100, SPC10, SPC24S, SPC120S, SPC10 등) 등의 기종을 운영 및 제어 할 수 있다. 4.2 WinGPC 운영 1) WinGPC 기동 WinGPC 를 처음 기동하고, 메인화면에서 새 프로젝터 를 만들거나 기존의 프로젝터 열기 를 하여 편집작업을 하며, WinGPC 프로그램 하나에 프로젝터(프로그램)를 한 개만 열수 있으며, 여러개의 프로그램을 Open 하고자 할 때는 WinGPC 프로그램을 여러 개 실행하여 운영할 수 있다. 13
2) 프로젝터 작업과정 PLC 를 운영하기 위해 다음과 같이 진행하면 됩니다. - 프로젝터 열기, CPU 선택 (PLC 모델, 종류, 버전정보 등) - 프로그래밍 작업, 저장, 컴파일, - PLC 접속, 다운로드/업로드, 시스템 정보 확인 - 래더 모니터링, 레지스터 모니터링, 상태확인 및 진단. 6) 프로그래밍 작업 프로그래밍 작업은 다음과 같은 기준으로 진행된다. - 프로그래밍은 렁(ung) 단위로 진행된다. - 커서가 있는 위치에서 모든 작업이 이루어 진다. - 커서의 모양은 렁, 명령어, 블록, 위치, 상태에 따라 다양한 모양을 가지고 있다. - 커서를 클릭하여 이동하거나 복사, 변경, 삽입, 삭제, 등의 편집작업을 할 수 있으며, 삽입을 할 경우 커서의 뒤에 삽입이 된다. - 만약 사용하고자 하는 명령어를 이용할 수 없는 경우에는 프로젝터 메뉴의 CPU 선택 텝에서 CPU 기종 및 버전을 확인하고, 여기서 사용가능한 명령어만 이용할 수 있다. 14
7) 프로그램 저장, 컴파일 프로그래밍 작업을 완료하고, 저장 후 컴파일을 실시하면 메시지 창 이 나타나며, 프로그램상의 오류내용을 표시한다. 오류가 없으면 PLC 로 다운로드할 수 있는 상태가 되고, 오류가 있으면 오류를 해결해야 PLC 로 전송이 가능하다. 8) 프로그램 다운로드 및 모니터링 프로그래밍 작업후 컴파일이 완료되면 PLC 로 다운로드가 가능하고, PLC 에 전송이 완료되면 래더 프로그램 모니터링이 가능하다. 모니터링 상태에서 CPU 에러 상태가 되면 에러발생한 스텝번호를 찾아 수정해야 한다. CPU 와 프로그램이 정상적으로 운전되는 환경이 되면 CPU 를 기동(UN)시킬 수 있다. 15
제 5 장 명령어 이해. 5-3 5.1 접점 명령 : ST, STN, DIF, DFN, DF, DN, NOT. 5-8 5.2 출력 명령 : OUT,SET,ST,ALT,PLS,PLF. 5-13 5.3 블록처리 명령 : ANB, OB, MS, M, MCS, MC. 5-15 5.4 타이머 : TIM, TOF, SST, TM.. 5-18 5.5 카운터 : UC, DC, CT, UDC,... 5-23 5.6 시프트 S 명령 : S... 5-25 16
기본 명령어 접점 명령 니모닉 명 칭 래더 심볼 설 명 ST Start a 접점 시작 STN Start Not b 접점 시작 AND And a 접점 직렬회로 ANN And Not / b 접점 직렬회로 O Or a 접점 병렬회로 ON Or Not / b 접점 병렬회로 ST DIF Start Differential 상승엣지 접점 시작 ( ) ST DFN Start Dif. Not F 하강엣지 접점 시작 ( ) AND DIF And Dif. 상승엣지 직렬 접속 ( ) AND DFN And Dif. Not F 하강엣지 직렬 접속 ( ) O DIF Or Dif 상승엣지 병렬 접속 ( ) O DFN Or Dif. Not F 하강엣지 병렬 접속 ( ) DF Differential 연산결과 상승 엣지 처리 ( ) DN Differential Not 연산결과 하강 엣지처리 ( ) NOT Not / 연산결과 회로반전 출력 명령 니모닉 명 칭 래더 심볼 설 명 OUT Output 연산결과 출력 SET Set (SET) 접점출력 SET(ON 유지) ST eset (ST) 접점출력 ESET(OFF 유지) ALT Alternative Output (ALT) 연산결과 상승시 교번(반전) 출력 PLS Pulse Output (PLS) 연산결과 상승시 1Scan 출력 PLF Pulse Falling Out (PLF) 연산결과 하강시 1Scan 출력 17
블록처리 명령 니모닉 명 칭 래더 심볼 설 명 ANB And Block 회로블럭의 직렬 접속 OB Or Block 회로블럭의 병렬 접속 MS M Master block Set Master block eset (MS) (M) 마스터 블럭 시작 마스터 블럭 종료 MCS MCS 회로분기 시작 (Master Control Set) MC MC 분기 종료 (Master Control eset) 타이머 명령 니모닉 명 칭 래더 심볼 설 명 비 고 TIM ON 타이머 (On Delay Timer) TIM Ch=00010 SV=00050 한시동작 순시정지 타이머 입력 출력 5 초 Time Base: Ch 0~63= 0.01s Ch 64~255= 0.1s 설정범위 : SV = 0~65535 접점표시 : TC + 채널번호 TOF Off 타이머 (Off Delay Timer) TOF Ch=00064 SV=00005 순시동작 한시정지 타이머 입력 출력 5 초 Time Base: Ch 0~63= 0.01s Ch 64~255= 0.1s 설정범위 : SV = 0~65535 접점표시 : TC + 채널번호 SST 싱글타이머 (Single Shot Timer) SST Ch=00100 SV=00005 순시동작/정지 타이머 입력 출력 5 초 Time Base: Ch 0~63= 0.01s Ch 64~255= 0.1s 설정범위 : SV = 0~65535 접점표시 : TC + 채널번호 TM 정전기억 ON 타이머 (etentive Timer) TM Ch=00070 SV=00050 정전기억 ON 타이머 입력 출력 정전 구간 정전제외 5 초 Time Base: Ch 0~63= 0.01s Ch 64~255= 0.1s 설정범위 : SV = 0~65535 접점표시 : TC + 채널번호 18
카운터 명령 니모닉 명 칭 래더 심볼 설 명 비 고 UC DC Up Counter Down Counter UC U Ch=020 SV=004 DC D Ch=021 SV=005 상승 카운터 입력 현재값 출력 리셋 하강 카운터 입력 현재값 출력 리셋 설정값 설정값 채널범위 : Ch 0~255 (타이머와 공용) 설정범위 : SV = 0~65535 접점표시 : TC + 채널번호 채널범위 : Ch 0~255 (타이머와 공용) 설정범위 : SV = 0~65535 접점표시 : TC + 채널번호 CT UDC ing Counter Up-Down Counter CT T Ch=022 SV=004 UDC U Ch=023 SV=003 D 링(회전) 카운터 입력 설정값 현재값 출력 리셋 상승/하강 카운터 U입력 D입력 설정값 현재값 출력 리셋 채널범위 : Ch 0~255 (타이머와 공용) 설정범위 : SV = 0~65535 접점표시 : TC + 채널번호 채널범위 : Ch 0~255 (타이머와 공용) 설정범위 : SV = 0~65535 접점표시 : TC + 채널번호 시프트 S 명령 니모닉 명 칭 래더 심볼 설 명 비 고 S Shift egister S I Sb=K1.4 Eb=K2.5 P 시프트 레지스터 Sb K1.4......... Eb K2.5 I I값 번지 사용영역 (Sb, Eb): M, K 영역 (동일한 종류(M,K 등)범위내) P 단자 입력시마다 1Bit 씩 시프트 P 단자입력시 I 상태값이 Sb 에 저장 최대 사용갯수 : 256 개 명령 19
응용 명령어 5.7 스텝제어 명령..... 5-27 5.8 증감 명령어..... 5-31 5.9 대입 명령어..... 5-35 5.10 부호처리 명령.... 5-39 5.11 연산 위치 대입... 5-41 5.12 데이터 전송 명령... 5-42 5.13 간접지정 대입명령... 5-44 5.14 데이터 테이블 처리 명령..... 5-45 5.15 정수 비교 명령..... 5-47 5.16 실수 비교 명령..... 5-48 5.17 데이터 범위 비교명령..... 5-49 5.18 산술연산명령... 5-51 5.19 BCD 산술 연산..... 5-57 5.20 논리연산..... 5-62 5.21 회전명령.... 5-63 5.22 시프트 명령....... 5-65 5.23 BCD 숫자 변환..... 5-66 5.24 데이터 변환...... 5-69 5.25 데이터 처리...... 5-76 5.26 함수처리 명령...... 5-80 5.27 데이터 제한 명령..... 5-82 5.28 실수 변환 명령... 5-86 5.29 문자열 처리...... 5-88 5.30 문자열 변환....... 5-91 5.31 삼각 함수명령....... 5-94 5.32 루프/분기 명령...... 5-97 5.33 인터럽트 명령...... 5-101 5.34 입출력 제어...... 5-105 5.35 특수기능 제어...... 5-107 5.36 시간 제어...... 5-118 5.37 통신모듈 제어...... 5-119 5.38 통신 제어 명령..... 5-127 20
기본 명령어 상세설명 5.1 접점 명령 5.1.1 a 접점, b 접점 명령 니모닉 명령 래더 표시 설 명 워드수 적용기종 주 1) ANN 명령은 핸디로더를 사용할 경우 종류에 따라 ADN 으로 표기된 기종도 있습니다. 1. a 접점 은 지정한 번지의 값이 1 일 때 ON 이 되며, 신호가 없는 Normal 상태인 0 일 때는 Off 되는 NO(Normal Open) 접점 상태를 말한다. 2. b 접점 은 지정한 번지의 값이 Normal 상태인 0 일 때 회로가 도통되는 ON 상태가 되며, 1 일 때는 Off 가 된다. 즉, 신호가 없는 0 상태 에서 연결이 되는 NC(Normal Close) 접점 상태를 말한다. 3. 접점의 상태는 a 접점 과 b 접점 으로 나누며, 니모닉 명령어로는 직렬접속 (AND 조건)과 병렬접속(O 조건)으로 나누어 AND/ANN, O/ON 등으로 구별하여 표현한다. 4. 번지 지정은 비트번지 영역만 사용 가능하고,,L,M,K,F,TC 등을 사용할 수 있다. 1 ST, STN 명령 ST 000.00 STN 000.01 / ST a 접점 시작 1 전기종 STN b 접점 시작 1 전기종 AND a 접점 직렬접속 1 전기종 ANN (주 1) b 접점 직렬접속 1 전기종 O a 접점 병렬접속 1 전기종 ON b 접점 병렬접속 1 전기종 M000.00 M000.01 000.00 의 a 접점이 ON 되면 출력 M000.00 이 ON 되고, 접점이 OFF 되면 출력도 OFF 가 됩니다. b 접점의 경우 000.01 이 OFF 상태에서 출력이 ON 되며, 접점이 ON 되면 출력 이 OFF 된다. 니모닉 프로그램 예 래더 프로그램을 니모닉으로 변환하면 ST, OUT, STN, OUT 의 순서로 된다. 즉, 니모닉 프로그램으로 확인해 보면 ST 000.00, OUT M000.00 STN 000.01, OUT M000.01 이된다 ST, STN 명령 AND 000.00 000.01 M000.02 ANN 000.02 000.03 M000.03 / / a 접점의 0.0 이 ON 상태에서 0.1 이 ON되어야(AND조건) 출력이 ON 되며, b 접점의 000.02 는 OFF 상태이고, 000.03도 OFF상태(AND NOT조건)에서 출력이 ON 된다. 니모닉 프로그램 예 니모닉 프로그램으로 변환하면 ST 000.00, AND 000.01, OUT M000.02 STN 000.02, ANN 000.03, OUT M000.03 의 순서로 된다. O, ON 명령 000.00 O 000.01 M000.04 000.02 M000.05 / ON 000.03 / a 접점 의 0.0 또는 0.1 에서 하나만 ON 되어도(O 조건) 출력(M0.4) 이 ON 되는 상태를 말하며, 부울대수로 O 회로 로 출력 Y=A+B 로 표현한다. b 접점 의 0.2 와 0.3 중에 하나만 OFF 가 되어도 출력 M0.5 가 ON 되는 회로를 NAND 회로 (AND NOT)라고 하며, 출력(Y)=A*B 로 표현하고 이것을 변환하면 Y=A+B 이며 래더와 같다 니모닉 프로그램 예 니모닉 프로그램으로 확인 해 보면 구성하고 있는 순서에 따라 작동된다. 즉, ST 000.00, O 000.01, OUT M000.04 STN 000.02, ON 000.03, OUT M000.05 의 순서로 된다. 21
응용예제 1 NO(O NOT) 회로 000.00 000.01 000.00 / / 000.01 / M000.04 M000.05 XO(Exclusive O) 회로 000.00 000.01 / 000.00 000.01 / 인터록 회로 000.00 000.01 M001.01 / M001.00 / M000.00 M001.00 M001.01 NO(O NOT)회로는 Y=A+B 를 말하며, 이것은 Y=A*B 와 동일하고 왼쪽의 래더와 같으며, 출력 M0.4 와 M0.5 는 동일한 프로그램이 된다. XO(배타적 논리합)회로는 입력 A,B 중 하나만 ON 일때 출력이 ON 되는 회로를 말하며, Y=A*B + A*B 로 표현한다 인터록 회로는 출력 X 및 출력 Y 중에서 하나가 ON 작동을 하고 있으면 다른쪽 출력이 ON 되지 못하도록 제한하는 회로를 말하며, X=A*Y, Y=B*X 로 표현한다. 응용예제 2 교번동작 회로 000.00 M000.00 M001.00 / M000.00 M001.00 / M000.00 M001.00 교번동작 회로는 입력접점이 한번씩 ON,OFF 될때마다 출력이 교번으로 한번은 ON, 한번은 OFF 를 반복하는 회로를 말한다. 즉, 입력이 ON 된 후 OFF 가 되어도 출력은 계속 ON 을 유지하고 있으며, 다시 입력이 ON, OFF 되면 출력이 OFF 상태로 유지된다. 주 1) 교번동작 회로의 예제에서 입력은 0.0, 출력은 M1.0, 내부접점으로 M0.0 으로 작동되도록 프로그램 되어 있습니다. 주 2) 입력접점의 래더표시 은 상승엣지 를 뜻하며, 입력이 OFF 에서 ON 으로 변하는 순간의 1Scan 동안만 작동하는 접점입니다. 상세내용은 DIF 명령어 부문을 참조바랍니다. 22
5.1.2 엣지 접점 명령어 니모닉 명령 래더 표시 설 명 워드수 적용기종 ST DIF 상승엣지 접점 시작 ( ) 1 전기종 AND DIF 상승엣지 직렬 접속 ( ) 1 전기종 O DIF 상승엣지 병렬 접속 ( ) 1 전기종 ST DFN F 하강엣지 접점 시작 ( ) 1 전기종 AND DFN F 하강엣지 직렬 접속 ( ) 1 전기종 O DFN F 하강엣지 병렬 접속 ( ) 1 전기종 1. 엣지 접점은 값(상태)이 변하는 시점의 1SCAN 동안 ON 되는 접점을 말한다. 2. 상승엣지(DIF)는 접점이 OFF 에서 ON 으로 변하는 1Scan 동안 ON 으로 작동하고 하강엣지(DFN)는 접점이 ON 상태에서 OFF 로 변하는 1Scan 동안 ON 되는 접점입니다. 3. 번지 지정은 아래와 같은 비트번지 영역에서 중복으로 사용할 수 있습니다. - NX-CPU700P, NX70-CPU70p2, NX70-CPU70p1(Ver2.0 이상), CPL9216A, CPL7215A = =>,L,M,K,F,TC 등의 전영역 사용이 가능합니다. - NX70-CPU70p1(V1.x), CPL9215A = 전체, M0.0~M63.15, F, TC 의 전영역 사용가능. : CPU70p1, 9215A 모델은 내부접점 M64.0~M127.15 까지, K 영역을 엣지로 사용할 수 없으며, 프로그램 S/W 에서는 에러처리를 하지 않고 CPU 에 Download 를 하면 에러로 처리하여 운전(UN 작동)이 되지 않습니다. : SPC 시리즈(SPC-10, SPC-100/24S/120S/300 등)는 1 개 비트마다 1 개의 명령어만 사용할 수 있으며, 두번째 이후의 명령어는 에러 처리 없이 작동하지 않습니다. 4. 하나의 번지로 상승엣지 및 하강엣지를 다중으로 사용할 수 있습니다. 5. 엣지명령어도 시퀀스와 같이 순차적으로 작동하므로 프로그램 중간에 출력을 변화시키면 출력이전의 엣지동작과 출력이후의 엣지동작이 달라질 수도 있습니다. 상승,하강엣지 a접점 000.00 상승엣지 000.00 하강엣지 000.00 F M000.00 입력 0.0 OUT 출력 (M0.0) M000.01 > < 1Scan 상승엣지 (M0.1) M000.02 1Scan > < 하강엣지 (M0.2) 입력 0.0 접점이 ON 되면 OUT 출력(M0.0)은 입력과 같으며, 상승엣지는 입력이 OFF 에서 ON 되는 1 Scan 동안 출력이 ON 되는 기능이며, 하강엣지는 입력이 ON 에서 OFF 로 하강하는 1 Scan 동안 ON 되는 접점이다. 니모닉 프로그램 예 엣지 접점도 a 접점이나 b 접점과 동일한 형태로 사용되며, 시작회로 와 직렬회로, 병렬회로등에 따라 니모닉 명령어가 달라진다. 를 니모닉으로 변환하면, ST 00.00, OUT M00.00, ST DIF 00.00, OUT M00.01, ST DFN 00.00, OUT M00.02 등으로 변환할 수 있다 23
5.1.3 연산 결과 엣지 명령 주) CPU F/W 버전 5.x 이상에서 사용 가능하며, WinGPC 4.15 이상에서 사용 가능합니다. 명령어 워드수 명칭 래더 표시 설 명 DF 2 논리 상승엣지 연산결과 상승 엣지 처리 ( ) DN 2 논리 하강엣지 연산결과 하강 엣지처리 ( ) 1. 명령어 이전까지의 연산결과에서 ON 이 감지되면 1 스캔동안 연산결과를 ON 시킨다. 다음 스캔에서는 OFF 가 된다. 2. - -(DF)는 ON 접점 감지시에 1scan ON 시키고, - -(DN)은 OFF 접점 감지시에 1scan ON 된다. 3. 접점 엣지 처리 명령어와는 다르며, 번지 지정이 없고, 연산중의 상태를 가지고 엣지 처리를 한다. 4. CPU F/W 버전 5.x 이상에서 사용 가능하며, WinGPC 4.15 이상에서 사용 가능합니다. 5. Ladder 작성시에 접점 명령어와 같은 형식으로 사용되지만, Power Line 에 최초로 사용될 수는 없다 M000.00 사용가능 M001.00 사용 불가능 M001.00 00.00 00.01 M001.00 M001.01 -- -- 명령이전의 연산결과가 ON (0.0 과 0.1 모두 ON) 되는 시점에서 출력 M1.0 은 한 스캔 동안 ON 상태를 유지한다 -- -- 명령이전의 연산결과가 OFF (0.0과 0.1 모두 OFF)되는 시점에서 출력 M1.1은 한 스캔 동안 ON상태를 유지한다 입력 0.0 입력 0.1 출력 M1.0 출력 M1.1 스캔주기 24
5.1.4 연산결과 반전 명령 니모닉 명령 래더 표시 설 명 워드수 적용기종 NOT 회로 반전 (이전의 연산결과를 반전시킴) 1 전기종 1. NOT 이전의 상태를 반전시키는 역할을 하며, 번지는 지정하지 않는다. NOT 명령 NOT 은 이전의 연산결과를 반전시키는 기능이며, 접점상태의 반전과 직렬회로 또는 병렬회로의 반전도 가능하다. 다음과 같은 두 회로는 같은 기능을 한다. 즉, b 접점의 기능과 a 접점의 반대가 기능이 같다. 000.00 M000.01 000.00 M000.01 / / 이 기능을 이용하여 시퀀스 회로를 부울 대수식으로 변환하여 간단하게 만들기도 한다. 즉, 아래와 같이 O 회로(병렬회로)로 구성된 경우를 변환하면 다음과 같은 AND 회로로 된다. 000.00 A 000.01 B 000.02 C 000.03 D M000.02 Y 000.00 000.01 000.02 000.03 A B C D / / / / NOT 회로 M000.02 왼쪽의 O 회로를 부울 대수식으로 표현하면 Y=A+B+C+D 로 나타내고, 이것을 변환하면 Y=(A+B+C+D)=A*B*C*D 이다. 여기서 출력 Y 는 Y 앞에 NOT 회로를 삽입하면 동일한 결과가 된다. 이와 같은 형식으로 복잡한 AND 회로을 O 회로로 변환하여 쉽게 해석해도 동일한 결과를 얻을 수 있으며, 각종 인터록 회로를 쉽게 이해할 수 있는 프로그램으로 변환하기도 합니다. / Y 25
5.2 출력 명령어 5.2.1 연산결과 출력명령 니모닉 명령 래더 표시 설 명 워드수 적용기종 OUT 연산결과 출력 1 전기종 SET (SET) 출력을 ON 으로 SET 2 전기종 ST (ST) 출력을 OFF 로 ESET 2 전기종 1. OUT 출력은 프로그램이 수행되는 매 스캔마다 연산이 된다. 2. OUT, SET, ST 등의 출력은 접점으로 사용되는,L,M,K 영역만 사용 가능하고, 특수 내부접점인 F 영역은 일부만 출력용으로 사용가능하다. 3. 입출력 번지의 영역의 경우 입력모듈이 장착된 번지는 출력으로 사용할 수 없다. 4. OUT 출력의 경우 입출력의 영역은 하나만 사용할 수 있으며, 내부접점인 L,M,K,F 영역은 두개 이상 사용이 가능하지만 최후에 사용한 OUT 명령으로 연산되므로 다중으로 사용할 경우에는 주의해야 한다. 5. SET 또는 ST 명령의 경우, 다중으로 사용이 가능하며, 접점을 한번 SET 하면 ST 명령으로 ESET 될때 까지 연산결과가 유지된다. 6. 정전유지 접점인 K 영역으로 SET 또는 ST 을 사용하면 전원이 OFF 되기 이전의 값을 유지하게 된다. 7. 출력명령 OUT,SET,ST 등은 입력이 없이 OOT 에서 직접 출력으로 사용할 수 없으며, 항상 작동해야 하는 경우에는 운전중 항상 ON 되는 F0.15 번지의 a 접접을 사용한다. OUT,SET,ST 명령 000.00 OUT SET 000.01 ST M000.00 M000.01 (SET) M000.01 (ST) 입력 0.0 입력 0.1 OUT 출력 (M0.0) SET 출력 (M0.1) 입력 0.0 접점이 ON 되면 OUT 출력(M0.0)은 입력이 ON 되어있는 동안 작동되며, 입력이 OFF 되면 동시에 출력도 OFF 된다. SET 출력(M0.1)은 입력이 ON 되는 순간부터 ON 을 유지하고 있으며, ST 입력(0.1)이 ON 될 때 출력이 OFF 로 된다. 니모닉 프로그램 예 래더를 니모닉으로 변환하면 ST 000.00, OUT M000.00, SET M000.01, ST 000.01, ST M000.01 이 된다. 여기서 출력이 병렬로 연결된 회로는 출력회로를 반복적으로 사용하면 된다. 응용 1 다음과 같은 자기유지 접점을 SET, ST 명령으로 사용할 수도 있다. 000.00 M000.00 000.01 / M000.00 000.00 000.01 M000.00 (SET) M000.00 (ST) 26
5.2.2 특수 코일 출력 명령어 워드수 명칭 래더 표시 설 명 ALT 3 교번출력 (Alternative Output) PLS 3 상승엣지 출력 (Pulse ising Output) PLF 3 하강엣지 출력 (Pulse Falling Output) (ALT) (PLS) 상승 엣지마다 출력을 교번(번갈아 가면서 출력이 유지됨)시킨다 상승 엣지시에 출력을 한 스캔 동안만 ON 으로 출력 (PLF) 하강 엣지시에 출력을 한 스캔 동안만 ON 으로 출력 주) CPU F/W 버전 5.x 이상에서 사용 가능하며, WinGPC 4.15 이상에서 사용 가능합니다. 1. 접점으로 사용되는, L, M, K 영역만 사용 가능하고, 특수 내부접점인 F 영역은 일부만 출력용으로 사용 가능하다. 2. 입출력 번지의 영역의 경우 입력모듈이 장착된 번지는 출력으로 사용할 수 없다. 3. 동일한 번지를 다중으로 사용이 가능하지만, 다중으로 사용하면 스텝에 따라 연산결과가 다르게 나올 수 있으므로 주의해야 합니다. 4. CPU F/W 버전 5.x 이상에서 사용 가능하며, WinGPC 4.15 이상에서 사용 가능합니다. 000.00 000.00 000.01 M01.00 (ALT) M01.01 (PLS) M01.02 (PLF) 0.0 이 ON 되는 순간마다 M1.0 의 상태는 교번한다. 0.0 이 ON 되는 순간 M1.1 은 한 스캔 동안만 ON 된다. 0.1 이 ON 에서 OFF 로 되는 순간 M1.2 는 한 스캔 동안만 ON 된다. 입력 0.0 입력 0.1 ALT 출력 (M01.0) PLS 출력 (M01.1) PLF 출력 (M01.2) 스캔주기 27
5.3 블록처리 명령어 5.3.1 회로 블록 명령 니모닉 명령 래더 표시 설 명 워드수 적용기종 ANB 회로블럭의 직렬 접속 1 전기종 OB 회로블럭의 병렬 접속 1 전기종 1. ANB(AND Block)은 블록으로 구성된 것을 직렬로 접속하는 것을 말하며, OB(O Block)은 회로 블록을 병렬로 접속하는 경우를 말한다. 2. 이 명령어는 번지 지정은 하지 않으며, 명령어만 사용한다. 3. 블록으로 구성하는 버퍼(Stack)는 최대 16 개까지 가능하며, CPU 기종별로 다릅니다. ANB 명령 A블록 B 블록 000.00 000.0 1 ANB 000.02 000.03 M000.00 A 블록과 B 블록을 직렬 AND 조건으로 연결하는 것이 ANB 이며, A 블록과 B 블록이 모두 ON 되면 출력이 ON 된다 니모닉 프로그램 예 니모닉으로 확인해 보면 ST 000.00, O 000.01, ST 000.02, O 000.03 으로 되고, 다음으로 ANB, OUT M000.00 이된다 OB 명령 A블록 000.00 000.01 B블록 000.02 000.03 M000.01 A 블록과 B 블록을 O 조건의 병렬로 연결하는 것이 OB 이며, 블록중에서 하나가 연결되면 출력이 ON 된다. 니모닉 프로그램 예 니모닉 프로그램으로 변환하면 ST 000.00, AND 000.01, ST 000.02, AND 000.03, OB, OUT M000.01 의 순서로 된다. 28
5.3.2 마스터 컨트롤 명령 니모닉 명령 래더 표시 설 명 워드수 적용기종 MS ( MS ) 마스터 블럭(일괄처리) 시작 1 주 1) M ( M ) 마스터 블럭(일괄처리) 종료 1 주 1) MCS 회로분기 시작 1 전기종, 주 2) MC 분기 종료 (분기 끝에 존재) 1 전기종, 주 2) 주 1) - MS, M 명령은 CPU F/W 버젼 2.0 이상 및 WinGPC 3.70 이상에서 작동됩니다. - WinGPC V3.70 이상, PLC V2.0 이상에서 MCS, MC 명령이 분기로 변환(Upgrade)되었습니다. 주 2) WinGPC 버전에 따라 표현방법이 다릅니다. - WinGPC 버전 3.70 이상에서 출력으로 MS, M 로 작동하고, WinGPC 3.6 이하 에서는 회로분기 형태로 변환이 되며, 2.xx 이하 버전은 모두 출력으로 표현됩니다. 1. 출력 MS 및 M 명령은 별도의 번지를 지정하지 않고, 명령어만 사용되며, 마스터 블록 비트로 작동합니다. 2. MS, M 은 항상 쌍으로 구성해야 하며, 네스팅(MS 영역내에서 반복사용하는 구조)을 최대 16 개 까지 사용할 수 있고, 그 이상에서는 OverFlow 현상이 생길 수 있습니다. 네스팅을 사용하는 수량은 CPU 기종별로 차이가 납니다. 3. CPU 에 저장된 MCS,MC 을 WinGPC3.0 이상에서 구동하면 회로분기 형식으로 나타나며, 니모닉에서 확인되며, WinGPC V2.xx 이하에서는 출력 MCS, MC 로 표시됩니다. 4. MS 명령 앞에는 항상 명령어가 있어야 하며, OOT 에 직접 연결할 수 없으며, M 명령어 앞에는 접점명령을 사용하지 않고 oot 에 직접 연결해야 합니다. 5. MCS, MC 명령어는 WinGPC3.70 버젼 이상에서는 회로분기 형식으로만 사용할 수 있고, 니모닉 명령어에서 확인 가능합니다. 1 <그림 1>(CPU V1.3~, WinGPC 3.5~이상) 000.00 000.01 MCS 000.02 000.03 / (MS ) M000.00 M000.01 MC (M ) MS 조건의 0.0 접점이 ON 된 후 MS/M 블록의 접점이 ON 되어야 출력이 ON 됩니다. 즉,0.0, 0.1, 0.2 가 ON 되면 출력 M0.0 ON 이고 0.0= ON, 0.1= ON, 0.3= OFF 이면 M0.1 이 ON, 0.0 이 OFF 되면 모든 출력이 OFF 됩니다. 29
2 : MS/M, MCS/MC 명령어 기능비교(WinGPC3.x 이하버젼) <그림 2> WinGPC2.x 버젼 000.00 (MCS) 000.01 M000.00 000.02 / M000.01 (MC) <그림 3>변환예제(WinGPC3.1x) 000.00 000.01 M000.00 MCS 존재 000.02 / M000.01 MC 존재 <그림 4>변환예제(WinGPC3.7x) 001.00 (MS ) 000.00 000.01 M000.00 MCS 000.02 M000.01 존재 / MC 존재 (M ) 1. WinGPC 2.x 버전에서는 MCS, MC 기능은 <그림 1, 2>와 같이 표현 및 사용할 수 있으며, <그림 3>은 WinGPC3.6x 이하버전에서 표시방법이고, <그림 4>는 WinGPC3.7x 이상에서 표시 가능한 형식이며, MS, M 명령은 3.7 버전 이하에서 사용할 수 없습니다. 2. 래더로 프로그래밍 작업시에는 MCS/MC 명령어를 사용하지 않고, 분기 형식으로 작업을 해도 실제 CPU 에 운영되는 프로그램에는 자동으로 MCS, MC 명령이 포함되도록 되어 있으며, CPU 의 프로그램을 Upload 하면 작업한 형식으로 나타나지 않을 수도 있습니다. 3. 래더 프로그램을 PC 에 저장(Compile)하여 PLC 로 전송할 경우에는 작업한 형태와 동일하게 표현되지만, PLC 에 있는 프로그램을 Upload 하여 래더로 변환(Decompile)하면 WinGPC 의 버전에 따라 그림 2,3,4 와 같이 다르게 표현됩니다. 즉, WinGPC V3.1x 이하에서 <그림 2>와 같이 프로그램을 하여 PLC 에 저장한 후, WinGPC V3.x 이상에서 Upload 하면 <그림 3>과 같이 표현되며, WinGPC2.x 이하에서 Upload 하면 항상 <그림 2>와 같이 표시됩니다. 4. WinGPC V3.7x 에서는 <그림 1>과 같이 프로그램을 할 수 없으며, CPU 버젼 V1.2x 이전에서는 동작을 하지 않고, PLC V2.0 이상에서는 정상으로 동작합니다. 이전 버전(PLC V1.2x 이하)은 그림 3 과 같은 방식으로 프로그램 해야 정상 동작하게 됩니다. 5. WinGPC 3.7 이상 에서는 CPU의 OM 버전에 상관없이 자동으로 MCS/MC, MS/M 명령어로 전환되도록 수정되었습니다. 니모닉 프로그램 예 1. 를 니모닉으로 변환하면, <그림 2, 그림 3 예제> WinGPC 에서 니모닉변환은 ST 0.0, MCS, ST 0.1, OUT M0.0, STN 0.2, OUT M0.1, MC 등으로 동일하지만, WINGPC V3.5x 이상 및 CPU 버젼 2.0x 이상에서는 MS, M 명령을 추가로 사용할 수 있으며, 이전 버전에는 저장할 수 없습니다. 30
. 5.4 타이머, 카운터 명령 개요 5.4.1 타이머/카운터 명령 이해 NX plus 시리즈에서 타이머와 카운터명령은 번지 체계가 다음과 같이 구성되어 있습니다. 1. 타이머와 카운터는 공용으로 최대 256 개를 사용할 수 있습니다. 2. 타이머와 카운터는 공용의 채널번호를 사용하며, 순서에 무관하게 000~255 번까지 지정하고, 동일한 채널번호를 사용할 수는 없습니다. 3. 타이머로 사용할 경우 채널번호를 어떤 번호로 사용하는가에 따라 Time Base 가 0.01 초 단위 또는 0.1 초 단위로 계산되므로 CPU 기종별로 차이점이 있습니다. CPU 기종 0.01 초 타임베이스 0.1 초 타임베이스 NX7, NX7s, NX7, NX70p, NX700p, N700p,N70p, SPC300, A200, 채널번호 0 ~ 63 채널번호 64 ~ 255 SPC 전체 (SPC300 제외한 전체), 채널번호 0 ~ 15 채널번호 16 ~ 255 4. 설정치(SV) 또는 경과치(PV)는 16 비트 부호 없는 정수로 0 ~ 65,535 까지 지정됩니다. 5. 타이머나 카운터의 출력접점 번지는 TC + 채널번호 로 지정합니다. 주) TC 접점을 입력할 수 없는 프로그래머(PGM10, PGM300A 등)는 TIM+채널번호 로 사용합니다. 6. 경과치 값은 카운터로 사용할 경우에는 경과치 값이 정전유지가 되며, 타이머로 사용할 경우에는 경과치 값이 정전유지가 안되고 초기화됩니다. 주 1) 카운터로 사용할 때 경과치(PV)값이 정전유지가 안되는 경우 : CPU 기종 정전유지 가능영역 정전유지 불가 영역 NX7s-10xxx, NX7s-14xxx 채널번호 0 ~ 127 채널번호 128 ~ 255 SPC10/24S/120S/100, 채널번호 0 ~ 15 채널번호 16 ~ 255 기타 기종 전체 영역(Ch 0~255) 없음 주 2) 타이머로 사용할 때 경과치(PV)값이 정전유지가 되는 경우 타이머 TM 명령어(정전유지 ON 딜레이 타이머)를 사용할 경우 정전유지됨. 7. 경과치가 증가하는 타이머(TIM, SST 등)는 설정치를 지나 출력이 ON 된 이후에도 경과치는 계속 증가하여 최대치(65535)에서 멈추게 되며, 입력조건이 OFF 되면 경과치가 초기화 됩니다. 00.00 TIM Ch=0 입력조건 SV=300 TC000 M01.01 출력접점 00.0 UC U Ch=10 입력조건 1 SV=5 00.1 입력조건 2 00.0 UDC U Ch=20 입력조건 1 SV=5 00.1 D 입력조건 2 00.2 입력조건 3 타이머 명령어에서 TIM, TOF, SST 명령은 입력조건이 1 개로 구성되고, 채널번호와 설정치 변수가 있습니다. 타이머/카운터명령의 출력접점은 TC + 채널번호 로 사용합니다. 카운터의 UC, DC, CT 명령과 타이머의 TM 명령은 입력조건이 2 개로 구성되고, 채널번호와 설정치 변수가 있습니다. 카운터의 UDC 명령은 입력조건이 3 개로 구성되고, 채널번호와 설정치 변수가 있습니다. 31
5.4.2. ON/OFF/SST 타이머 니모닉 명령 래더 표시 설 명 워드수 적용기종 TIM TIM Ch= SV= ON (지연) 타이머 (한시동작 순시정지 타이머 ) 3 전기종 TOF TOF Ch= SV= OFF (지연) 타이머 (순시동작 한시정지 타이머) 3 주 1) SST SST Ch= SV= 싱글 동작 타이머 (순시동작/정지 타이머) 3 전기종 주 1) 적용기종 (TOF 명령) SPC-10 SPC100 SPC300 A200 N70 plus NX70 plus N/NX700plus NX700plus 기 종 24S/120S 9215A,9216A CPU70p1/V2,CPU70p2/V2 7215A,CPU700p CPU700p/V2 지원여부 X X X 1. 타이머와 카운터는 공용으로 최대 256 개를 사용할 수 있습니다. 2. 타이머와 카운터는 공용의 채널번호를 사용하며, 순서에 무관하게 0~255 번까지 지정하고, 동일한 채널번호를 사용할 수는 없습니다. 3. 타이머로 사용할 경우 채널번호 0~63 번 까지 지정하면, 자동으로 Time Base 가 10mSec (0.01 초)단위로 계산되고, 채널번호 64~255 번까지 지정하면 Time Base 가 100mSec(0.1 초)단위로 계산이 됩니다.(SPC 기종은 별도참조) 4. 설정치(SV)는 16 비트로 0 ~ 65,535 까지 지정할 수 있습니다. 5. 타이머나 카운터의 출력접점 번지는 TC + 채널번호 로 지정합니다. 6. 각각의 채널별로 타이머로 사용할 경우에는 경과치 값이 정전유지가 안되며, 카운터로 사용할 경우에는 경과치 값이 정전유지가 됩니다. (SPC, NX7s 는 별도참조) 7. 경과치가 증가하는 타이머(TIM, SST 등)는 설정치를 지나 출력이 ON 된 이후에도 경과치는 계속 증가하여 최대치(65535)에서 멈추게 되며, 입력조건이 OFF 되면 경과치가 초기화 됩니다. 8. 경과치가 감소하는 타이머(TOF)는 타이머가 작동할 때부터 경과치가 감소되고, 경과치가 0 이 되면 출력이 ON 되고 경과치가 멈추게 됩니다. 9. TIM 은 입력이 ON 된 후부터 타이머가 작동해서 지정시간 이후에 출력이 ON 되는 기능의 ON 지연 타이머 입니다. 10. TOF 는 입력이 OFF 된 시점에 타이머가 작동해서 지정시간 이후에 출력이 OFF 되는 기능의 OFF 지연 타이머 입니다. 11. SST 는 입력이 ON 되면서 동시에 타이머가 작동해서 지정한 시간이 되면, 출력이 OFF 되는 타이머를 말한다. < ON 타이머 TIM > 000.00 TIM Ch=0 SV=300 TC000 M000.00 <타임차트> 입력 출력 3 초 타이머 입력조건이 ON 되면 타이머 경과치가 증가하여 설정치 이상이 되면 출력접점이 ON 됩니다. 입력이 OFF 되면 타이머 경과치가 초기화 되며, 출력도 OFF 됩니다. 32
< OFF 타이머 TOF > 000.00 TC100 TOF Ch=100 SV=50 M000.01 <타임차트> 입력 출력 5 초 타이머 입력조건이 ON 되면 타이머 출력도 ON 되며, 입력이 OFF 되는 순간, 경과치가 설정치부터 감소하게 되며, 경과치가 0 이 되면 출력접점이 OFF 됩니다. < 응용예제 : SST 를 이용한 OFF 타이머 > 00.0 001.1 SST 0 Ch=100 SV=50 TC100 001.01 <타임차트> 입력 00.0 출력 5 초 입력 접점과 동시에 출력도 ON 되며, 입력이 OFF 되는 순간부터 SST 타이머가 작동하고 설정값까지 증가한 후, 경과치와 설정치가 동일하면 출력접점 이 OFF 됩니다. 응용예제 1 < 싱글 타이머 SST > 000.00 TC200 SST Ch=200 SV=30 M000.02 <타임차트> 입력 출력 3 초 타이머 입력조건이 ON 되면 출력도 ON 되고, 타이머 경과치가 증가하여 설정치 이상이 되면 출력이 OFF 됩니다. 경과치가 설정치에 도달하기 전에 입력이 OFF 되면, 출력도 OFF 됩니다. 타이머 1 개를 이용한 플리커 회로 입력이 ON 되면 3 초간 ON, 3 초간 OFF 가 반복되는 회로(플리커 회로) 입력 000.00 TC100 / TC100 / TC100 M000.00 M000.00 / TIM Ch=100 SV=30 M000.00 출력 <타임차트> 입력 출력 3 초 3 초 타이머의 SV 값을 조정하면 플리커 간격을 조정할 수 있습니다. 이 회로는 타이머와 교번동작 회로를 이용한 방법입니다. 간단한 특수접점을 이용한 1 초 플리커 회로 PLC 내부 특수접점(F 영역)을 이용하여 1 초간격의 플리커 회로를 활용할 수도 있습니다. F001.04 M000.01 <타임차트> 출력 0.5 초 0.5 초 타이머 2 개를 이용한 플리커 회로 2 입력이 ON 되면 3 초간 ON, 2 초간 OFF 가 반복되는 플리커 회로 000.00 TC102 입력 / TC101 <타임차트> 000.00 TC101 / TIM Ch=101 SV=30 TIM Ch=102 SV=20 M000.00 입력 출력 3 초 2S 33
타이머 2 개를 이용한 플리커 응용 회로 3 000.00 TC102 TI M Ch=101 입력 / SV=30 <타임차트> TC101 TI M 응용 표현 Ch=102 입력 SV=20 M000.00 출력 3 초 2S 응용예제 2 불안정한 신호의 안정화 회로 입력의 펄스 노이즈와 같은 불안정한 회로를 안정화 시킬 수 있는 회로 000.00 SST TC010 Ch=10 SV=30 <타임차트> TC010 M000.00 입력 출력 0.3 초 0.3 초 타이머의 경과치를 이용한 단계별 제어회로 타이머의 경과치(PV)를 이용하여 단계별 동작회로를 구성할 경우에 이용합니다. (비교명령어 부분은 별도로 참고 바랍니다) <래더 프로그램> <타임 차트 비교> 000.00 TIM Ch=100 SV=30 TC100 <= A=50 B=PV100 <= A=70 B=PV100 <= A=100 B=PV100 < A=PV100 B=70 < A=PV100 B=100 M000.00 M000.01 M000.02 M000.03 입력 경과치 경과치 0 30 50 70 설정치 100 출력 M000.00 30 출력 M000.01 50 출력 M000.02 70 출력 M000.03 100 1. 타이머 입력조건이 작동되고 있는 동안은 경과치(PV 값)가 최대치 까지 증가하므로 타이머의 경과치를 비교명령어로 영역을 설정하여 시간에 대한 구간별로 작동 프로그램을 구축하여 효과적인 회로구성을 할 수 있습니다. 2. 입력조건이 정지하면 모든 출력은 정지하게 됩니다. 34
5.4.3 정전기억 ON 타이머 명령 명령어 워드수 명칭 래더 표시 설 명 TM 3 etentive On-delay timer TM T CH= SV= 정전유지 ON 딜레이 타이머 주) CPU F/W 버전 5.x 이상에서 사용 가능하며, WinGPC 4.15 이상에서 사용 가능합니다. 1. 전원 OFF 중에도 경과치 값과 연산결과가 유지되는 타이머이다. 2. 설정 가능한 채널번호는 0~255 번까지 지정하며, 채널번호 0~63 번 까지는, Time Base 가 10mSec (0.01 초)단위로 계산되고, 채널번호 64~255 번까지 지정하면 Time Base 가 100mSec(0.1 초)단위로 설정이 된다. 3. 설정치(SV)는 16 비트로 0 ~ 65,535 까지 지정할 수 있습니다. 4. 타이머 출력접점 번지는 TC + 채널번호 로 지정한다. 5. 설정치를 지나 출력이 ON 된 이후에도 경과치는 계속 증가하여 최대치(65535)에서 멈추게 되며, 입력조건이 OFF 되어도 경과 값이 유지된다. 6. 입력단(eset)이 ON 되면 경과 값이 초기화된다. 7. 입력이 ON 된 후부터 타이머가 작동해서 지정시간 이후에 출력이 ON 되는 기능의 ON 딜레이 타이머 입니다 000.00 000.01 TC000 TM T Ch=0 SV=300 M000.00 타이머 입력조건이 ON 되면 타이머 경과치가 증가하여 설정치 이상이 되면 출력접점이 ON 됩니다. 전원이 OFF 되었다가 복구되더라도 경과치가 유지되므로 연산결과도 유지된다. 0.1 의 입력이 ON 되면 타이머 경과치가 초기화 되며, 출력도 OFF 됩니다. 정전구간 T 입력(0.0) 입력(0.1) TC 출력(M0.0) 설정된 3 초는 정전 구간에서 계수되지 않다가 정전이 복구되고 나면 계수한다. 설정시간이 경과하여 타이머의 접점이 ON 되고 난 뒤 정전이 되었다가 정전이 복구된 경우 입력 접점이 ON 으로 유지되고 있다면, 타이머의 접점도 유지된다. (eset)입력이 ON 되면 출력이 Off 된다. A B A+B =3 초 35
5.5 카운터 명령 5.5.1 Up 카운터, Down 카운터 니모닉명령 래더 표시 설 명 워드수 적용기종 UC DC 1. 카운터는 4 종류(UC, DC, CT, UDC)가 있고, 타이머와 공용으로 최대 256 개를 사용할 수 있습니다. 2. 타이머와 카운터는 공용의 채널번호를 사용하며, 순서에 무관하게 0~255 번까지 지정하고, 동일한 채널번호를 사용할 수는 없습니다. 3. 설정치(SV)는 16 비트(0 ~ 65,535 까지)를 지정할 수 있습니다. 1. 타이머나 카운터의 출력접점 번지는 TC + 채널번호 로 지정합니다. 2. 각 채널별로 카운터로 사용할 경우에는 경과치 값이 정전유지가 됩니다. 3. UC(상승 카운터)는 입력 접점이 OFF 에서 ON 으로 변경될 때마다 1 씩 카운터 되며, 카운터 값이 0 에서부터 최대치(65,535)까지 증가하고, 최대치에서는 입력에 무관하게 값을 유지합니다. 4. DC(하강 카운터)는 리셋 입력이 ON 되면 현재치가 설정치로 지정되며, 입력이 OFF 에서 ON 으로 변경될 때 마다 1 씩 감소하여 값이 0 이 될 때, 출력접점이 ON 되고, 카운터가 정지됩니다. eset 입력이 ON 되면, 출력이 OFF 로 변하고 현재치는 설정치로 지정됩니다. 리셋 입력이 OFF 된 후부터 카운터는 작동을 합니다. 초기 프로그램 다운로드 후 작동시에는 리셋입력을 ON 시킨 후 작동시키십시오. 5. 모든 카운터의 리셋입력이 ON 되어 있으면 입력의 영향을 받지 않고 초기화 됩니다. < UP Counter > 000.00 UC U Ch=20 000.01 SV=4 TC020 UC U Ch=020 SV=004 M000.00 입력(0.0) 리셋(0.1) 현재값(PV20) 출력(TC20) 5 4 3 2 1 설정값 상승 카운터는 입력이 ON 될 때마다 현재치가 1 씩 증가하며, 설정값 과 동일하거나 이상이 되면 출력접점이 ON 됩니다. 리셋입력이 ON 되면 0 으로 된다. < Down Counter > 000.00 DC D Ch=21 000.01 SV=5 TC021 M000.01 DC D Ch=021 SV=005 상승카운터 하강카운터 입력 현재값 출력 리셋 입력 현재값 출력 리셋 입력(0.0) 리셋(0.1) 현재값(PV21) 출력(TC21) 5 4 5 3 2 1 0 설정값 하강 카운터는 입력이 ON 될 때마다 현재치가 1 씩 감소하여 0 이 되면 출력접점이 ON 됩니다. 리셋입력이 ON 되면 출력은 정지하고 현재치가 설정치로 된다. 설정값 설정값 3 전기종 3 전기종 36
5.5.2 링카운터, Up/Down 카운터 니모닉 명령 래더 표시 설 명 워드수 적용기종 CT UDC CT T Ch=022 SV=004 UDC U Ch=023 SV=003 D 주 1) 적용기종 :A200,N70+(CPL9215A/9216A),N700+(CPL7215A),NX70+(CPU70P1/P2), NX700+(CPU700P) 미적용기종 :SPC-10/24S/120S/300. 1. 카운터는 4 종류가 있고, 타이머와 공용으로 최대 256 개를 사용할 수 있습니다. 2. 타이머와 카운터는 공용의 채널번호를 사용하며, 순서에 무관하게 0~255 번까지 지정하고, 동일한 채널번호를 사용할 수는 없습니다. 3. 설정치(SV)는 16 비트(0 ~ 65,535 까지)를 지정할 수 있습니다. 타이머나 카운터의 출력접점 번지는 TC + 채널번호 로 지정합니다. 4. 각 채널별로 카운터로 사용할 경우에는 경과치 값이 정전유지가 됩니다. 5. CT(링 카운터)는 입력 접점이 OFF 에서 ON 으로 변경될 때마다 0 부터 1 씩 카운터 되며, 카운터 횟수가 설정치가 되면 0 으로 값이 변하면서 출력이 ON 됩니다. 그 다음 입력부터 다시 증가하면서 카운터 값이 반복됩니다. 6. UDC(상승/하강 카운터)는 상승입력(U) 조건이 OFF 에서 ON 으로 변경될때 카운터가 1 씩 증가 되며, 하강입력(D) 조건이 OFF 에서 ON 으로 변경될때 카운터가 1 씩 감소하고 0 에서는 감소하지 않습니다. 카운터 현재치가 설정치 보다 크거나 0 이 되면 출력이 ON 되며, 리셋입력이 ON 되면 출력은 OFF 되고, 경과치는 0 이 됩니다. (단, SPC 시리즈는 하강 카운터가 현재치 0 에서도 (-) 로 감소됩니다. 7. 카운터의 리셋입력이 ON 되어 있으면 입력의 영향을 받지 않고 초기화 됩니다. < ing Counter > 000.00 CT T Ch=22 000.01 SV=4 TC022 M000.00 입력(0.0) 리셋(0.1) 현재값(PV22) 출력(TC22) 1 2 3 0 설정값 = 4 일때 링 카운터는 설정치 주기로 현재치가 반복되며, 현재치가 0 이 되면서 출력이 ON 됩니다. 리셋 입력이 ON 되면 값은 0 으로 변하면서 출력은 OFF 상태가 됩니다. < UP-Down Counter > 000.00 UDC U Ch=23 000.01 SV=3 D 000.02 TC023 M000.00 링 카운터 상승/하강 카운터 U 입력(0.0) D 입력(0.1) 리셋 (0.1) 설정값 현재값(PV22) 0 1 2 3 4 3 2 1 2 3 2 1 0 0 1 0 출력(TC22) UDC 명령은 U 입력은 상승하고 D 입력은 하강한다. 출력은 설정값 이상 또는 0 에서 ON 된다. 입력 현재값 출력 리셋 U입력 D입력 현재값 출력 리셋 설정값 설정값 3 주 1) 3 전기종 37
5.6 시프트 S 명령 니모닉 명령 래더 표시 설 명 워드수 적용기종 S S I Sb=K1.4 Eb=K2.5 P 시프트 레지스터 Sb K1.4......... Eb K2.5 주 1) 적용기종 :A200,N70+(CPL9215A/9216A),N700+(CPL7215A),NX70+(CPU70P1/P2), NX700+(CPU700P) 미적용기종 :SPC-10/24S/120S/300. I I값 4 주 1) 1. S 명령은 최대 256 개를 사용할 수 있으며, 자동으로 사용 갯수를 점검합니다. 2. 번지(ADDESS)는 동일한 종류의 M 또는 K 영역에서 사용 가능하며, 지정한 비트의 범위는 2 ~ 1024 비트까지 지정가능하고, K 영역을 사용하면 정전유지가 됩니다. 3. Sb 또는 Eb 의 번지는 시프트 방향을 표시하며, 중복하여 사용할 수도 있고, 역방향(Sb 번지가 Eb 보다 낮은 경우)의 번지지정도 가능합니다. 즉, Sb < Eb 일 경우 상위비트로 시프트 되고, Sb > Eb 일때는 하위비트로 시프트 됩니다. 4. 입력 I 는 시작번지(Sb)의 데이터 값을 결정하며, 입력 P 가 ON 될 때마다 전체 데이터를 1 비트씩 Sb 에서 Eb 방향으로 시프트 합니다. 5. 리셋입력이 ON 되면 지정된 모든 Data 가 0 으로 초기화 됩니다. 000.00 S I Sb=K1.4 000.01 Eb=K2.3 P 000.02 K001.04 M001.00 K001.05 M001.01 K001.10 M001.02 K002.03 M001.03 I 입력(0.0) P 입력(0.1) 리셋 (0.1) 시작접점(Sb)(K1.4) 접점 Sb+1 (K1.5) 점점 Sb+2 (K1.6) 점점 Sb+3 (K1.7) 점점 Sb+4 (K1.8) : 끝 점점(Eb) (K2.5) 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 : 0 0 0 0 0 0 0 0 0 1) 리셋 입력이 ON 되면 모든 데이터가 0 으로 초기화 됩니다. 2) 처음 I 입력 (입력 Data)이 ON 상태에서 P 입력 (펄스 시프트 지령)이 ON 되면 데이터값 1 이 Sb 에 저장되며, 영역의 모든 비트 값은 Sb 비트에서 Eb 비트 방향으로 1 비트씩 시프트 됩니다. 3) 두번째 P 입력이 ON 되는 순간의 I 입력 Data (ON)가 Sb 에 저장되고, 기존 Sb 의 값은 Sb+1 비트로 각각 시프트 됩니다. 4) P 입력이 ON 되는 시점까지 데이터는 유지되며, ON 되는 순간에 시프트 동작이 반복되며, 마지막 비트(Eb)의 값은 Over flow 하고, 리셋 입력이 ON 되면 모든 데이터를 0 으로 초기화 됩니다. 38
응용예제 : SPC-120, SPC24 기종의 S 명령을 대체하는 방법 1 2 3 400 401 S 400 ~ 423 (20 ) (21 ) 000.00 S I Sb=K4.0 000.01 Eb=K5.3 P 000.02 K004.00 M002.00 K004.01 M002.01 423 (43 ) K005.03 M003.03 <SPC120/24 기종의 예제> <NX-p, Nplus 기종의 예제> 1) SPC-120/24 기종의 경우 8 비트 단위로 번지지정이 되며, NX plus 기종은 16 비트 단위로 번지 지정이 됩니다. 2) 즉, 예제에서 각각 대응되는 번지는 다음 표와 같습니다. SPC-120/24 400 401 402 403 404 405 406 407 410 411 NX-p,Nplus K4.00 K4.01 K4.02 K4.03 K4.04 K4.05 K4.06 K4.07 K4.08 K4.09 SPC-120/24 412 413 414 415 416 417 420 421 422 423 NX-p,Nplus K4.10 K4.11 K4.12 K4.13 K4.14 K4.15 K5.00 K5.01 K5.02 K5.03 SPC-120/24 20 21 22 23 24 25 26 27 30 31 NX-p,Nplus M2.00 M2.01 M2.02 M2.03 M2.04 M2.05 M2.06 M2.07 M2.08 M2.09 SPC-120/24 32 33 34 35 36 37 40 41 42 43 NX-p,Nplus M2.10 M2.11 M2.12 M2.13 M2.14 M2.15 M3.00 M3.01 M3.02 M3.03 39
5.7 스텝제어 명령 5.7.1 STEP Controller 에 대해서 NX PLC 는 SFC 를 Ladder 형식으로 지원한다. SFC 의 구성요소는 스텝(Step)과 전환(Transition)이 있으며, 흐름제어를 위한 분기와 합류가 있다. 분기와 합류에는 선택분기/합류와 병렬분기/합류가 있다. NX PLC 의 Step Controller 명령어들은 이러한 여러 종류의 구성요소들을 모두 표현할 수 있도록 구성되어 있다. STAT Step Step a Step d Step b Step e Step f Step c Step g Step h SFC 프로그램은 Graphic 언어이고 NX 에서는 Ladder 언어로 SFC 프로그래밍을 지원한다. 따라서 SFC 의 Graphic 프로그램을 Ladder 언어로 몇 가지 규칙에 의거하여 프로그래밍 할 수 있다. BOX 는 Step 을 의미하며, 그림에서 이중 BOX 는 시작스텝이다. 스텝이 활성화되면 해당 Step 의 루틴이 활성화된다. 프로그램 스캔중 활성화된 outine 내의 출력이 조건에 따라 작동하게 된다. 시작 Step 을 표시하는 Ladder 표현은 ISTP 이다. ISTP 는 하나의 SFC 블록 프로그램의 선두에 있어야 하며, Ladder 로직에 의해 활성화되어야 한다. SSTP 는 하나의 ung 을 이끄는 선행 명령어로서 입력접점 형식으로 프로그램이 작성되어야 한다. 해당 스텝의 Action 들은 선행된 SSTP 와 AND 로직으로 결합되어 있으므로 해당 스텝이 활성화되면 해당 Action 들은 조건에 따라 출력하게 된다. 전환(Transition)은 3 가지 종류가 있다. 단독분기, 병렬분기 그리고 선택분기가 있다. 단독분기는 다음 전환할 스텝이 한 개인 경우이고, 병렬분기는 전환 후 여러 개의 스텝으로 분리되어 모든 분기된 스텝이 동시에 활성화된다. 선택분기는 전환 후 분기된 스텝중 하나를 선택해서 활성화 하는 경우이다. 합류는 병렬분기나 선택분기 후에 흐름이 하나의 스텝으로 합쳐지는 경우이다. 병렬분기합류, 선택분기합류로 구분한다. 또한,상태를 초기화하는 스텝초기화, 블록 초기화 등도 있다. 분기인 경우에는 모두 NSTP 명령어가 사용된다, 이 명령의 앞 단에는 SSTP 이 입력조건으로 작성되어야 한다. 병렬분기인 경우에도 NSTP 명령어가 사용되어야 한다. 병렬분기의 개수만큼 연속적으로 작성되어야 한다. 40
주의 사항 - 시작 Step 은 0-15 까지의 Step 번호가 할당된다. 따라서 래더 프로그램에는 16 개의 SFC 블록을 구성시킬 수 있다. - NX PLC 는 4096 개(스텝번호 0~4095)의 Step 을 가질 수 있다. - Step Controller 프로그램에서는 SET/ESET 명령어를 사용하지 말아야 한다. 비활성화 Step 에서도 해당 Bit 의 상태가 유지되므로 SFC 의 규약을 어기게 되며, 예상되지 않은 제어가 이루어질 수 있다. - Step Controller 에서는 중복 출력이 가능하지만, 하나의 Step ung 내에서는 중복사용을 피하여야 한다. 예상되지 않은 제어가 이루어질 수 있다. - Step Controller 프로그램 사이에 일반 프로그램이 혼입되는 경우 제어의 값이나 상태가 예상과 다르게 나올 수 있으므로 피하여야 한다. - Step 번호가 2048-4095 의 Step 은 정전유지 한다. - Step controller 프로그램 내에서는 다른 블록처리 명령어 FO, DFO, NEXT, JMP, LBL, JMPS, JMPE, INT, ETI 을 사용하지 않도록 한다. 정상적인 명령어 처리가 이루어지지 않을 수가 있다. Subroutine 명령어 CALL, SB, ET 의 경우에는 상황에 따라 예상되지 않은 제어가 이루어 질 수 있으니 주의해서 사용한다. - 41
5.7.2 STEP Controller 명령어 명령어 워드수 명칭 래더 표시 설 명 ISTP 2 스텝 초기화 SSTP 2 스텝 시작 NSTP 2 다음 스텝 ASTP 2 And 스텝 CSTP 2 스텝 초기화 CBSTP 3 스텝 블록 초기화 ESTP 1 스텝 종료 1. 시작 Step 활성화 프로그램 ISTP Step= SSTP Step= NSTP Step= ASTP Step= CSTP Step= CBSTP STEP1= STEP2= ESTP 시작 스텝(Step0~15)을 활성화시킨다. 스텝의 상태를 점검한다. 해당 스텝이 활성화되어 있으면 ON 상태가 된다. 단독 또는 병렬분기 전환을 실행하는 명령어이다. 이전 STEP 과의 AND 조건을 검출한다 병렬분기 합류시 전환 점검용 명령 지정 스텝의 상태를 초기화 한다 지정한 Block 내의 스텝상태를 초기화한다 Step Controller 의 처리 루틴의 종료를 나타낸다. Step 1 M000.00 M000.04 F001.00 ISTP Step = 0 Step 12 SSTP Step = 0 M000.00 M000.04 2. 단독 분기 프로그램 Step 10 000.00 000.01 M000.04 SSTP Step = 10 000.00 000.01 NSTP Step = 12 M000.04 Step 12 3. 병렬분기 프로그램 42
Step 10 000.00 000.01 M000.04 SSTP Step = 10 000.00 000.01 NSTP Step = 12 M000.04 NSTP Step = 14 Step 12 Step 14 4. 선택분기 프로그램 Step 10 000.01 000.00 M000.04 000.02 SSTP Step = 10 000.00 000.01 000.02 NSTP Step = 12 NSTP Step = 14 M000.04 Step 12 Step 14 5. 병렬분기합류 프로그램 Step 10 M000.04 000.01 Step 14 M000.05 SSTP Step = 10 SSTP Step = 14 M0.4 M0.5 0.1 NSTP Step = 12 M000.04 M000.05 Step 12 6. 선택분기합류 프로그램 Step 10 M000.04 000.01 Step 14 M000.05 000.02 SSTP Step = 10 000.01 NSTP Step = 12 M000.04 Step 12 SSTP Step = 14 000.02 NSTP Step = 12 M000.05 43
5.8 증감 명령어 5.8.1 Binary 증가 명령어 니모닉 워드수 래더 표시 설 명 적용기종 INC 2 DINC 2 INC 2 진수 증가 ( 10 진수 증가) - 1 워드 D= (Binary Increment) 전기종 DINC D= 2 진수 증가 ( 10 진수 증가) - 더블워드 전기종 1. 증가명령은 D 번지의 값을 1 씩 증가시키는 기능을 가지고 있습니다. 2. Binary 증가는 비트단위로 증가합니다. 3. D 번지는,L,M,K,W,SV,PV,S,D 등의 워드(더블워드)번지를 지정할 수 있으며, 워드명령은 16 비트(65,535)이내, 더블워드명령은 32 비트(4,294,967,295) 까지 값이 증가 합니다. 4. 증가된 값이 최대치를 넘으면 Overflow 가 되어 0 값이 되고, 계속해서 처음부터 다시 카운터 합니다. 5. 증가명령의 동작은 접점과 같은 입력조건이 있어야 하며, oot 에서 직접 연결될 수 없으며, 카운터 기능과 같이 증가시킬 경우에는 입력 접점을 엣지접점 으로 사용해야 합니다. M000.00 INC D=W100 DINC D=W105 M1.0 접점이 ON 될 때마다 1Scan 동안(한번) 증가명령이 작동되며, 각각의 명령어가 모두 다른 기능을 가지고 있습니다. 즉, INC 명령은 Binary(10 진수값) 단위로 1 워드, DINC 명령은 Binary(10 진수값) 단위로 2 워드, F001.04 INC D=M10 F001.04 INC D=M11 M10 과 M11 은 입력조건을 접점으로 하는 경우와 엣지명령으로 하는 경우의 차이점을 표시합니다. 즉, F1.4 접점은 0.5 초동안 ON, 0.5 초 동안 OFF 동작을 하므로 a 접점 조건의 M10 워드는 ON 상태에서 SCAN 할때마다 1 씩 증가하고, 엣지명령 조건의 M11 워드는 1 초마다 1 씩 증가합니다.. 44
5.8.2 BCD 증가 명령어 니모닉 워드수 래더 표시 설 명 적용기종 INCB 2 DINCB 2 INCB BCD 증가 - 1 워드 D= (BCD Increment) 전기종 DINCB D= BCD 증가 - 더블 워드 전기종 1. BCD 증가명령은 D 번지의 값을 BCD 단위로 1 씩 증가시키는 기능을 가지고 있습니다. 2. BCD 증가는 BCD 숫자단위로 구성하는 4 개의 비트단위로 증가하며, 16 진수의 A~F 까지 값을 제외시킨 값과 동일합니다. 3. D 번지는,L,M,K,W,SV,PV,S,D 등의 워드(더블워드)번지를 지정할 수 있으며, 워드명령은 16 비트 이내, 더블워드명령은 32 비트 까지 값이 증가 합니다. 4. 증가된 값이 최대치를 넘으면 Overflow 가 되어 0 값이 되고, 계속해서 처음부터 다시 카운터 합니다. 5. 증가명령의 동작은 접점과 같은 입력조건이 있어야 하며, oot 에서 직접 연결될 수 없으며, 카운터 기능과 같이 증가시킬 경우에는 입력 접점을 엣지접점 으로 사용해야 합니다. M000.00 INCB D=W101 DINCB D=W107 M1.0 접점이 ON 될 때마다 1Scan 동안(한번) 증가명령이 작동되며, 각각의 명령어가 모두 다른 기능을 가지고 있습니다. 즉, INCB 명령은 BCD 단위로 1 워드 증가, DINCB 명령은 BCD 단위로 2 워드 값 까지 증가 기능. F001.04 INCB D=M10 F001.04 INCB D=M11 M10 과 M11 은 입력조건을 접점으로 하는 경우와 엣지명령으로 하는 경우의 차이점을 표시합니다. 즉, F1.4 접점은 0.5 초동안 ON, 0.5 초 동안 OFF 동작을 하므로 a 접점 조건의 M10 워드는 ON 상태에서 SCAN 할때마다 1 씩 증가하고, 엣지명령 조건의 M11 워드는 1 초마다 1 씩 증가합니다. 주) BCD 란? BCD 는 Binary Coded Decimal 의 약자로 2 진 부호화 10 진수 라고 부르며, 4 개의 비트를 이용하여 10 진수를 표현한 코드방식을 말한다. 즉, 10 진법에서 각 자리수의 10 진 숫자를 2 진 숫자로 나타내는 방식이다. 예를들어 10 진수 23 은 BCD 로 0010 0011 이며, 16 진수 표현은 $23 이 된다. 10 진수 57 은 BCD 로 0101 0111 로 표현되고, 16 진수로 $57 이며,10 진수로는 87 이된다. 워드의 BCD 값은 0 ~ $9999(10 진수로는 39,321 까지 처리되며, 더블워드 BCD 값은 0~$99999999 (10 진수로 2,576,980,377)까지 값을 처리할 수 있습니다. 45
5.8.3 감소 명령어 니모닉 워드수 래더 표시 설 명 적용기종 DEC 2 DEC 2 진수 감소 ( 10 진수 감소) - 1 워드 D= (Binary Decrement) 전기종 DDEC DDEC 2 D= 2 진수 감소 ( 10 진수 감소 ) - 더블워드 전기종 DECB 2 DDECB 2 DECB D= BCD 감소 - 1 워드 (BCD Decrement) 전기종 DDECB D= BCD 감소 - 더블 워드 전기종 1. 감소명령은 D 번지의 값을 1 씩 감소시키는 기능을 가지고 있으며, Binary 감소 또는 BCD 감소 명령어가 있습니다. 2. Binary 감소는 비트단위로 감소하고, BCD 감소는 BCD 숫자단위로 구성하는 4 개의 비트단위로 감소하며, 16 진수의 A~F 까지 값을 제외시킨 값과 동일합니다(별도 참조). 3. D 번지는,L,M,K,W,SV,PV,S,D 등의 워드(더블워드)번지를 지정할 수 있으며, 워드명령은 16 비트(65,535)이내, 더블워드명령은 32 비트(4,294,967,295) 이내에서 값이 감소 합니다. 4. 값이 0 에서 감소가 되면 Overflow 가 되고, 계속해서 최대치부터 다시 1 씩감소 합니다. 5. 감소명령의 동작은 접점과 같은 입력조건이 있어야 하며, oot 에서 직접 연결될 수 없으며, 카운터 기능과 같이 감소시킬 경우에는 입력 접점을 엣지접점 으로 사용해야 합니다. M000.00 LET D=W100 S=100 LET F001.04 D=W101 S=$100 DEC D=W100 DECB D=W101 M0.0 접점이 ON 되면 W100 에 100 값을 저장하고, W101 워드에 $100 값을 저장합니다. F1.4 접점에 의해 1 초 단위로 ON 될 때마다 한번씩 감소명령이 작동되며, 각각의 명령어가 모두 다른 기능을 가지고 있습니다. DEC, DECB 명령은 1 워드의 범위내에서 DEC 명령은 Binary 단위로 1 씩 감소하고, DECB 명령은 BCD 단위로 1 씩 감소합니다. M001.00 DDEC D=W105 DDECB D=W107 DDEC 명령과 DDECB 명령의 W105, W107 워드는 초기조건이 0 상태에서 1 씩 감소하므로 최대치부터 감소하는 값이 되며, DDEC 명령은 Binary 단위로 2 워드내 감소, 46
5.8.4 실수 증가/감소 명령어 명령어 워드수 명칭 래더 표시 설 명 FINC 3 FDEC 3 실수 데이터 1.0 씩 증가 실수 데이터 1.0 씩 감소 FINC D = FDEC D = 입력이 ON 될 때마다 D 의 Float Point 값을 1.0 씩 증가. D = D + 1.0 입력이 ON 될 때마다 D 의 Float Point 값을 1.0 씩 감소. D = D - 1.0 1. D 번지는,L,M,K,W,D, S,D 등의 더블워드번지를 지정할 수 있습니다. 2. 값이 최대치 또는 최소치에서는 Overflow 가 되고, 계속해서 최대치/최소치부터 다시 1.0 씩 변화 합니다. 3. 동작은 접점과 같은 입력조건이 있어야 하며, oot 에서 직접 연결될 수 없습니다. 4. 입력단을 a,b 접점을 이용하면, 매 Scan 마다 동작하므로 1.0 단위로 증감시킬 경우에는 입력 접점을 엣지접점 으로 사용해야 합니다. 00.01 FINC D=W100 00.02 FDEC D=W200 W100 에 15.3 의 값이 들어 있다고 한다면, 0.1 이 ON 이 되는 순간 W100 에 저장된 15.3 에 1.0 이 더해진 16.3 이 W100 에 저장된다. W200 에 1.3 의 값이 들어 있다고 한다면, 0.2 이 ON 이 되는 순간 W200 에 저장된 1.3 에 1.0 이 빼진 -0.3 이 W200 에 저장된다. 47
5.9 대입명령어 5.9.1 정수 대입 명령 니모닉명령 워드수 래더 표시 설 명 적용기종 LET 3 DLET 4 1. 대입명령은 목적지 D 번지에 S 값을 직접 입력하거나 다른 워드(더블워드)번지의 값을 대입(전송) 하는 기능을 가지고 있습니다. 2. 대입명령의 D 영역은,L,M,K,W,SV,PV,S,D 등의 워드(더블워드)번지를 지정할 수 있으며, S 영역은 LET 명령에서는 워드번지 또는 16 비트(65,535)이내, DLET 명령에서는 더블워드번지 또는 32 비트(4,294,967,295) 까지 값을 지정할 수 있습니다. 3. 대입명령의 동작은 접점과 같은 입력조건이 있어야 하며, oot 에서 직접 연결될 수 없으며, 항상 동작해야 하는 경우에는 F0.15 번지(운전시 항상 ON)를 a 접점 으로 사용합니다. F001.00 LET D=W100 S=123 DLET D=W102 S=80000 F000.15 LET D=W110 S=W100 M000.00 >= A=W110 B=50 D>= A=W112 B=70000 DLET D=W112 S=W102 M001.00 M001.01 응용예제 : 16 진수(HEX) 값 입력방법 F001.00 LET D=W120 S=20 LET D=W122 S=$20 == A=W120 B=20 == A=W120 B=$20 == A=W122 B=$20 == A=W122 B=32 LET D= S= DLET D= S= M001.00 M001.01 M001.02 M001.03 수치(데이터) 대입 (S=Source, D=Destination) (D= 워드번지, S= 워드번지,워드값) 더블워드 대입 (S 의 값을 D 에 저장) (D= 더블워드번지, S= 더블워드, 더블워드값) 전기종 전기종 F1.0 접점은 최초 1Scan 동안 ON 되는 신호임. PLC 가 처음 운전(수행)되는 SCAN 에서 W100 워드에 데이터값 123 을 삽입(전송)합니다. 처음 운전 스캔에서 W102 번지에 데이터값 80000 을 대입(전송)합니다. PLC 가 운전하는 매 스캔마다 S 의 W100 의 값을 D 의 W110 에 저장합니다. 접점 M0.0 이 ON 되는 순간 W102 값을 W112 워드에 대입(전송)함. *주의) DLET 명령은 더블워드 단위로 전송하므로 W102,W103 의 값을 W112,W113 에 대입하는 기능을 가지고 있습니다. W110 워드가 50 보다 크면 M001.00 이 ON 됩니다. W112 더블워드가 70000 보다 크면 M001.01 이 ON 됩니다. PLC 가 처음 운전(수행)되는 SCAN 에서 W120 워드에 데이터값 20(10 진수)을 삽입(전송)하며, W122 워드에 데이터값 $20(16 진수표현)(10 진수=32)을 삽입(전송)합니다. (16 진수 입력은 숫자 앞에 $를 삽입하면 됩니다.) 저장된 데이터를 확인하는 프로그램입니다. 즉, W120 값이 20 이면 출력 M0.0 이 ON 됩니다. W120 값이 $20(16 진수)일 때 출력 M0.1 이 ON 됩니다. (10 진수로 32 값이므로 출력은 OFF 상태가 됩니다) W122 값이 $20(16 진수)이면 출력 M0.2 가 ON 됩니다. W122 값이 32(10 진수)이면 출력 M0.3 이 ON 됩니다. 즉, $20 또는 32 로 입력해도 동일한 값이 입력됩니다. 48
5.9.2 실수 대입 명령어 명령어 워드수 명칭 래더 표시 설 명 FLET 5 부동소수점 데이터 대입명령 FLET D= S= D 번지에 S 의 값을 저장한다. 1. FLET 은 D 번지에 S 의 부동소수점 값을 복사하거나 부동소수점 상수 값을 지정한다. 2. D 와 S 영역은, L, M, K, W, D 의 더블워드번지를 지정할 수 있으며, S 에는 부동소수점 상수 값을 지정할 수 있다. 3. D 와 S 번지는 자동으로 더블 워드 영역을 할당 받는다. 4. S 값을 상수로 지정하면 2 워드를 할당받아 사용워드수가 5 워드가 된다. M00.00 FLET D= M20 S= 3.4 FLET D= M22 S= M20 FLET(실수대입)명령어를 이용하여 M20 워드에 소수점 값 3.4 를 입력할 수 있다. M20 의 소수점 값을 M22 에 소수점 값으로 대입할 수 있다. S 값은 번지 또는 실수 값을 사용할 수 있다. 49
5.9.3 순차 대입 명령 명령어 워드수 명칭 래더 표시 설 명 MLET 9 DMLET 15 FMLET 16 복수의 워드 데이터 대입 복수의 더블 워드 데이터 대입 복수의 Floating Point 데이터 대입 MLET D= N= S1= S6= DMLET D= N= S1= S6= FMLET D= N= S1= S6= 다수의 워드 데이터를 여러 개의 레지스터에 데이터를 저장한다. S1 에서 S6 까지 있는 데이터를 사용하여 D 에서부터 N 개를 저장. 다수의 더블워드 데이터를 여러 개의 레지스터에 데이터를 저장한다. S1 에서 S6 까지 있는 데이터를 사용하여 D 에서부터 N 개를 저장. 다수의 부동소수점 데이터를 여러 개의 레지스터에 데이터를 저장한다. S1 에서 S6 까지 있는 데이터를 사용하여 D 에서부터 N 개를 저장. 1. 어느 한 레지스터로부터 다수의 데이터를 연속적으로 동시에 저장이 가능한 명령어이다. TABLE 형식의 데이터를 입력해야 하는 경우에 유용한 명령어이다. 2. MLET 은 워드 데이터에 대한 명령어이고, DMLET 은 더블워드 데이터에 대한 명령어 입니다. FMLET 은 부동소수점 데이터에 대한 명령어 입니다. 3. D 영역은, L, M, K, W, D, SV, PV, S,D 영역을 지정할 수 있으며, S1 에서 S6 에는 MLET 의 경우 16 bit 워드 데이터만, DMLET 은 32 bit 워드 데이터를, FMLET 에는 부동소수점 데이터만 입력이 가능하다. 4. N 에는 1 에서 6 까지의 수만 입력이 가능하다. 5. N 값에 무관하게 할당되는 워드수는 동일합니다(MLET=9 워드, DMLET=15 워드, FMLET=16 워드) F001.0 MLET D=W100 N=6 S1=2456 S2=6378 S3=8012 S4=7691 S5=1920 S6=3101 처음 CPU 가 운전될 때 F1.0 접점이 한 SCAN ON 되어, S1 에서부터 S6 까지의 데이터가 W100 에서부터 W105 까지 저장한다. 아래 표는 실행 후의 결과를 보여줍니다. W100 2456 W101 6378 W102 8012 W103 7691 W104 1920 W105 3101 오류처리 N(size) 에 지정한 워드 수 이상의 데이터는 입력되지 않습니다. 즉, N=3 이면 S1,S2,S3 까지 값은 입력되고, S4,S5,S6 값은 적용되지 않고 무시됩니다. Float 명령어의 경우 입력 값이 Float 형태가 아닌 경우 INF 값이 대입됩니다. S1~S6 의 소스 값의 경우 사용하지 않아도 어떤 값이 입력 되어 있어야 합니다. MLET 과 DMLET 사용시 음수 값에 대한 구분을 하지 않습니다.(F13.03 무관) 50
2 M00.01 DMLET D=W200 N=3 S1=123456 S2=800 S3=$50000 DMLET 명령어는 각 오퍼랜드가 더블워드로 지정됩니다. 즉, S1=123456=W200,W201 영역 S2=800 =W202,W203 영역 S3=$50000 = W204, W205 영역에 저장됩니다. 3 M00.01 FMLET D=W200 N=2 S1=-20.0 S2=0.5678 FMLET 명령어는 각 오퍼랜드가 실수로 지정됩니다.(Floating Point 참조) 즉, S1=-20.0 = W200,W201 영역 S2=0.5678 =W202,W203 영역에 저장됩니다. 51
5.10 부호처리 명령(절대값,반전,보수값) 니모닉 워드수 래더 표시 설 명 적용기종 ABS 2 ABS D= Absolute value (절대값 연산, D = D ) (워드) 전기종 DABS 2 DABS D= Absolute value (절대값 연산, D = D ) (더블 워드) 전기종 FABS FABS D= D= l D l (D 의 절대치 값을 D 에 저장함) WNOT 2 DNOT 2 WNOT D= NOT (워드 반전, 1 의보수) (워드) 전기종 DNOT D= NOT (더블워드 반전, 1 의보수) (더블 워드) 전기종 NEG 2 NEG D= 2 의 보수값을 D 에 저장 (1 의 보수+1 = 마이너스 값) Negative (워드) 전기종 DNEG 2 DNEG D= 2 의 보수값을 D 에 저장 (1 의 보수+1 = 마이너스 값) Negative (더블 워드) 전기종 1. ABS(절대값)명령은 최상위 비트(MSB)가 1 이면 2 의 보수를 취하고, 0 이면 그대로 둡니다. 즉, 10 진수 연산으로 마이너스 값은 +값으로 바꾸고, +값은 그대로 둡니다. 2. 절대값 명령은 ABS(워드 절대값) 및 DABS(더블워드 절대값)명령이 있습니다. 3. WNOT(1 의 보수) 명령은 워드(더블워드)의 각 비트를 반전시킨 것과 동일합니다. 4. 반전 명령은 WNOT(워드반전) 및 DNOT(더블워드 반전)명령이 있습니다. 5. NEG(2 의 보수, 마이너스, Negative 등) 명령은 워드(더블워드)값을 마이너스 처리한 것과 같으며, 각 비트를 반전시킨 후 1 을 덧셈한 것과 동일합니다. 6. 마이너스 명령은 NEG(워드 마이너스) 및 DNEG(더블워드 마이너스)명령이 있습니다. 7. D 영역은 워드(더블워드)번지 (,L,M,K,W,SV,PV,S,D 등)를 지정할 수 있습니다. 8. 워드명령은 16 비트(65,535) 이내, 더블워드명령은 32 비트(4,294,967,295) 범위 내에서 값을 처리합니다. 9. 명령의 동작은 접점과 같은 입력조건이 있어야 하며, oot 에서 직접 연결될 수 없으며, 입력조건에 따라 한번 작동시킬 경우에는 입력 접점을 엣지접점 으로 사용해야 합니다. M000.00 M000.01 M000.02 M000.03 LET D=W100 S=$0123 LET D=W200 S=$8123 ABS D=W100 ABS D=W200 WNOT D=W200 NEG D=W100 워드영역에 데이터를 저장하기 위해 M000.00 접점을 ON 하면, W100 에 $0123(10 진수로 291)을 저장하고, W200 에는 $8123(10 진수로 33059)(부호포함 -32477)이 저장됩니다.(WinGPC 의 레지스터 모니터로 확인 가능) M000.01 접점이 ON 되면 ABS(절대치)명령에 의해 W100, W200 의 값을 절대값으로 처리합니다. 즉, W100 의 $0123(0000 0001 0010 0011)(291)은 양수(+) 이므로 절대치 변환은 동일한 값이 유지 됩니다. W200 의 $8123(1000 0001 0010 0011)(-32477)은 음수값 으로 절대값은 양수(+)값인 32477(0111 1110 1101 1101) ($7EDD)이 됩니다. 즉, 2 의보수(비트를 반전시킨 후 1 을 더한 값)이다 M0.2 에서 WNOT 명령은 비트를 반전시킨 값이 되고, $8123 이 $7EDC(0111 1110 1101 1100)으로 변한다. M0.3 의 NEG 명령은 양은 음으로,음은 양으로 한다. $0123(291)은 -291(1111 1110 1101 1101)이 된다. 52