삼성 PLC SPC-10 사용자 설명서

149
P L C SPC-10 사용자 설명서 삼성전자 메카트로닉스팀

Transcript of 삼성 PLC SPC-10 사용자 설명서

Page 1: 삼성 PLC SPC-10 사용자 설명서

삼성 PLC

SPC-10 사용자 설명서

삼성전자

메카트로닉스팀

Page 2: 삼성 PLC SPC-10 사용자 설명서

제 1 편 SPC-10

제 1 장 개요 ................................................................. 1

제 2 장 구성

2.1 본체 구성 ............................................................. 2

제 3 장 구성 기기 ........................................................... 3

제 4 장

4.1 일반 사양 ............................................................ 5

4.2 기본/증설 unit ........................................................ 7

4.3 전원 사양 ............................................................. 8

4.4 입력 사양 ............................................................. 9

4.5 출력 사양 ............................................................ 10

4.6 확장 구성 및 치부 사양 ............................................... 11

제 5 장 주변기기 사양

5.1 명령어 프로그래머 (PGM-10) ........................................... 12

5.2 명령어 프로그램 (PGM-300A) ........................................... 13

5.3 GPC 프로그래머 ....................................................... 14

제 6 장 고유번호의 지정

6.1 고유번호의 할당 ...................................................... 16

6.2 외부 입출력 번호 지정 ................................................ 17

6.3 내부 출력 번호 지정 .................................................. 18

6.4 비트워드 번호의 지정 ................................................. 19

6.5 타이머 카운터 경과치 및 설정치 번호 .................................. 22

6.6 절대 번지 지정 ....................................................... 25

6.7 특수 내부출력 지정 ................................................... 26

6.8 특수 내부출력 상세내용 ............................................... 27

제 7 장 프로그래밍

7.1 프로그래밍 ........................................................... 35

7.2 명령어 일람 .......................................................... 42

7.3 기본명령 ............................................................. 51

7.4 비교명령 ............................................................. 64

7.5 연산명령 ............................................................. 66

7.6 전송명령 ............................................................. 92

7.7 특수기능 사용예 ..................................................... 113

Page 3: 삼성 PLC SPC-10 사용자 설명서

제 8 장 통신기능

8.1 개요 ................................................................ 123

8.2 구성 ................................................................ 123

8.3 사양 및 명령 ........................................................ 124

8.4 통신 cable 결선도 ................................................... 125

8.5 통신 protocol ....................................................... 126

제 9 장 설치 및 배선

9.1 설치환경 및 부착 .................................................... 144

9.2 배선 ................................................................ 145

제 2 편 PGM-10

제 1 장 개요 ............................................................... 146

제 2 장 조작 순서 ......................................................... 150

제3 장 조작 방법

3-1 프로그램 ALL CLEAR .................................................. 151

3-2 신규 프로그램 기입 .................................................. 152

3-3 프로그램의 READ ..................................................... 153

3-4 프로그램 검색 ....................................................... 154

3-5 프로그램 변경 ....................................................... 155

3-6 프로그램 삽입 ....................................................... 156

3-7 프로그램 삭제 ....................................................... 157

3-8 강제 출력 ........................................................... 158

3-9 모니터링 ............................................................ 159

3-10 문법 에러 체크 ..................................................... 160

3-11 PLC RUN/STOP ....................................................... 161

3-12 스텝 번지 표시 ..................................................... 162

제 4 장 프로그래밍 예

4-1 기본 명령 ........................................................... 163

4-2 타이머 .............................................................. 165

4-3 카운터 .............................................................. 166

4-4 비교 명령 ........................................................... 168

부록 A 키조작 개요 ........................................................ 169

부록 B 응용명령 기능 테이블 .............................................. 170

부록 C 기본명령 키조작 .................................................... 172

부록 D 에러코드 열람 ...................................................... 173

Page 4: 삼성 PLC SPC-10 사용자 설명서

제 1 장 개 요

본 메뉴얼은 SPC-10 프로그래머블 콘트롤러의 각종 모듈 사양 및 취급법에 대해 기술한 것입니다.

메뉴얼의 구성 및 개요는 다음과 같습니다.

제 2 장 구 성

SPC-10을 구성하는 모듈과 시스템 구성을 기술합니다

제 3 장 구 성 기 기

SPC-10 구성기기를 표시하며 작성 선정시 주의를 요합니다.

제 4 장 사 양

사용하는 외부기기의 특징을 서술, 사용시 참조합니다.

제 5 장 주변기기 사양

SPC-10의 주변기기의 특징 및 사용시 주의점을 기술합니다.

제 6 장 고유번호의 지정

SPC-10의 외부 입출력 ADDRESS 및 내부출력 ADDRESS 사용법을 기술합니다.

제 7 장 프로그래밍

SPC-10 프로그램 작성시 명령어와 코딩방법을 기술합니다.

제 8 장 통신 기능

컴퓨터와 통신방법 및 예제 프로그램을 기술합니다.

제 9 장 설치 및 배선

SPC-10을 설치하는 경우 장소, 환경, 배선방법에 대해서 기술합니다.

주) 본 메뉴얼외에 사용상 관련있는 메뉴얼은 다음과 같습니다.

.GPC (Ladder 프로그래밍Tool) 사용 메뉴얼

Page 5: 삼성 PLC SPC-10 사용자 설명서

제 2 장 구 성

2.1 본체 구성

BRAIN SPC-10의 UNIT구성을 그림 2-1에 표시합니다.

Page 6: 삼성 PLC SPC-10 사용자 설명서

제 3장 구성기기

BRAIN SPC-10의 구성기기를 표 2-1에 표시합니다.

항 목 품 명 사 양

기본 유니트

SPC-10프로그램 용량 0.9K STEP

DC24V 입력 8점, 릴레이출력 6점

SPC-10T *프로그램 용량 0.9K STEP

DC24V 입력 8 점; TR 출력 6 점

증설 유니트

SPC-10E DC24V 입력 8 점; 릴레이출력 6 점

SPC-10ET * DC24V 입력 8 점; 릴레이출력 6 점

주변 기기

PGM-10 SPC-10 전용 명령어 프로그래머

PGM-300A 명령어 프로그래머 (SPC-10/100/300 공용)

GPC-300 래더/명령어 프로그램 SOFTWARE PACKAGE

ADAPTOR RS-232C 변환 converter (RS-485 → RS-232C)

CAC-20B Serial 통신 cable (RS-232C/485 겸용)

표 2-1

주) ※는 ‘94년 하반기 출시 예정

Page 7: 삼성 PLC SPC-10 사용자 설명서

제 4 장 사 양

4.1 일반 사양

항 목 사 양

전 원 전 압 AC84-AC132V, AC170V-AC264V (50/60Hz) Free Voltage

허 용 순 시 정 전 20ms 이내

최 대 소 비 전 력 60VA/RACK

사 용 주 변 온 도 0~550C

보 관 주 변 온 도 -10 ~ 750C

사 용 주 변 습 도 20 ~ 90%, 이슬이 맺히지 않을 것

주 변 보 관 온 도 10 ~ 90%, 이슬이 맺히ㅈ 않을 것

내 진 동 주파수 16.7Hz, 진폭 3mm. X.Y.Z. 각방향 2시간

내 충 격 10G, X, Y, Z 각 방향 2회

내 노 이 즈 성노이즈 전압 1500Vp-p, 노이즈 펄스폭 100ns, 1μ s.

시험 방법은 당사 규정에 의함.

절 연 저 항AC 외부 단자-케이스 어스(FG)단자간 20MΩ 이상.

시험방법은 DC 500V메가에 의함

내 전 압 AC 외부 단자-케이스 어스(FG)단자간 AC 1500V 1분간

접 지 3종 접지 이상

기 타 사 용 조 건 부식성 가스가 없을 것, 먼지가 심하지 않을 것

구 조 개방 벽 설치형

정 전 유 지 10일 250C (KEEP 릴레이 보존)

Page 8: 삼성 PLC SPC-10 사용자 설명서

4.2 기본/증설 UNIT

4.2.1 각 부의 명칭 및 기능

Program Run (Run)

Error (System/Program Error)

Extended 입출력 port

RUN/STOP SWITCH

RS485

통신 Port

Extended 입출력 Out Port

Extended 입출력 In port

Page 9: 삼성 PLC SPC-10 사용자 설명서

4.2.2 사양

항 목 사 양

제어 사양

처리방식 스토어드 프로그램 사이클릭 방식

처리속도 기본 명령어, 2μs/STEP

사용자 메모리 900 STEP

명령어

기본 명령어25종 (STR, AND, ANN, OR, ORN, OUT, NOT, ORB, ANB,

MCS, SET, RST,DIF,...)

응용 명령어

비교명령 36종 (=,≠ ,>,=,>,<,...)

연산명령 32종 (+,-,×,÷,AND,...)

응용 65 inst. (INC, ABS, RLC, MOV)

입출력

처리사양

외부 입출력 점수 기본 14 점 (입력 8점; 출력 6점), 최대 56점

내부 출력

정전기억 유지 내부출력: 256점 K00000-K01515

정전기억 불가 내부출력: 512점 M0000-M0315

특수 내부 출력 : 32점 F00000-F00115

워드전용 Resistor : 256워드 W0000-W0255

타이머/ 카운터

점수: 256 점 (타이머 + 카운터)

타이머 0.01S: 64점

0.1S : 192점

엣지검출 제한없음

특수 기능

고속 카운터 2점 내장 (24-bit Up/Down, 단상:10KHz, 양상 5KHz)

Pulse 출력 1점 (20Hz~5KHz)

입력 Delay 0~64m sec.

Pulse Catch 150μs

보수 기능마이콤, 논리처리기, 메모리, 프로그램, I/O 모듈이상 워치독 타이머

이상 점검

외부 I/F

RS 485/232C Multi-Drop, 9600bps

프로그래머, Ladder Programming S/W

Page 10: 삼성 PLC SPC-10 사용자 설명서

4.3 전원 사양

항 목 사 양

입력

전 압AC85 ~ 132V

AC170 ~ 264V Free Volt

주 파 수 47 ~ 63Hz

전 류 0.6A 이하

출력

전류 용량

CH 1 5V, 2.5A 내부 출력: CPU 동작 전원

CH 2 24V, 0.3A

CH 3 24V, 0.3A 외부 단자

회록 구성- 110V계와 220V계는 자동 전환된다.

외부 배선

Page 11: 삼성 PLC SPC-10 사용자 설명서

4.4 입력 사양

4.4.1 DC24V 입력

형 식 D C 입 력

입 력 사 양 DC 전압

공 칭 전 압 12V ~ 24V

입 력 전 압 Min. 9V Max. 30V

입 력 전 류 Min. 5mA Max. 14mA

입 력 저 항 2.2k

동 작

전 압

최소 ON 전압 전압 8V 이상

최대 OFF 전압 전압 5V 이하

입력지연 시

OFF → ON 10mSEC 이하

ON → OFF 10mSEC 이하

입 력 점 수 8점

입 력 C O M M O N 4점/COMMON

극 성 무극성

절 연 방 식 PHOTO COUPLER

소 비 전 류 최대 10mA

회로 구성 및

외부 배선

Page 12: 삼성 PLC SPC-10 사용자 설명서

4.5 출력 사양

4.5.1 릴레이 출력

형 식 RELAY 출 력

출 력 사 양 RELAY 출력

공 칭 전 압 AC 100V / 220V

출 력 전 압 AC 85 ~ 264V

최 대 부 하 전 류

1 회로 2A

2 회로 4A

최 소 부 하 전 류 1 회로 30mA

최 대 출 력

지 연 시 간

ON → OFF 10mS

OFF → ON 10mS

출 력 점 수 6 점

출 력 C O M M O N 4 점/ common, 1점 / common

절 연 방 식 RELAY

소 비 전 류 최대 10mA

회로구성 및

외부배선

Page 13: 삼성 PLC SPC-10 사용자 설명서

4.5.2 트랜지스터 출력

형 식 T R 출 력

출 력 사 양 TRANSISTOR

공 칭 전 압 DC 24V

출 력 전 압 AC 5V ~ 27V

최 대 부 하 전 류

1 회로 0.5A

8 회로 4A

최 소 부 하 전 류 1 회로 10mA

최 대 출 력

지 연 시 간

ON → OFF 1mS

OFF → ON 1mS

출 력 점 수 6 점

출 력 C O M M O N 4 점/common, 1점/common

절 연 방 식 Photo Coupler

소 비 전 류 최대 10mA

회로구성 및

외부배선

Page 14: 삼성 PLC SPC-10 사용자 설명서

4.6 확장구성 및 치부 사양

4.6.1 외형크기

취부방법: DIN RAIL 혹은 나사 부착

4.6.2 I/O 점수 구성예

SPC-10 기본 유니트의 점수는 14점이며 최대 56점까지 확장 가능하고 확장시

증설유니트를 사용합니다.

14점

28점

42점

56점

Page 15: 삼성 PLC SPC-10 사용자 설명서

제 5장 주변기긱 사양5.1 명령어 프로그래머 (PGM-10)

5.1.1 프로그래머 외관

5.1.2 프로그래머 사양

형 식 사 양

접 속 대 상 SPC-10

전 원 접속대상 (SPC-10)으로부터 전원공급

표 시 부

표 시 기 LED 및 7-segment

표 시 용 량 LED: 22 EA, 7-segment: 5 EA

키 조 작 부 키 수 20 EA

Page 16: 삼성 PLC SPC-10 사용자 설명서

5.2 명령어 프로그래머 (PGM-300A)

5.2.1 프로그래머 Appearance

액정표시부

(백라이트 부착)

키보드부

5.1.2 프로그래머 성능사양

형 식 사 양

접 속 대 상고기능(SPC-300) 및

기타 시리즈화 모델 (SPC-10/100)

전 원 접속대상 (CPU 모듈)으로부터 전원공급

표 시 부

표 시 기 LCD (액정)

조 명 LCD BACK LIGHT (키조작에 의해ON/OFF)

표 시 용 량 16자*2행

조 작 부

키 수 35개

조 작 확 인 부져음 (키 조작에 의해 음 크기를 조절 가능)

오 디 오

카 세 트 I / F

오 디 오 카 세 트 시판품 오디오 세트

전 송 속 도1200 BPS

2K: 1분 4K: 3분 8K: 8분

Page 17: 삼성 PLC SPC-10 사용자 설명서

5.3 GPC PROGRAMMER

GPC softwares는 컴퓨터에서 PLC Ladder Proram을 작성 전송 및 Monitoring 기능을 수행하는 S/W Package

이며 GPC의 구조는 그림 5-1과 같다.

<그림 5-1 GPC의 구성>

그림 5-1에서,

1) 초기 설정

초기설정이란 GPC의 운용에 요구되는 여러 가지의 Option들을 사용자가 임의로 정의하여 GPC의

운용환경을 설정한다.

2) GPC

GPC는 PLC의 프로그램의 편집, 해석, 역해석, 인쇄, 모니터링, 그리고 온라인 명령 등을 수행하며, 이는

“ GPC.EXE.”에 의해 실행된다.

3) 초기화

초기화 GPC의 기능 수행에 필요한 여러 가지 Parameter들이 처음 "GPC.EXE"의 구동시자동적으로

처리되는 단계이다.

4) 프로그램 편집 및 해석

프로그램 편집에는 프로그램을 편집하는 Ladder 편집기와 Mnemonic 편집기와 그리고 사용자에게 PLC의

레지스터들의 명칭을 임의로 정의하도록 하여 편집과 모니터링이 보다 용이하도록 하는 Label 편집기가

있으며, 프로그램 해석은 Ladder 편집기나 Mnemonic 편집기에 의해 편집된 프로그램을 PLC 명령어로 변

환시키는 기능으로 편집기에 내장되어 있다.

Configure

Programming

Decompling

Print Out

Monitoring

On-Line

Exit to DOS

MODEL/FILE경로/PRINTER/PORT선택

LADDER/MNEMONIC/LABEL작성

LADDER/MNEMONIC FILE DECOMPLING

LADDER/MNEMONIC/LABEL/REFERANCE PRINTER

LADDER/MNEMONIC/I-O MODULE MONITORING

DOWN-UP LOAD/CLEAR/SYSTEM CONTROL 기능

Page 18: 삼성 PLC SPC-10 사용자 설명서

5) 프로그램 역해석

프로그램 역해석은 PLC의 명령어로부터 Ladder 프로그램이나 또는 Mnemonic 프로그램을 생성시키는

기능으로써, Ladder 역해석기와 Mnemonic 역해석기가 있다.

6) 모니터링

모니터링이란 PLC와의 통신을 통하여 레지스터들의 현재값 및 연산 결과를 열람할 수 있도록 하는

기능으로써 연속 레지스터 모니터링, 레지스터 모니터링, 연속 Ladder 모니터링, 선택 Ladder 모니터링과 I

/O Module Rack 모니터링이 있다.

7) 온라인 명령

온라인 명령은 PLC와의 통신을 통하여 프로그램을 쓰거나, 읽어오거나, 지우거나 또는 임의의

프로그램과 비교 및 검정하는 기능과 PLC의 상태을 점검하고 제어하는 기능을 말한다.

8) 프로그램 인쇄

프로그램 인쇄는 File형태의 프로그램, 또는 Label들을 인쇄하는 기능으로써 Ladder 인쇄와 Mnemonic

인쇄와 그리고 Reference인쇄가 있다. 여기에서 Reference 인쇄는 프로그램에 사용된 명령과 레지스터와

그리고 Label들을 선별하여 인쇄하는 것이다.

Page 19: 삼성 PLC SPC-10 사용자 설명서

제 6장 고유번호의 지정

6.1 고유번호의 할당

BRAIN SPC-10의 고유번호를 표 6.1에 나타냅니다.

구 분 유니트 입력 Address 출력 Address

외 부

입/출력

56점

1

2

3

4

R00000 ~ R00007 R01500 ~ R01507

R00100 ~ R00107 R01600 ~ R01607

R00200 ~ R00207 R01700 ~ R01707

R00300 ~ R00307 R01800 ~ R01807

I/O 명령 종별

범 위

비 고

비트번호 지정 워드번호 지정

내부 릴레이 M M00000~M03115 M0000~M0031

비트/바이트/

워드 공용

KEEP 릴레이 K K00000~K01515 M0000~M0015

특수내부 출력 F F00000~F00115 F0000~F0001

타이머/ 카운터

TIM

SST

CNT

TIM

SST 000~255

CNT

W2048~W2303

(설정치)

W2304~W2559

(현재치)

워드 레지스터 W - W0000~W025 바이트/워드

표6-1

Page 20: 삼성 PLC SPC-10 사용자 설명서

6.2 외부 입출력 번호 지정

외부 및 외부 입출력점, 타이머, 카운터 등의 각 점은 고유번호가 지정되어 있으며, 이 고유번호를

이용하여 각 점의 제어내용을 프로그램하거나 동작을 실행합니다.

R XXX YY

비트번호 0 ~7

워드번호

외부 입출력

Page 21: 삼성 PLC SPC-10 사용자 설명서

6.3 내부 출력번호 지정

종 류 용 량 비트번호지정 워드번호지정 기 타

보조 릴레이 512점

M00000~M00015

M00100~M00115

.

.

M03100~M03115

M0000

M0001

.

.

M0031

비트, 바이트 워

드 공용

KEEP 릴레이 (정

전기억)256점

K00000~K00015

K00100~K00115

.

.

K01500~K01515

K0000

K0001

.

.

K0015

내부 플래그

(특수 릴레이)32점

F00000~F00015

F00100~F00115

F0

F1“

연산용 256워드 불가

W0000

W0001

.

.

W0255

워드, 바이트 전

Page 22: 삼성 PLC SPC-10 사용자 설명서

6.4 비트 워드 번호의 지정

6.4.1 외부 입출력 비트워드의 대응도표 (종별기호 R)

6.4.2 내부/특수 출력 비트워드의 대응도표 (종별기호 R)

(a) 내부 출력, KEEP 출력 (종별 심볼 M, K)

- 내부 릴레이와 KEEP 릴레이 번호는 각각 표 6.4.2와 동일하나, 단, 종별 심볼만 M과 K로 구분된다.

ex) 내부 릴레이 M00000~M03115,KEEP 릴레이 K00000~K01515

ex) 특수 릴레이 F00000~F00115

↑외

00000 00001 00002 00003 00004 00005 00006 00007

00100 00101 00102 00103 00104 00105 00106 00107

00200 00201 00202 00203 00204 00205 00206 00207

00300 00301 00302 00303 00304 00305 00306 00307

01500 01501 01502 01503 01504 01505 × ×

01600 01601 01602 01603 01604 01605 × ×

01700 01701 01702 01703 01704 01705 × ×

01800 01801 01802 01803 01804 01805 × ×

← LSB 비트번호 MSB→

0000

0001

0002

0003

0015

0016

0017

0018

b0 b1 b2 b3 b4 b5 b6 b7 ↑외

00000 00001 00002 00003 00004 00005 00006 00007

00100 00101 00102 00103 00104 00105 00106 00107

00200 00201 00202 00203 00204 00205 00206 00207

00300 00301 00302 00303 00304 00305 00306 00307

01500 01501 01502 01503 01504 01505 × ×

01600 01601 01602 01603 01604 01605 × ×

01700 01701 01702 01703 01704 01705 × ×

01800 01801 01802 01803 01804 01805 × ×

← LSB 비트번호 MSB→

0000

0001

0002

0003

0015

0016

0017

0018

b0 b1 b2 b3 b4 b5 b6 b7

Page 23: 삼성 PLC SPC-10 사용자 설명서

6.4.3 BCD Data 지정

BCD (바이너리 Coded Decimal)는 10진수를 2진 코드화한 것으로 정수의 대응표는 표 6.4.4와 표 6.4.3과

같다.

10진수

Decimal

2진수

바이너리

8진수

Octal

16진수

Hexa decimal

BCD

(바이너리 Coded Decimal)

101, 100 24, 23, 22,. 21, 20 81, 80 161 , 160

101 100

23, 22, 21, 20 23, 22, 21, 20

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 0 0 0 1 1 1 0 0 0 0 0 0 0 1

2 0 0 1 0 2 2 0 0 0 0 0 0 1 0

3 0 0 1 1 3 3 0 0 0 0 0 0 1 1

4 0 1 0 0 4 4 0 0 0 0 0 1 0 0

5 0 1 0 1 5 5 0 0 0 0 0 1 0 1

6 0 1 1 0 6 6 0 0 0 0 0 1 1 0

7 0 1 1 1 7 7 0 0 0 0 0 1 1 1

8 1 0 0 0 1 0 8 0 0 0 0 1 0 0 0

9 1 0 0 1 1 1 9 0 0 0 0 1 0 0 1

1 0 1 0 1 0 1 2 A 0 0 0 1 0 0 0 0

1 1 1 0 1 1 1 3 B 0 0 0 1 0 0 0 1

1 2 1 1 0 0 1 4 C 0 0 0 1 0 0 1 0

1 3 1 1 0 1 1 5 D 0 0 0 1 0 0 1 1

1 4 1 1 1 0 1 6 E 0 0 0 1 0 1 0 0

1 5 1 1 1 1 1 7 F 0 0 0 1 0 1 0 1

1 6 1 0 0 0 0 2 0 1 0 0 0 0 1 0 1 1 0

2 0 1 0 1 0 0 2 5 1 4 0 0 1 0 0 0 0 0

표 6.4.4

Page 24: 삼성 PLC SPC-10 사용자 설명서

최상위

비트

(MSB)

구분1 데이터 표현 범위

워드(16비트) b15 ∼b0 바이트(8비트) b7∼b0

2진(B) 1111 1111 1111 1111∼0000 0000 0000 0000 1111 1111 ∼0000 0000

16진(H) F F F F ∼0 0 0 0 F F ∼0 0

10진(D)65,535 ∼ 0

(215 ∼ 20)

255 ∼ 0

(27 ∼20)

표 6.4.3

10진수를 2진 코드화 한 BCD는 1워드에 4자리까지 표현 가능하며 그 형식은 다음과 같다.

예) 십진수 1234(천이백삼십사)를 BCD로 나타내면 다음과 같다

215 20

←상위비트 하위비트→

MSB LSB

비트번호 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1000자리 100자리 10자리 1자리

MSB LSB

비트번호

십진수

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0

MSB LSB

215 20

←상위비트 하위비트→

MSB LSB

비트번호 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1000자리 100자리 10자리 1자리

MSB LSB

비트번호 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1000자리 100자리 10자리 1자리

MSB LSB

비트번호 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1000자리 100자리 10자리 1자리

MSB LSB

비트번호 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1000자리 100자리 10자리 1자리

MSB LSB

비트번호 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1000자리 100자리 10자리 1자리

MSB LSB

비트번호 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1000자리 100자리 10자리 1자리

MSB LSB

Page 25: 삼성 PLC SPC-10 사용자 설명서

6.5 타이머/카운터 경과치 및 설정치 번호

타이머/카운터의 설정치 및 경과치를 실행 중 변경 또는 중간 경과치를 알고자 할 때에는 타이머 및 카운터

각각의 고유 채널 번호에 해당하는 설정치 경과치 워드레지스터 번호가 지정되어 있으므로 설정치 및

경과치 데이터를 사용하고자 할 때에는 아래표에 나타낸 고유 워드 레지스터 번호를 사용해야 합니다.

채널번호 설정치 경과치 채널번호 설정치 경과치 채널번호 설정치 경과치

0 W2048 W2304 40 W2088 W2344 80 W2128 W2384

1 W2049 W2305 41 W2089 W2345 81 W2129 W2385

2 W2050 W2306 42 W2090 W2346 82 W2130 W2386

3 W2051 W2307 43 W2091 W2347 83 W2131 W2387

4 W2052 W2308 44 W2092 W2348 84 W2132 W2388

5 W2053 W2309 45 W2093 W2349 85 W2133 W2389

6 W2054 W2310 46 W2094 W2350 86 W2134 W2390

7 W2055 W2311 46 W2095 W2351 87 W2135 W2391

8 W2056 W2312 47 W2096 W2352 88 W2136 W2392

9 W2057 W2313 48 W2097 W2353 89 W2137 W2393

10 W2058 W2314 49 W2098 W2354 90 W2138 W2394

11 W2059 W2315 50 W2099 W2355 91 W2139 W2395

12 W2060 W2316 51 W2100 W2356 92 W2140 W2396

13 W2061 W2317 52 W2101 W2357 93 W2141 W2397

14 W2062 W2318 53 W2102 W2358 94 W2142 W2398

15 W2063 W2319 54 W2103 W2359 95 W2143 W2399

16 W2064 W2320 55 W2104 W2360 96 W2144 W2400

17 W2065 W2321 56 W2105 W2361 97 W2145 W2401

18 W2066 W2322 57 W2106 W2362 98 W2146 W2402

19 W2067 W2323 58 W2107 W2363 99 W2147 W2403

20 W2068 W2324 59 W2108 W2364 100 W2148 W2404

21 W2069 W2325 60 W2109 W2365 101 W2149 W2405

22 W2070 W2326 61 W2110 W2366 102 W2150 W2406

23 W2071 W2327 62 W2111 W2367 103 W2151 W2407

24 W2072 W2328 63 W2112 W2368 104 W2152 W2408

25 W2073 W2329 64 W2113 W2369 105 W2153 W2409

26 W2074 W2330 65 W2114 W2370 106 W2154 W2410

Page 26: 삼성 PLC SPC-10 사용자 설명서

27 W2075 W2331 66 W2115 W2371 107 W2155 W2411

28 W2076 W2332 67 W2116 W2372 108 W2156 W2412

29 W2077 W2333 68 W2117 W2372 109 W2157 W2413

30 W2078 W2334 69 W2118 W2373 110 W2158 W2414

31 W2079 W2335 70 W2119 W2374 111 W2159 W2415

32 W2080 W2336 71 W2120 W2375 112 W2160 W2416

33 W2081 W2337 72 W2121 W2376 113 W2161 W2417

34 W2082 W2338 73 W2122 W2377 114 W2162 W2418

35 W2083 W2339 74 W2123 W2378 115 W2163 W2419

36 W2084 W2340 75 W2124 W2379 116 W2164 W2420

37 W2085 W2341 76 W2125 W2380 117 W2165 W2421

38 W2086 W2342 77 W2126 W2381 118 W2166 W2422

39 W2087 W2343 78 W2127 W2382 119 W2167 W2423

주) GPC-300 사용시 TC 설정치: SV로 사용할 수 있음 UC10의 설정치: SV10으로 표시할 수 있음

TC 경과치: PV로 사용할 수 있음 경과치: PV10으로 표시할 수 있음

ex) TCO의 설정치: SVO로 표시할 수 있음

TCO의 경과치: PVO로 표시할 수 있음

Page 27: 삼성 PLC SPC-10 사용자 설명서

채널번호 설정치 경과치 채널번호 설정치 경과치 채널번호 설정치 경과치

120 W2168 W2424 166 W2114 W2470 212 W2260 W2516

121 W2169 W2425 167 W2215 W2471 213 W2261 W2517

122 W2170 W2426 168 W2216 W2472 214 W2262 W2518

123 W2171 W2427 169 W2217 W2473 215 W2263 W2519

124 W2172 W2428 170 W2218 W2474 216 W2264 W2520

125 W2173 W2429 171 W2219 W2475 217 W2265 W2521

126 W2174 W2430 172 W2220 W2476 218 W2266 W2522

127 W2175 W2431 173 W2221 W2477 219 W2267 W2523

128 W2176 W2432 174 W2222 W2478 220 W2268 W2524

129 W2177 W2433 175 W2223 W2479 221 W2269 W2525

130 W2178 W2434 176 W2224 W2480 222 W2270 W2526

131 W2179 W2435 177 W2225 W2481 223 W2271 W2527

132 W2180 W2436 178 W2226 W2482 224 W2272 W2528

133 W2181 W2437 179 W2227 W2483 225 W2273 W2529

134 W2182 W2438 180 W2228 W2484 226 W2274 W2530

135 W2183 W2439 181 W2229 W2485 227 W2275 W2531

136 W2184 W2440 182 W2230 W2486 228 W2276 W2532

137 W2185 W2441 183 W2231 W2487 229 W2277 W2533

138 W2186 W2442 184 W2232 W2488 230 W2278 W2534

139 W2187 W2443 185 W2233 W2489 231 W2279 W2535

140 W2188 W2444 186 W2234 W2490 232 W2280 W2536

141 W2189 W2445 187 W2235 W2491 233 W2281 W2537

142 W2190 W2446 188 W2236 W2492 234 W2282 W2538

143 W2191 W2447 189 W2237 W2493 235 W2283 W2539

144 W2192 W2448 190 W2238 W2494 236 W2284 W2540

145 W2193 W2449 191 W2239 W2495 237 W2285 W2541

146 W2194 W2450 192 W2240 W2496 238 W2286 W2542

147 W2195 W2451 193 W2241 W2497 239 W2287 W2543

148 W2196 W2452 194 W2242 W2498 240 W2288 W2544

149 W2197 W2453 195 W2243 W2499 241 W2289 W2545

150 W2198 W2454 196 W2244 W2500 242 W2290 W2546

Page 28: 삼성 PLC SPC-10 사용자 설명서

151 W2199 W2455 197 W2245 W2501 243 W2291 W2547

152 W2200 W2456 198 W2246 W2502 244 W2292 W2548

153 W2201 W2457 199 W2247 W2503 245 W2293 W2549

154 W2202 W2458 200 W2248 W2504 246 W2294 W2550

155 W2203 W2459 201 W2249 W2505 247 W2295 W2551

156 W2204 W2460 202 W2250 W2506 248 W2296 W2552

157 W2205 W2461 203 W2251 W2507 249 W2297 W2553

158 W2206 W2462 204 W2252 W2508 250 W2298 W2554

159 W2207 W2463 205 W2253 W2509 251 W2299 W2555

160 W2208 W2464 206 W2254 W2510 252 W2300 W2556

161 W2209 W2465 207 W2255 W2511 253 W2301 W2557

162 W2210 W2466 208 W2256 W2512 254 W2302 W2558

163 W2211 W2467 209 W2257 W2513 255 W2303 W2559

164 W2212 W2468 210 W2258 W2514

165 W2213 W2469 211 W2259 W2515

Page 29: 삼성 PLC SPC-10 사용자 설명서

사용예 1)

사용예 2)

TIM CH=0

V=10

BCD(R0015, W2304)

BCD(R0016, W2048)

TIM CH=0

V=10

BCD(R0015, W2304)

BCD(R0016, W2048)

TIM CH=0

V=10

BCD(R0015, W2304)

BCD(R0016, W2048)

TIM CH=0

V=10

BCD(R0015, W2304)

BCD(R0016, W2048)

W2304: TIM CH=0의 경과치 레지스터

W2048: TIM CH=0의 설정치 레지스터

RO

MO

TIM CH=0

V=10

[ PV0=5] <R01700>

[ SV0=5] <R01701>

RO

MOBCD(R0004, PV0)

PV0: GPC S/W에서 TIM CH=0의 경과치 레지스터

SV0: GPC S/W에서 TIM CH=0의 설정치 레지스터

Page 30: 삼성 PLC SPC-10 사용자 설명서

6.6 절대 번지 지정

LDR, DLDR, STO, DSTO 명령어에서 레지스터의 번지를 간접지정하거나 CPU모듈에 내장된 통신포트를

사용하기 위한 절대번지

워드

레지스터

워드절대번지 워 드

레지스터

워드절대번지

dec. hex. dec. hex.

R0000

R0001

R0002

.

.

R0126

R0127

0

1

2

.

.

126

127

0000

0001

0002

.

.

007E

007F

W0000

W0001

W0002

.

.

W0254

W0255

512

513

514

.

.

766

767

0200

0201

0202

.

.

02FE

02FE

M0000

M0001

M0002

M0003

.

.

M0030

M0031

192

193

194

195

.

.

222

223

00C0

00C1

00C2

00C3

.

ODE

ODF

T/C 설정치

W2048

W2049

.

.

.

W2303

T/C 현재치

W2304

W2305

.

W2559

Status

W2560

.

.

W2564

2560

2561

.

.

2815

2816

2817

.

3071

3072

.

.

3583

0A00

0A01

.

.

0AFF

0B00

0B01

.

0BFF

0C00

.

.

0DFF

K0000

K0001

K0002

K0003

.

.

K0014

K0015

320

321

322

323

.

.

334

335

0140

0141

0142

0143

.

.

014E

014F

- 통신기능에서 사용하는 비트절대번지는 워드절대번지와 해당워드의 비트번호 (0~15)로 구성된다.

예) K01512 내부출력에 대한 비트절대번지는 14FC(Hex)이다. (워드절대번지=014F, 비트번호=C)

15 4 3 0

워드절대번지 비트번호

Page 31: 삼성 PLC SPC-10 사용자 설명서

6.7 특수 내부 출력 지정

비트 특수 내부 출력 워드 특수 내부 출력

※F00000~F00115는 기본시스템에서 사용할 수 있는 비트 특수 내부 출력입니다.

내 용 번지 IN/ OUT

시스템 에러 F00000 IN

시스템 ROM 에러 F00001 IN

시스템 RAM 에러 F00002 IN

사용자 프로그램 메모리 에러 F00003 IN

프로그램 문법 에러 F00004 IN

모듈 범위 에러 F00005 IN

모듈 변경 에러 F00006 IN

모듈 에러 F00007 IN

입력 데이타 갱신 제어 F00008 OUT

출력 데이타 갱신 제어 F00009 OUT

전 출력 OFF 제어 F00010 OUT

타이머 프로그램 제어 F00011 OUT

사용자 프로그램 위치독 에러 F00012 IN

모듈종류 무시 제어 F00013 OUT

실행중 프로그램 변경 제어 F00014 OUT

실해 가능 제어 F00015 OUT

최초 1 SCAN ON F00100 IN

SCAN CLOCK F00101 IN

0.02초 CLOCK F00102 IN

0.01초 CLOCK F00103 IN

1초 CLOCK F00104 IN

순간 정전 ON F00105 IN

CPU 실행시 RUN F00106 IN

KEEP 에러 F00107 IN

자리올림(CARRY 발생시 ON) F00108 IN

0으로 나눔 에러 F00109 IN

절대번지 지정 에러 F00110 IN

미지정 영역 F00111∼F00115

내 용 번지

CPU 고유번호 W2560

CPU 상태표시 W2561

사용자 프로그램 워치독 시간 W2562

SCAN TIME W2563

최대 SCAN TIME W2564

시스템 사용 영역W2565

∼W2566

통신 상태 표시 W2567

시스템 처리 정보W2568

∼W2578

시스템 에러 정보 W2577

실행중 에러 명령 시템 번호 W2578

곱셈 상위 위드 W2580

나머지(하위워드) W2581

나머지(하위워드) W2582

시스템 사용 영역W2583

∼W2589

문법 에러 정보W2590

∼W2607

시스템 사용 영역W2608

∼W2671

리모트 I/O 등록 TABLEW2672

∼W2735

사용가능 슬롯 갯수 W2736

시스템 사용 영역W2737

∼W2738

Page 32: 삼성 PLC SPC-10 사용자 설명서

6.8 유용한 특수 내부 출력의 상세 내용

비트번호IN/

OUT명 칭 기 능

F00000접점

(OFF)시스템 ROM 에러

전원 투입시 시스템을 자체 점검하여, 마이콤 및 논리처리기

에 에러가 발생하면 ON되어, 에러 LED가 켜지고, 모든 외

부출력이 OFF된 후 실행(RUN)을 정지한다.

F00001접점

(OFF)시스템 ROM 에러 전원 투입시 시스템 ROM을

F00002접점

(OFF)시스템 RAM 에러

전원 투입시 시스템 RAM을 자체 점검하여 에러가 발생하면

ON되어, 에러 LED가 켜지고, 모든 외부출력이 OFF된 후

실행(RUN)을 정지한다.

F00003접점

(OFF)

사용자 프로그램

메모리 에러

전원 투입시나 실행모드시 사용자 프로그램을 자체 점검하

여 에러가 발생하면 ON되어, 에러 LED가 켜지고, 모든 외

부출력이 OFF된 후 실행(RUN)을 정지한다.

F00004접점

(OFF)프로그램 문법에러

CPU가 최초로 실행을 시작할 때 사용자 프로그램의 문법을

점검하여 에러가 발생하면 에러 LED가 켜지고, 모든 외부

출력이 OFF된 후 실행(RUN)을 정지한다.

F00005 미사용

F00006접점

(OFF)모듈변경

전원 투입후 모듈을 빼거나, 삽입하며 ON되며 에러 LED가

켜지고, 모든 외부출력이 OFF된 후 실행을 정지한다. 확장

RACK을 사용할 경우 확장 RACK의 전원이 기본 RACK보

다 늦게 투입될 경우도 발생. (주), 기타 모듈

CONNECTOR가 접촉 불량인 경우에도 발생할 숭 있다.

F00007접점

(OFF)모듈에러

규정된 모듈이아닌 모듈이 꽂혀 있을 경우 ON되며 에러

LED가 켜지고, 모든 외부출력이 OFF된 후 실행을 정지한

다.

F00008접점

(ON)입력데이타제어

실행중 사용자가 모듈로부터의 데이터 입력을 금지시켜려

할 때 OFF된다

F00009접점

(ON)출력데이타제어

실행중 사용자가 연산결과를 모듈로 출력하지 않으려 할 때

OFF시킨다. 이 비트가 OFF되면 OFF되기 전의 데이터가 출

력 모듈에 유지된다.

F00010접점

(ON)출력 OFF 제어

실행중 사용자가 연산결과에 무관하게 모든 출력을 OFF시

키려 할 때 OFF시킨다.

Page 33: 삼성 PLC SPC-10 사용자 설명서

비트번호IN/

OUT명 칭 기 능

F00011

~

F00013

미사용

F00014출력

(OFF)실행중 변경 제어

프로그램을 수행중에 사용자 프로그램을 수정시키려할 때 ON

시킨다. 평상시 OFF출력. (주2)

문법에러가 발생하면 실행을 정지한다.

F00015출력

(OFF)실행가능 제어

사용자가 프로그램 수행을 정지시키려 할 때 OFF시킨다. 통상

의 수행시 (일시정지/실행모드)에는 항상 ON되어 있으므로

NORMAL ON접점으로 사용 가능하다.

Page 34: 삼성 PLC SPC-10 사용자 설명서

특수내부점검/ 출력상세

비트번호 IN/OUT 명 칭 기 능

F00100 접점 최초 1 스캔

CPU가 정지 상태에서 실행상태로 바뀔 때 최초의 1스캔 동

안만 ON상태 유지

프로그램의 초기화를 위해 사용할 수 있다.

I Scan Time

F00101 출력 스캔 클럭

프로그램 실행 중 매 스캔마다 ON/OFF 상태가 반전된다.

F00102 접점 0.02초 클럭

프로그램 실행 중 10ms마다 ON/OFF상태가 반전된다.

F00103 출력 0.1초 클럭

프로그램 실행 중 50ms마다 ON/OFF상태가 반전된다.

→ ←

IScan IScan IScan

10㎳10㎳ 10 ㎳

50㎳ 50㎳

Page 35: 삼성 PLC SPC-10 사용자 설명서

비트번호IN/

OUT명 칭 기 능

F00104 출력 1초 클럭

프로그램 실행 중 500ms마다 ON/OFF상태가 반전된다.

F00105 출력 순간정전

AC 전원이 단절 되었을 때 (전원 OFF시) 또는 순간 정전이

발생하였을 때 ON된다.

AC 전원

F00105

사용자는 다음번 순간정전 상황을 알 수 있도록 접점 사용후

OFF 시켜야 한다

F00106 출력 실행상태 CPU가 실행 상태 (RUN 모드)에 있으면 ON된다.

F00107 출력 KEEP 에러전원 투입 직후 KEEP 릴레이 영역을 점검하여 정전보존에

러가 있으면 ON된다.

F00108 출력 자리올림

프로그램 실행중 응용 명령에 의한 자리올림 (CARRY)이 발

생할 때 ON, 그 이외에는 OFF됨 자리올림에 영향을 주는

명령 (예:ADD, SUB)의 수행 후에는 내용이 변화함.

F00109 출력 0으로 나눔 에러프로그램 실행중 나누기명령 (DIV,DDIV, DIVB, DDIVB)의

분모제수가 0인 경우 ON됨.

F00110 출력 범위지정 에러프로그램 실행중 LDR, DLDR, STO, DSTO 명령에 사용된

절대번지가 규정된 범위를 초과하면 ON된다.

500㎳ 500㎳

Page 36: 삼성 PLC SPC-10 사용자 설명서

번 호 명 칭 기 능

W2560 CPU고유번호

컴퓨터나 기타 통신 모듈과의 통신시 고유번호이다. 각각의 CPU 모듈은

서로 중복되지 않는 고유번호를 가지고 통신함. 프로그래머나 GPC에서

변경 가능. CPU LINK 모듈이 설치된 경우 LINK 모듈의 고유번호가 강

제 설정된다.

W2561 CPU상태

CPU의 현재상태 (정지/원격제어모드/실행모드/에러) 정보를 표시

15 14 8 7 6 5 4 3 2 1 0

에러있음=1, 에러없음=0

F00015(실행제어)

CPU 모듈 모드스위치

실행 위치 0 1

정지 위치 1 0

정지 위치 0 0

W2562 사용자 워치독 프로그래머나 GPC에서 사용자 프로그램 워치독시가늘 표시 (단위: ms)

W2563 스캔타임 프로그램 실행시 매 실행 스캔의 수행시간을 표시 (단위: ms)

W2564 최대스캔타임프로그램 실행시 수행시간의 최대치를 표시. 정지 상태에서 실행 상태로

전환할 때 0으로 초기화 한다. (최대 실행 시간) (단위: ms)

W2565

~W2566

시스템 사용 영역

W2567 통신상태

CPU 모듈 내 통신포트 (직/병렬)의 상태표시

15 상위바이트 8 7 하위바이트 0

직렬포트 상태 병렬포트상태

0 0 ..... 0 0 0 0 0 E R S W

내 용 상 태

0 에러 복구중

1 수신 대기 상태

2 수신 상태 (수신중)

3 송신 상태 (송신중)

Page 37: 삼성 PLC SPC-10 사용자 설명서

번호 명 칭 기 능

W2568

~W2576시스템 사용 영역 (시스템 처리 정보)

W2577 시스템에러정보

CPU에 의한 자체 점검 결과치. F00000이 ON되었을 때 에러의 내용을

표시함.

Bit

15 8 7 6 5 4 3 2 1 0

시스템 워치독

*실행중미정의 명령

주변장치 이상

기타 이상

논리회로 이상

마이컴 이상

*이 비트가 ON되면 W2578을 참조할 것

W2578 미정의명령위치실행 중 미정의 명령 에러가 발생하였을 때 (W2577의 6번 비트가 ON

되었을 때) 에러 명령의 위치정보 표시

W2579 시스템 사용 시스템 사용 영역

W2580 곱셈상위워드 워드 곱셈 명령 수행 후 상위 워드값을 저장

W2581 나머지 나눗셈 명령 수행 후 그 나머지를 저장 (하위 워드)

W2582 나머지 나눗셈 명령 수행 <-> 그 나머지를 저장 (상위 워드)

W2583

~W2589시스템 사용영역

W2590

~W2607문법정보(시스템에서 사용하는 영역)

W2608

~W2671시스템 사용영역 (시스템 정보)

0

Page 38: 삼성 PLC SPC-10 사용자 설명서

번 호 명 칭 기 능

W2590 문법 정보

프로그래머나 GPC에서 문법점검을 CPU모듈에 지시하였을 때와 정지

상태에서 실행상태로 동작 모드가 전환될 때 자동적으로 사용자 프로그

램의 문법을 점검하여 결과를 표시한다.

표시내용이 0이 아니면 F00004가 ON된다.

BIT 이 상 내 역

0비트처리명령의 I/O번호의 범위가 규정밖이거나 설치되지

않은 외부접점/출력모듈을 지정할 경우 ON

1타이머나 카운터의 채널번호가 255를 초과하거나, 채널번호

가 중복된 경우 ON.

2응용명령에서 바이트나 워드번호가 규정밖이거나 설치되지

않은 외부접점/출력모듈을 지정할 경우 ON

4 규정되지 않은 명령이 있을 경우 ON

5 사용자 프로그램 메모리 기입 에러 발생시 ON

6 기타 에러 발생시 ON

7 사용자 프로그램 메모리가 파괴된 경우 ON

8

설치되어 있는 외부입/출력 모듈과 비트나 바이트/워드 번호

의 용법이 일치하지 않는 경우 ON

예) STR R00000 입/출력 사용가능

OUT R01500 출력모듈만 사용가능

9

JMP명령과 CALL명령의 레이블 번호가 63을 초과하거나

해당명령(LBL, SBR)이 존재하지 않는 경우와 JMP/CALL

명령이전에 해당 LBL/SBR 명령이 존재하는 경우 ON

10LBL 명령의 레이블 번호가 63을 초과하거나 중복사용할 경

우 ON

11 JMPS/JMPE 명령이 잘못 결합 사용할 경우 ON

12FOR/NEXT 명령이 잘못 사용되거나 5중 이상의 깊이(

LOOP)로 사용될 경우 ON

13SBR명령과 RET명령이 결합사용되지 않는 경우와 SBR번호

를 중복 사용하거나 63을 초과하는 경우 ON

15 END 명령이 없는 경우 ON

Page 39: 삼성 PLC SPC-10 사용자 설명서

번 호 명 칭 기 능

W2591 미사용 상위기종을 위해 예약됨. 항상 0

W2592 W2590의 비트 0이 ON 되었을 때의 에러 스텝 번호.

W2593 W2590의 비트 1이 ON 되었을 때의 에러 스텝 번호.

W2594 W2590의 비트 2이 ON 되었을 때의 에러 스텝 번호.

W2596 W2590의 비트 4이 ON 되었을 때의 에러 스텝 번호.

W2597 W2590의 비트 5이 ON 되었을 때의 에러 스텝 번호.

W2598 W2590의 비트 5이 ON 되었을 때의 에러 스텝 번호.

W2599 W2590의 비트 6이 ON 되었을 때의 에러 스텝 번호.

W2591 W2590의 비트 7이 ON 되었을 때의 에러 스텝 번호.

W2600 W2590의 비트 8이 ON 되었을 때의 에러 스텝 번호.

W2601 W2590의 비트 9이 ON 되었을 때의 에러 스텝 번호.

W2602 W2590의 비트 10이 ON 되었을 때의 에러 스텝 번호.

W2603 W2590의 비트 11이 ON 되었을 때의 에러 스텝 번호.

W2604 W2590의 비트 12이 ON 되었을 때의 에러 스텝 번호.

W2605 W2590의 비트 13이 ON 되었을 때의 에러 스텝 번호.

W2607 W2590의 비트 15이 ON 되었을 때의 에러 스텝 번호.

Page 40: 삼성 PLC SPC-10 사용자 설명서

제 7장 프로그래밍

7.1 프로그래밍법

7.1.1 릴레이판에서 PC회로의 전환

릴레이시퀀스를 프로그래머블 콘트롤러 (PC)로 전환하면 그림 7-1과 같이 됩니다. 외부 입력과 외부 출력은

배선이 필요하며 PLC의 시퀀스는 프로그래머에 의해 입력합니다.

그림 7.1 릴레이 시퀀스에서 PC로의 전환

① 외부 입력

리미트 스위치, 푸시버튼 스위치, 근접 스위치, 광전 스위치 등의 입력 센서가 PC의 외부입력이

됩니다. 외부입력은 PC의 입력단자에 접속하고 접속된 단자넘버를 사용하여 시퀀스를 입력시킵니다. 전술한

예에서는, 리미트 스위치 LS1 PLC 외부입력 R1 LS2는 PLC 외부입력 R2로서 시퀀스를 입력합니다.

② 외부 출력

전자 접촉기, 전자밸브, 표시등 등이 외부출력이 되고, 외부출력은 PC의 출력단자에 접속됩니다. 접속된 단

자넘버를 사용하여 시퀀스를 입력시킵니다. 전술한 예에서는, 전자접촉기 Y1은 PLC 외부출력 R1500으로서 P

C의 시퀀스를 입력합니다.

③내부 입출력

내부 입/출력은 릴레이 시퀀스의 보조릴레이와 등가인

작용을 합니다. 전술한 예에서는, 보조릴레이 X1을

내부출력 M0로서 시퀀스를 입력시킵니다. 내부 입/출력에는

정전시 상태유지 가능(접점)과 불가능 (접점)이 있는데,

자기유지회로를 셋트시킨 경우, 그림 5-2와 같이 작동이

다릅니다. 즉, 정전시 상태유지 부락능한 내부 출력은 전원

OFF시의 ON/OFF 상태에 관계없이 전원 ON시, OFF 상태로

초기화 됩니다. 한편 정전시 상태유지 가능한내부출력은

전원 OFF시의 ON/OFF 상태를 기억하고, 정전시 상태

유지가능한 내부출력은 자기유지회를 셋트시키므로서 KEEP

릴레이로서 사용할 수 있습니다.

주) SPC-10은 외부 입출력 address를 R로 내부출력은 M,K

표시합니다. 단 M은 정전기억불가 내부출력이고 K는

정전기억 유지 내부 출력입니다.

그림 7-2 내부출력의 작동

K0

M0

R1 R2

K0

R1 R2

M0

R1

M0

K0

OFF

ON전원 OFF

*M0 번은 정전시 상태유지 불가능 접점

*K0 번은 정전시 상태유지 가능 접점

Page 41: 삼성 PLC SPC-10 사용자 설명서

④타이머

기본주기 0.1S, 0.01S 두 종류가 있으며 2종의 명령 (TIM, SST)에 따라 계수 방법이 다릅니다. 타이머

입력조건이 성립되면 타이머가 동작하여 설정치에 도달하면 접점 출력이 ON되고 최대 설정치는 65535

(HFFFF)까지 가능하면 256개가 내장되어 있습니다.

타이머의 종류 처리내용 계수방법 타임차트

TIMOn Delay Increment

SST Single Short Increment

⑤카운터

입력조건의 상승엣지 ( )에서 카운트 입력이 동작되어 경과치가 증가하며 경과치가 설정대로 되면 출

력이 ON됩니다. 리세트 입력이 ON되면 카운터는 OFF되고 경과치를 0으로 소거하거나 설정치로 대치됩니다

3종 (UC, DC, UDC)의 명령어에 따라 계수방법이 다르고 최대 설정치는 65535 (HFFFF)까지 가능하며 256

점이 내장되어 있습니다.

주) 단 Up/ Down 카운터일 경우 카운터 입력 조건이 2개임 (Up 입력, Down 입력).

Timer CH=□□□

Command v=□□□□□

TIMER ADDRESS

Timer 설정치

Timer 입력조건

t

입력

출력

t

입력

출력

카운터 Address

카운터 설정치

카운터 입력조건↑

↑ 카운터 RESET조건

카운터의 명령

CH=□□□

v=□□□□□

Page 42: 삼성 PLC SPC-10 사용자 설명서

카운터의 종류 처 리 내 용 계 수 방 법 TIME-CHART

UC Up Counter Increment

DC Down Counter Decrement

UDCUp/Down

Counter

Increment/

Decrement

설정치

Reset 신호

Count Pulse

경과치

출력신호

설정치

Reset 신호

경과치

출력신호

count

pulse

Reset 신호

경과치

출력신호

Up pulse

Down

Pulse

Page 43: 삼성 PLC SPC-10 사용자 설명서

7.1.2 프로그램의 처리순서

릴레이판에서는 모든 시퀀스가 동시에 병렬 처리되는데, PC에서는 기입된 프로그램의 선두 스텝에서

최종스텝까지 직렬로 처리하고, 최종 스텝에서 다시 선두 스텝으로 되돌아와서 주기적으로 반복처리

(사이클릭 처리)합니다. 이 1주기의 시간을 스캔 타입이라 합니다.

BRAIN SPC 시리즈의 1스캔타입 내에서의 처리순서를 그림 7-3, 7-4에서 나타냅니다.

그림 7-3 릴레이판과 PC의 처리순서

그림 7-4 CPU 스캔 타임 내에서의 처리순서

① 프로그램의 해석 처리

작성된 프로그램의 명령에 따라 선두스텝부터 해석, 처리합니다.

해석처리에 따라 외부출력, 내부출력 등의 내용은 데이터 RAM상에서 순차적으로 변화됩니다.

② 입력 처리

외부입력의 ON/OFF 상태를 SPC 시리즈 내부으 데이터 RAM으로 셋트됩니다.

프로그램의 연산처리중에 외부 입력의 ON/OFF 상태가 변화하더라도 데이터 RAM상의 입력상태는 변화되

지 않으며, 다음 스캔의 입력처리시 변화상태를 셋트합니다.

입력신호는 펄스폭이 1스캔타임 이상이 아니면 셋트하지 못합니다.

③ 출력 처리

데이터 RAM상의 외부출력의 ON/OFF상태를 출력모듈의 출력 래치에 출력하고, 출력 릴레이를 구동하여 외

부출력단자로 출력됩니다.

④ 프로그래머 처리

프로그래머에서 입출력의 ON/OFF상태나, 타이머, 카우터의 경과치를 모니터하는 경우, 프로그래머의

표시창에 데이터 RAM의 내용이 표시됩니다.

⑤ 입출력 강제 ON/OFF

마지막으로 입출력의 강제 ON/OFF를 처리합니다.

프로그램의 해석처리입출력

처리

프로그래머

처리

WATCHDOG

TIMER의

RESET

입출력 강제 ON/OFF

Page 44: 삼성 PLC SPC-10 사용자 설명서

7.1.3 PC의 시퀀스

① PC의 시퀀스는 명령어와 외부(내부) 입출력번호, 시트프 레지스터,

타이머 또는 카운터 번호와, 특수기능을 조합시켜서 프로그램합니다

단, 번호와 조합을 필요로 하지 않는 명령 (AND STR, OR STR, MCS,

MCR)도 있습니다. “명령어 + 입출력번호”로 1스텝 (1 word)이 됩

니다.

② 입출력, 내부입출력, 카운터 등의 접점수에 대해서는 사용횟수의 제

한이 없습니다 (예1)

③ 직렬,병렬 회로에서 직렬에 접속하는 접점수, 병렬에 접속하는 접점

수에 제한은 없습니다 (예2)

④ 좌측의 모선에 출력코일 (타이머 등의 출력을 포함)을 접속할 수 없

습니다. 이 경우에는 사용되지 않는 내부출력의 b접점 (항시 전기가

통하는 상태)를 끼워서 접속합니다. (예3).

⑤ 서멀릴레이의 접점은 릴레이 시퀀스에서는 출력코일의 우측에 접속

하지만, PC의 시퀀스에서는 출력코일의 우측에 접점을 둘 수가 없으

므로 필요한 경우에는 좌측에 두어야 합니다. (예4).

⑥ 출력 코일 (타이머를 포함)은 두번 이상 사용하지 말고 하나로 마무

리 합니다. 두번 이상 사용하면, 문법체크시 이중코일 에러가 된다.

(예5).

⑦ 프로그램은 반드시 회로의 좌측에서 우측으로 진행시켜갑니다.

⑧ 카운터나 시프트 레지스터 등 두개 이상의 입력을 가진 출력에서는,

입력 프로그램 순서가 정해져 있으므로, 반드시 정해진 순서에 따라

프로그램을 하여야 합니다 (예6).

⑨ 타이머나 카운터의 설정치는 코일의 프로그램시에 기입합니다.

(예7)

R0R1

R0 R3

R1500

접점 제한 없음

(예1)

제한 없음

R1500

(예2)

사용되지 않은 내부출력

R1500

R1500

(예3)

R1500

R1500↓

(예4)

R0 R1

R2

R1500

R0 R1

R2

R1500↓

(예5)

카운터입력

리세트입력

UC CH=10

V= 5

(예6)카운터입력

TIM CH=0

V=100

(예7)

타이머 설정치

Page 45: 삼성 PLC SPC-10 사용자 설명서

7.1.4 프로그래밍 주의법

·프로그래밍은 반드시 좌에서 우로, 상에서 하로 순차적으로 진행시켜서 정리하면서 최종적으로 하나의

프로그램으로서 완성시킨다.

그림 7-5 시퀀스

그림 7-6 시퀀스 블록

R0 R1 R4 R5 R102

R2 R3 R6 R7

R1500

R0 R1

명 령 어 입.출력 NO. 시퀸스 블록

STR

AND

STR

OR

ORB

STR

AND

STR

AND

ORB

ANB

AND

STR

ORB

OUT

R0 -------

R1 --------

R2 --------

R3 --------

R4 --------

R5 --------

R6 --------

R7 --------

R102 ------

R100 ------

R101 ------

R1500 -----

①OR②

④OR⑤

⑦ ⑧

⑧OR⑨

③AND ⑥

R1500

⑨ R100 R101

R102

⑦③

①R0 R1

⑥④

⑤R2 R3 R6 R7

R4 R5

Page 46: 삼성 PLC SPC-10 사용자 설명서

7.1.5 프로그램의 기입에 대하여

① 프로그램의 용량은 900 스텝입니다.

스텝 넘버는 0부터 10진법으로 할당되어 있습니다.

② 신규 프로그램 기입인 경우는 0스텝부터 기입해야 합니다.

③ 이미 기입되어 있는 프로그램에 추가하여 기입하는 경우에는 이미 기입되어 있는

프로그램의 최종 스텝의 다음 스텝부터 계속하여 기입해야 합니다.

④ 프로그램의 삽입,삭제를 한 경우 그 이후의 프로그램은 자동적으로 스텝을 이동합니다

① 번 내용설명

899

001

002

000

001

002

878

899

② 번 내용설명

001

002

000

신규프로그램의

기입 선두스텝

③ 번 내용설명

추가프로그램의 기입

001

002

000

001

100101

이미기입되어

있는 프로그램

← 추가 프로그램의

가입선두스텝

삽입전 삽입후

프로그램의 삽입

삭제전 삭제후

프로그램의삭제

899

001

002

000

001

050

051

052

100

899

001

002

000

001

050

051

052

101

899

001

002

000

001

050

051

052

100

899

001

002

000

001

050

051

099

∼053

삽입프로

그램51스텝을1

스텝삭제←

삭제프로

그램

④ 번 내용 설명

51스텝에

1스텝 삽입→

Page 47: 삼성 PLC SPC-10 사용자 설명서

7.2 명령어 일람

7.2.1 기본 명령

No. 명령어 회 로 표 시 기 능 대 상 요 소

13 SET논리회로 결과에 의한 지정코일

의 NO

-R,M,K

14 RST논리회로 결과에 의한 지정코일

의 OFF

15 DIF 신호의 상승엣지( )를 검출

16 DFN 신호의 하강엣지( )를 검출

17 TIM

(CH는 채널번호, V는 설정치)

논리에 의한 On-Delay Timer의

지정

TIM

SST

UC

DC

UDC

18 SST논리에 의한 Single Short

Timer의 지정

19 UC 논리에 의한 Up Counter 지정

20 DC논리에 의한 Down Counter

지정

21 UDC논리에 의한 Up/Down Counter

지정

(SET)

XXX

(RST)

XXX

R

XXX

F

XXX

TIM CH=

V=

SST CH=

V=

UC CH=

V=

DC CH=

V=

UDC CH=

V=

Page 48: 삼성 PLC SPC-10 사용자 설명서

7.2.2 비교연산 명령어

No. 명 령 어 회 로 표 시 기 능 대 상 요 소

1 STR(S1)�(S2) 비교 박스는 a접점취급으로

S1과 S2의 비교결과 (=,><,

<,>,>=,<=)에 따라 ON 또

는 OFF 됩니다.

-S1 : R,M,K,W

(바이트/워드)

-S2 : R,M,K,W

(바이트/워드)2 AND(S1)�(S2)

3 OR (S1)�(S2)

4 INC (d)D로 지정된 레지스터내용을

1씩 증가시킴

-D:R,M,K,W

(바이트/워드)

5 DEC (d)D로 지정된 레지스터 내용

을 1씩 감소시킴

6 INCB (d)

D로 지정된 레지스터 내용

을 1씩 증가시킴(B.C.D 연

산)

7 DECB (d)

D로 지정된 레지스터 내용

을 1씩 감소시킴(B.C.D 연

산)

8 ADD (d)S1과 S2로 지정된 바이너리

Data를 가산하여 D에 저장

-D,S1S2 :

R, M, K, W

(바이트/워드)

9 ADDB (d)S1과 S2로 지정된 B.C.D

Data를 가산하여 D에 저장

10 SUB (d)S1과 S2로 지정된 바이너리

Data를 감산하여 D에 저장

〔S1 □ S2〕

〔S1 □ S2〕

〔S1 □ S2〕

INC D

DEC D

INCB D

DECB D

ADD D=S1+S2

ADDB D=S1+S2

SUB D=S1-S2

Page 49: 삼성 PLC SPC-10 사용자 설명서

NO. 명령어 회 로 표 시 기 능 대 상 요 소

11 SUBB (d)S1과 S2로 지정된 바이너리

Data를 감산하여 D에 저장 -D,S1,S2

:R, M ,K, W

(바이트/워드)12 MUL (d)S1과 S2로 지정된 바이너리

Data를 곱셈하여 D에 저장

13 MULB (d)S1과 S2로 지정된 B.C.D

Data를 곱셈하여 D에 저장

14 DIV (d)S1과 S2로 지정된 바이너리

Data를 나눗셈하여 D에 저장

15 DIVB (d)S1과 S2로 지정된 바이너리

Data를 나눗셈하여 D에 저장

16 AND (d)S1과 S2로 지정된 내용의

논리곱을 구해 D에 저장

17 OR (d)S1과 S2로 지정된 내용의

논리합을 구해 D에 저장

18 XOR (d)

S1과 S2로 지정된 내용의

배타적 논리합을 구해 D

에저장

SUBB D=S1-S2

MUL D=S1* S2

MULB D=S1-S2

DIV D=S1/S2

DIVB D=S1 / S2

AND D=S1, S2

OR D=S1, S2

XOR D=S1, S2

Page 50: 삼성 PLC SPC-10 사용자 설명서

7.2.3 응용명령

No. 명 령 어 회 로 표 시 기 능 대 상 요 소

1 RLC

-D: R,M,K,W

(바이트/워드)

-N: 정수(0∼15)

2 RRC

3 ROL

4 ROR

5 SHL

6 SHR

7 LET

S의 내용을 D에 저장함.

S:워드 D:워드

S:더블워드 D:더블워드

-D.S :R,M,K,W

(바이트/워드)

RLC D=, N= ← ←D

F108 MSB LSB

N bit 좌로 로테이트

D: 바이트 n : 0∼7

RRC D=, N=

MSB LSB

SMSB ↓ ↓ ↓ LSB

D

MSB LSB F108

D

N bit 우로 로테이트

D: 바이트 n : 0∼7

← ←D

F108 MSB LSB

N bit 좌로 로테이트

D: 바이트 n : 0∼7

→D

MSB LSB F108

N bit 우로 시프트

D: 바이트 n : 0∼7

← 0D

F108 MSB LSB

N bit 좌로 시프트

D: 바이트 n : 0∼7

← →D

MSB LSB F108

0 0

N bit 좌로 시프트

D: 바이트 n : 0∼7

ROL D=, N=

ROR D=, N=

SHR D=, N=

SHR D=, N=

LET (D=, S= )

Page 51: 삼성 PLC SPC-10 사용자 설명서

NO. 명령어 회 로 표 시 기 능 대 상

8 BCD

S에 저장된 내용을 BCD값으로 변환하

여 D에 저장함.

S : 바이트 D : 바이트

S : 워드 D : 워드

-D,S:R, M, K,

W(바이트/워드)

9 BIN

S에 저장된 내용을 BCD값으로 변환하

여 D에 저장함.

S : 바이트 D : 바이트

S : 워드 D : 워드

10 BEST

11 BRST

12 BTS

13 BNOT

14 ARS

LET (D=, S= )

BIN (D=, S= )

D

N 1 0

1

D로 지정된 레지스터 내용의 N번째 BIT

를 1로 셋트함

D:워드 N:0∼15

BSET (D=, N= )

BRST (D=, N=)D

N 1 0

D로 지정된 레지스터 내용의 N번째 BIT

를 0로 셋트함

D:워드 N:0∼15

0

BTS (D=, N= ) D

N 1 0 F108

D로 지정된 레지스터 내용의 N번째 BIT

값(1 or 0)을 F108로 표시

D:워드 N:0∼15

BNOT(D=, N= )

D

N 1 0

D로 지정된 레지스터 내용의 N번째 BIT

값(1 or 0)을 F108로 표시

D:워드 N:0∼15

N의 값이 0 → 1

1 → 0

ABS D

D←

D로 지정된 레지스터 내용의 절대치를 D

에 저장

D의 값이 음수일 경우(최상위 BIT) 2의

보수를 취함.

D

Page 52: 삼성 PLC SPC-10 사용자 설명서

NO 명령어 회 로 표 시 기 능 대상요소

15 NEG

D← — D

D로 지정된 레지스터 내용에

2의 보수를 취함

2의 보수= 1의 분수+1

-D : R,M,K,W

(워드)

16 NOT

D← D

D로 지정된 레지스터 내용에

1의 보수를 취함.

17 XCHG

D← D

D1, D2로 지정된 레지스터 내용

에 서로 교환함.

-D1,D2 :R, M, K,

W(워드)

18 DIS D,N,S

-D,S : R, M, K,

W(워드)

-N : 정수

19 UNI D,S,N

20 DECO D,S

21 ENCO D,S

NEG D

NEG D

XCHG (D1 D2 )

XCHG (D1 D2 )

S DAA B C

D+1B

D+2C

D+3D

DA B C

UNI D,S, N

S DAA B C

S+1 B

S+2 C

S+3 D

A D C B

s로 지정된 레지스터 N+1개의 각

워드중 하위 4비트를 결합하여D

에 저장.

DECO D,S

ENCO D,S

S DA B C →

b15 b3 b0 b15 b0

무시

s로 지정된 하위 4비트 값을 8-4

-2-1 코드로 D에 저장함.

S DA B C →

b15 b7 b0

8-4-2-1 코드로 변환된 S레지스

터 값을 D의 하위 8bit에 저장

불변

Page 53: 삼성 PLC SPC-10 사용자 설명서

No. 명 령 어 회 로 표 시 기 능 대 상 요 소

22 SEG D, S

S로 지정된 레지스터 하위 4비트값을

SEG로 변환 D의 하위 8비트에 저장

-D,S :R, M, K,

W(워드)

-N : 정수

-V : 정수

23 SUM D, S

S로 지정된 레지스터 1인 비트수를 카

운터하여 D에 저장

24 MOV D, S, N

S로 지정된 레지스터부터 N개의 워드를

D로 지정된 N개의 워드에복사

25 FMOV D,N,V

V로 지정된 값을 D에서부터 N개의 워드

에 반복 복사

26 BMOV D,S, N

S로 지정된 비트 레지스터에서 N개의

비트를 D로 지정된 비트 위치로 이동

-D,S : R,M, K

(비트)

-N : 정수

27 BFMVD,N, V

D로 지정된 비트 레지스터에서 N개의 비

트를 V값(0,1)로 반복 복사

-D : R, M, K

(비트)

-N : 정수

-V : 0 or 1

SEG D,S

S A B C

b3 b0

D A B C

b7 b0무시

불변

SUM D,S

MOV D,S,N

A B C

↓1인 비트수를 SET

S

D

A B C

↓ ↓ ↓ ↓ ↓

A B C

S+N-1 S1 S0

D+N-1 D1 D0

N 워드

FMOV D,S,N

D+N+1 D+2 D+1 D

V

N워드

BMOV D,S,N

V값(0 or 1)을COPY

↓↓↓

b15 N S b0

b15 ↙↙↙ D

N

BFMV D,N,V

Page 54: 삼성 PLC SPC-10 사용자 설명서

No. 명 령 어 회 로 표 시 기 능 대 상 요 소

28

SC

RC

CC

-캐리 F108을 셋트함

-캐리 F108을 리셋트 함

-캐리 F108을 반전시킴

-F108 특수 내부

08출력

29 LDR D, [S]

-S로 지정된 레지스터 내용을

절대 번지로 하는 레지스터 내용

을 D에 저장-D,S : R,M,K,W

(워드)

30 STO S, [D]

-S로 지정된 레지스터 내용을

D로 지정된 레지스터 내용을

절대 번지로 하는 레지스터에

저장

31FOR

NEXT

-D의 값을 1씩 감소시키면서

NEXT 명령까지 D값이 0이

될 때까지 반복 수행

D : R,M,K,W

(워드)

혹은 정수값

32JUMP L

LBL L

-점프로 지정된 L번지로부터

LBL로 지정된 L번까지 점프하는L정수 0~63

33

CALL sb

SBR sb

RET

-서브루틴 호출

-서브루틴 시작

-서브루틴 끝

-sb는 정수 0~63

SC

RC

LER D,S

STD S,D

FOR D

NEXT

JUMP L

LBL L

CALL sb

SBR sb

RET

CC

Page 55: 삼성 PLC SPC-10 사용자 설명서

7.3 기본 명령

1. STR STORE의 약자로서, STR, STN(STR

NOT)명령은 회로의 선두에 사용됩니다.

2. OUT 명령은 외부 출력,, 내부 출력,

타이머, 카운터에 대한 구동 명령입니다.

3. OUT 명령으로 지정한 접점은 다른

코일을 구동시키는 입력조건으로 사용할

수 있습니다. (예 1)

1. 입력조건 없이 좌측에 모선에 OUT 지정할

수 없습니다. (예 2)

2. 같은 출력은 두번 이상 사용할 수 없습니다.

(예 3)

STR, STN(STR NOT) OUT의 사용법

순서 키 조 작 비 고

0

1

2

3

4

STR R00000 ENT

OUT M00000 ENT

STN R00000 ENT

OUT R00001 ENT

OUT R00002 ENT

R00000 → R0

M00000 → M0

R00001 → R1

M00001 → M1

M00002 → M2

〈OUT〉

〈OUT〉

〈OUT〉

R00000

R00001

M00000

M00001

M00002

설 명

〈OUT〉

R00000 M00000

〈OUT〉

M00000 M00001

예1)

〈OUT〉

M00000

〈OUT〉M00000

예2)

↑사용되지 않는 내부 접접

〈OUT〉

R00000 M00000

R00001

예3)

〈OUT〉

R00002 M00000

R00003

주 의

Page 56: 삼성 PLC SPC-10 사용자 설명서

설 명

1. 사용 개수에는 제한이 없습니다.

2. OUT 명령후 접점을 통하여 다른 코일을 구동시킬 수

있습니다.

AND, ADN (AND NOT)의 사용법

순서 키 조 작

0

1

2

3

4

5

6

STR R0 ENT

AND R1 ENT

OUT M0 ENT

STR R2 ENT

ADN R3 ENT

AND R4 ENT

OUT M1 ENT

〈OUT〉R00000 M00000

R00002 R00003 R00004

〈OUT〉

M00001

R00001

〈OUT〉

제한없음.

〈OUT〉

〈OUT〉

R0R R1R

R2R

M0

M1

순서 키 조 작

0

1

2

3

4

STR RO ENT

AND R1 ENT

OUT M0 ENT

AND R2 ENT

OUT M1 ENT

Page 57: 삼성 PLC SPC-10 사용자 설명서

설 명

1. OR 및 ORN (OR NOT) 명령은 한 접점과의 병렬 접속을 시킵니다.

2. 사용 갯수에는 제한이 없습니다.

주 의

OR, ORN(OR NOT)법

R00000R

R00001R

R00001R

R00002R

R00003R

〈OUT〉M00000

〈OUT〉M00000

순서 키 조 작

0

1

2

3

4

5

6

STR R0 ENT

OR R1 ENT

OUT MO ENT

STR R1 ENT

OR R2 ENT

OR NOT R3 ENT

OUT M1 ENT

〈OUT〉

M00000

제한이 없습니다.

Page 58: 삼성 PLC SPC-10 사용자 설명서

설 명

1. 2개 이상의 접점이 병렬 접속된 회로를 병렬회로 블럭이라 하며, 병렬회로 블럭을 직렬접속하는 경우 분

기의 시작은 STR, STN 명령을 사용하며 분기의 종료는 ORB명령을 사용합니다.

2. 2개 이상의 접점이 직렬접속된 회로를 직렬회로 블럭이라 하며, 직렬회로블럭을 병렬 접속하는 경우 분

기의 시작은 STR, STN 명령을 사용하며 분기의 종료는 ANB 명령을 사용합니다.

3. 다수의 직렬(병렬)회로블럭이 있을 때는, 한 회로블럭마다 순차적으로 ANB(ORB)로 앞의 회로와 접속시키

면 횟수에 제한이 없습니다.

주 의

1. STR, STN이 있는 회로블럭에 대하여는 ANB(ORB)가 대응되어 있지 않으면 문법 에러가 발생합니다.

단, 입력조건이 두개 이상 있는 카운터, UP/DOWN 카운터 등의 회로는 다릅니다.

ANB, ORB의 사용법

순서 키 조 작

0

1

2

3

4

5

STR R0 ENT

OR R1 ENT

STR R2 ENT

OR R3 ENT

ANB ENT

OUT R200 ENT

·a블록을 프로그램 한다

·b블록을 프로그램 한다

·a블록과 b블록을 ANB

에서 정리합니다.

0

1

2

3

4

5

STR R4 ENT

AND R5 ENT

STR R6 ENT

AND R7 ENT

ORB ENT

OUT M201 ENT

·a블록을 프로그램 한다

·b블록을 프로그램 한다

·a블록과 b블록을 ORB

에서 정리합니다.

(OUT)R00000R R00002 M00200R

R00001R R00003

R00004R R00005

R00006R R00007

a블럭 b블럭

a블럭

(OUT)M00200R

b블럭

R00000R

R00001R 카운터

R00000R

R00001R UP

DOWN

카운터R00001R

Page 59: 삼성 PLC SPC-10 사용자 설명서

설 명

1. 출력의 ON/OFF 상태는 입력 조건과 반전 조건을 갖습니다.

·동작조건

1.NOT은 앞의 입력 조건없이 사용은 불가합니다.

(×) (o)

순서 키 조 작

0

1

2

3

STR R0 ENT

AND R1 ENT

NOT ENT

OUT R1500 ENT

NOT의 사용법

R00000R R00001R

〈OUT〉

R01500

/

R00000R

R00001

R01500R

A

/ 〈OUT〉

CR B

A B C

ON

OFF

ON

OFF

ON

ON

OFF

OFF

OFF

ON

ON

ON

주 의

〈OUT〉

A

/ 〈OUT〉

Page 60: 삼성 PLC SPC-10 사용자 설명서

설 명

1. DIF, DFN 명령은 R, M, K, F, T/C 번호만큼 사용할 수 있으나 한번 사용한 번호는 중복 사용할 수 없습

니다.

2. DIF 명령은 입력이 OFF에서 ON으로 변화했을 때, DFN 명령은 입력이 ON에서 OFF로 변화했을 때 시점부터

1스캔 시간분 출력을 ON합니다.

3. DIF, DFN 명령은 산술, 응용, 전송명령의 기동조건 등에 사용될 수 있습니다.

〈M00001〉R

M00000순서 키 조 작

0

1

STR DIF M0 ENT

OUT M1 ENT

M00000

M000011SCAN TIME1SCAN TIME

DIF (하강엣지검출)의 사용법

〈M00000〉F

R00000

R00000

1SCAN TIME1SCAN TIME

M00001

순서 키 조 작

0

1

STR DIF NOT R0 ENT

OUT M0 ENT

DIF (상승엣지검출)의 사용법

Page 61: 삼성 PLC SPC-10 사용자 설명서

설 명

1. MCS :Master Control Set, MCR :Master Control Reset 는 모선을 제어하는 접점에 사용한다.

반드시 쌍으로 사용한다. 쌍으로 되어있지 않은 경우에는 문법에러가 됩니다. (예 1).

2. MCS 명령 다음에는 STR 또는 STN 명령이 사용됩니다.

3. 네스팅은 7레벨까지 가능합니다. (예 2)

MCS, MCR의 사용법

R00000 R00001

〈OUT〉M00200

R00002

〈OUT〉M00201

MCR

순 서 키 조 작 비 고

0

1

2

3

4

5

6

STR RO ENT

MCS ENT

STR R1 ENT

OUT M200 ENT

STR R2 ENT

OUT M201 ENT

MCR ENT

MCS

MCR

R00000R

〈OUT〉

M00200R00001R R00002R

R00000R

〈OUT〉

M00201R00001R R00004R

R00000R

〈OUT〉

M00202R00001R R00005R

(예 1) R00000R

〈OUT〉

M00200R00001R R00002R

〈OUT〉

M00201R00004R

〈OUT〉

M00202R00005R

MCR

MCR

(예 2) MCS

MCS

MCS

MCR

MCR

MCR

MCR

에러

7

8

2

1

Page 62: 삼성 PLC SPC-10 사용자 설명서

설 명

1. 타이머에서 사용가능한 채널번호는 0에서 255까지이고, 카운터와 동일한 NO. 범위이므로 카운터에서 사

용하는 NO는 사용할 수 없습니다.

2. 타이머의 경우 채널번호 0~63까지는 타임베이스가 0.01초로 설정되며, 64~255까지는 0.1초 단위로 시간

이 설정됩니다.

3. 타이머의 설정치는 0.01초 ~6553.5초까지 설정 가능합니다.

(TIM 0~63: 0.01~655.35초, TIM 64~255: 0.1~6553.5초)

4. 타이머는 ON DELAY 타이머이다. 타이머입력이 ON되면 경과치과 증가되어 설정된 시간이 경과된 후 출력

이 ON됩니다.

타이머 입력이 ON이면 경과치는 설정치가 되어도 계속 증가됩니다.

R00000RTIM Ch=0 V=10

TIM Ch=10V=100

TIM Ch=64V=20

(OUT)M00001RTIM0R

TIM10

TIM64R(OUT)M00002R

(OUT)M00003R

0.1초

1초

2초

순서 키 조 작

0

1

2

3

4

5

6

7

8

9

STR R0 ENT

OUT TIM0 ENT

10 ENT

OUT TIM10 ENT

100 ENT

OUT TIM64 ENT

20 ENT

STR TIM0 ENT

OUT M1 ENT

STR TIM1 ENT

OUT M2 ENT

STR TIM2 ENT

OUT M3 ENT

R00000

TIM0

TIM1

TIM2

TIM의 사용법

Page 63: 삼성 PLC SPC-10 사용자 설명서

설 명

1. single-shot 타이머에서 사용가능한 채널번호는 0~255이고 일반 타이머와 카운터에서 사용하는 NO.는 중

복 사용할 수 없습니다.

2. single-shot 타이머의 경우 채널번호 0~63까지는 타임베이스가 0.01초로 설정되며 64~255초까지는 0.1초

단위로 시간이 설정됩니다.

3. single-shot 타이머 의 설정치는 0.01~6553.5초까지 설정 가능합니다.

(SST 0~63: 0.01~655.35초, SST 64~255: 0.1~6553.5초)

4. 타이머 입력이 OFF에서 ON이면 ON 개시 시점부터 설정된 시간까지 출력이 ON됩니다.

설정된 시간이 경과하기 전에 타이머 입력이 OFF되면 OFF되는 시점부터 타이머의 경과치 및 출력이 OFF

됩니다. 타이머 입력이 다시 ON되면 그 시점부터 (OFF→ON) 설정된 시간까지 출력이 ON되고 타이머의 경

과치는 처음부터 갱신합니다.

R00000RSST Ch= V=10

SST Ch=10 v=100

SST Ch=64 V=20

(OUT)M00000RSST0R

SST10

SST64R(OUT)M00001R

(OUT)M00002

0.1초

1초

2초

순서 키 조 작

0

1

2

3

4

5

6

7

8

9

STR R0 ENT

OUT SST0 ENT

10 ENT

OUT SST10 ENT

100 ENT

OUT SST64 ENT

20 ENT

STR TIM0 ENT

OUT M0 ENT

STR TIM10 ENT

OUT M1 ENT

STR TIM64 ENT

OUT M2 ENT

R00000

SST0

SST10

SST64

0.1초0.

1초0.

2초0.

SST(싱글 숏트 타이머)의 사용법

Page 64: 삼성 PLC SPC-10 사용자 설명서

설 명

1. SET 및 RST (RESET) 은 지정코일의 ON,OFF에 사용합니다.

2. SET 출력은 정전 기억 릴레이(K)를 사용시에는 정전이 되더라도 그 상태은 계속 유지됩니다.

3. SET, RST를 자기 유지회로로 사용할 경우에는 (예 1)의 구성회로와 같습니다.

주 의

1.SET 와 RST 조건이 동시에 성립된 때는 프로그래밍상에서 실행된 쪽이 우선합니다.

〈SET〉M00000RR00000R

M00000RR00001R〈RST〉

순서 키 조 작

0

1

2

3

STR R0 ENT

SET M0 ENT

STR R1 ENT

RST M0 ENT

R0

R1

M0

〈SET〉M00000RR00000R

M00000RR00001R〈RST〉

〈OUT〉M00100RR00000R

M00100R

R00001R

SET/RESET의 사용법

Page 65: 삼성 PLC SPC-10 사용자 설명서

설 명

1. 업 카운터 사용범위 채널번호는 0~255이므로 타이머 및 다운, 업다운 카운터에서 사용하는 번호는 사용

할 수 없습니다.

2. 업 카운터는 카운터 입력, 리셋 순으로 프로그램 합니다.

3. 업카운터의 설정치는 0~65535회 까지 가능합니다.

4. 카운터 입력의 동작개시로 경과치가 1씩 증가되며 경과치가 설정치로 되면 출력이 ON됩니다. 경과치는

설정치가 되어도 계속 증가합니다. 리셋 입력이 ON되면 카운터는 OFF되고 경과치는 0이 됩니다. 리셋입

력이 우선입니다. conditions.

5. 카운터의 경과치는 정전 기억되고 정전기억이 필요없는 경우에는 작동개시 후 최초 1 SCAN ON 되는 특수

내부출력 F00100을 사용하여 리셋해 둘 필요가 있습니다.

순서 키 조 작

0

1

2

3

4

5

STR R0 ENT

STR R1 ENT

OR F00100 ENT

OUT CNT 0 ENT

5 ENT

STR CNT 0 ENT

OUT M0 ENT

R00000R

R00001R

R00001R

CNT0R

UC Ch=0

V=5

RST

(OUT)M00000

1회 2회 3회 4회 5회 6회............. 15회

R00000

(경과치)

5회 RR00001R

CNT0R

UC(업 카운터)의 사용법

Page 66: 삼성 PLC SPC-10 사용자 설명서

설 명

1. 다운 카운터 사용범위 채널번호는 0~255이므로 타이머 및 업, 업다운 카운터에서 사용

하는 번호는 사용할 수 없습니다.

2. 다운 카운터는 다운 카운터 입력, 리셋 순으로 프로그램합니다.

3. 다운 카운터의 설정치는 0~65535회까지 가능합니다.

4. 카운터 입력의 동작개시로 경과치가 설정된 값부터 1씩 감소되며 경과치가 0이 되면

력이 ON됩니다. 경과치가 0이 되면 리셋 입력이 ON되기 전까지 경과치는 계속 0을 유

지하며 출력도 계속 ON이 됩니다.

5. 다운 카운터의 경과치는 정전 기억되므로 정전 기억이 필요 없을 경우에는 작동 개시

후 최초 1SCAN ON되는 특수내부출력 F00100을 사용 다운 카운터의 경과치를 리셋하여

최초의 설정치 상태로 해 둘 필요가 있습니다.

순서 키 조 작

0

1

2

3

4

5

STR R0 ENT

STR R1 ENT

OR F100 ENT

OUT CNT CNT 10 ENT

5 ENT

STR CNT10 ENT

OUT M0 ENT

R00000R

R00001R

F00100R

DC CH=10

V=5

카운터 입력

R

리셋트 입력

R

CNT0R

〈OUT〉M00000

3회4회 3회 2회 1회 0회 0 0 0 0회 5회

R00000

(경과치)

5회 R

R00001R

CNT0R

(리셋트)

DC(다운 카운터)의 사용법

Page 67: 삼성 PLC SPC-10 사용자 설명서

설 명

1. 업/다운 카운터 사용범위 채널번호는 0~255이므로 타이머 및 업, 다운카운터에서 사용하는 번호는 사용

할 수 없습니다.

2. 업/다운 카운터는 업카운터입력, 다운카운터입력, 리셋 순으로 프로그램 한다.

3. 업/다운 카운터의 설정치는 0~65535회까지 가능합니다.

4. 업 카운터로서 사용하면 업카운터 입력의 동작개시(OFF→ON)를 카운터하여 가산합니다.

00000 → 00001 → 00002 → 12345 (설정치) → 00000

5. 다운카운터로서 사용하면 다운카운터 입력이ㅡ 동작개시(OFF→ON)를 카운터에서 감산합니다.

00000 → 12345 (set value) → 12344 → 00001 → 00000

6. 업카운터 입력이 동작개시되면 현재 경과치 값을 증가하고 다운카운터 입력이 동작개시되면 현재 경과치

값을 감소합니다. 증가하거나 감소한 경과치 값이 설정치 및 0을 통과할 때, 즉, 자리올림 혹은 자리내

림이 발생하는 시점부터 다음 클럭입력(업 or 다운입력) 개시 시간까지 출력이 ON됩니다.

7. 리셋입력이 ON되면 카운터의 경과치는 0이 됩니다.

순서 키 조 작

0

1

2

3

4

5

STR R0 ENT

STR R1 ENT

OR R2 ENT

OUT CNT CNT CNT1ENT

3ENT

STR CNT1 ENT

OUT M0 ENT

R00000R

R00001R

R00002R

UDC Ch=001

V=3

RST

1 2 3 4 5 6 7회R00000

R00001R

카운터

경과치R

업카운터입력R

다운카운터입력

R

T/C001R

(OUT)M00000

리셋트 입력R

1 2 3 4 5회

0 1 2 3 2 3 0 1 0 3 2 3 2 0

자리올림발생 자리내림발생

R00002

R

T/C001

(경과치)R

UDC(업/ 다운카운터)의 사용법

Page 68: 삼성 PLC SPC-10 사용자 설명서

7.4 비교 명령

바이트, 워드 =,≠,〈,〉,=〉,〈=

기 능

1. 비교명령은 a접점 취급으로 S1과 S2를 바이트 크리 비교한 결과에 따라 ON 또는 OFF된다.

비교명령 �에는 =, , <,>,<=,=> 를 사용할 수 있다.

〔S1 □ S2〕

바이트

STR □

S1 ENT

S2 ENT

〔S1 □ S2〕

STR R0 ENT

AND □

S1 ENT

S2 ENT

〔S1 □ S2〕

R00000R STR R0 ENT

OR □

S1 ENT

S2 ENT

워드

DSTR □

S1 ENT

S2 ENT

STR R0 ENT

DAND □

S1 ENT

S2 ENT

STR R0 ENT

DOR □

S1 ENT

S2 ENT

명령 S1,S2의 바이트 길이 연산비용 결과

=바이트(8bit)

워드(16bit)

S1=S2

S1≠S2

ON

OFF

≠(<>)바이트(8bit)

워드(16bit)

S1≠S2

S1=S2

ON

OFF

>바이트(8bit)

워드(16bit)

S1>S2

S1≤S2

ON

OFF

<바이트(8bit)

워드(16bit)

S1<S2

S1≥S2

ON

OFF

≥(=>)바이트(8bit)

워드(16bit)

S1≥S2

S1<S2

ON

OFF

≤(<=)바이트(8bit)

워드(16bit)

S1≤S2

S1>S2

ON

OFF

Page 69: 삼성 PLC SPC-10 사용자 설명서

프로그램 코팅

바이트 코딩

워드 코딩

〔W0〓5〕

〈OUT〉

〈OUT〉

R00000 R00001 R00200

3>K03

R00201

순서 키 조 작

0

1

2

3

4

5

6

7

8

9

STR R0 ENT

FUN 11 ENT

W0 ENT

(AND <=)

5 ENT

AND R1 ENT

OUT R200 ENT

FUN 7 ENT

(STR > )

3 ENT

K0 ENT

OUT F201 ENT

순서 키 조 작

0

1

2

3

4

5

6

7

8

9

FUN 55 ENT

(STR D=)

W0 ENT

AND R0 ENT

AND R0 ENT

OUT M100 ENT

FUN 16 ENT

(STR <)

W2 ENT

W4 ENT

OR R1 ENT

FUN 71 ENT

(AND D <)

W6 ENT

$ 456 ENT

OUT M101 ENT

〔W0=W2〕 〈OUT〉

〈OUT〉

R00000 M00100

M00101

D

〔W2<W4〕 〔W6<$456〕D

R00001

Page 70: 삼성 PLC SPC-10 사용자 설명서

7.5 연산명령

바이너리 바이트 워드가산

설 명

-자리올림 캐리 (F00108)는 S1과 S2의 바이너리 데이터로의 가산 결과 D에 자리올림이 발생할 경우에 1, 자

리올림이 없을 경우에는 0이 셋트된다.

-D, S1, S2가 바이트시 D, S1, S2의 데이터 16진의 H0000~H00FF는 10진의 0~255를 의미한다.

S1과 S2의 가산한 결과는 H0000~H00FF의 범위라면 F00108에 0이 셋트되며 H00FF를 초과했을 때에는 1이 셋

트된다.

-D, S1, S2가 워드시 D, S1, S2의 데이터, 16진의 H0000~HFFFF는 10진의 0~65535를 의미한다.

S1,과 S2의 가산한 결과가 H0000~HFFFF의 범위라면 F00108에 0이 셋트되며 HFFFF를 초과했을 때에는 1이 셋

트된다.

R0

R ADD D=S1+S2·바이트

R0

R DADD D=S1+S2·워드

ADD 바이트 DADD 워 드

X X H8 9S1

X X H7 8+S2

X X H0 1ONF108 D

H13 H8 9S1

H47 H7 8+S2

H5B H0 1ONF108 D

기능

프로그램 예

S1과 S2로 지정된 바이너리 데이타를(바이트/워드) 가산하여 D로 지정된 레지스터에 저장한다.(S1+S2→D)

R0

RADD W0=W1+W2

DADD W2=W4+W6

F00108

(M0)

코 딩

순서 키 조 작

1

2

3

4

5

6

7

8

9

10

11

STR DIF R0 ENT

FUN 35 ENT

(ADD)

W0 ENT

W1 ENT

W2 ENT

FUN 89 ENT

(DADD)

W2 ENT

W4 ENT

W6 ENT

STR F108 ENT

OUT M0 ENT

프로그램

Page 71: 삼성 PLC SPC-10 사용자 설명서

바이너리 바이트 워드감산

설 명

- 바이너리 데이터로서 감산결과 자리내림이 발생하면 F00108에 1이 세트되고 (ON), 발생하지 않으면 0이

셋트된다. (OFF).

- D, S1,S2가 바이트시 D, S1, S2의 데이터 H0000~H00FFㄴ,ㄴ 10진의 0~255를 의미하고 워드 D, S1, S2의

데이터 H0000~HFFFF는 10진 0~65535를 의미한다.

- S1< S2인 경우에 S1에서 S2를 감산하면 자리내림이 발생하여 F00108에 1이 셋트되고 S1>=S2인 경우에 S1에

서 S2를 감산하면 F00108에 0이 셋트된다.

R0

R SUB D=S1-S2·바이트

R0

R DSUB D=S1-S2·워드

SUB 바이트 DSUB 워 드

X X H8 9S0

X X H7 8-S2

X X H0 FOFFF108 D

H13 H8 7S0

H47 H7 8-S2

HCC H0 FONF108 D

기능

S1과 S2로 지정된 바이너리 데이타를(바이트/워드) 감산하여 D로 지정된 레지스터에 저장한다.(S1-S2→D)

프로그램 예

R1

RSUB W0=W1-W3

DSUB W2=W4-W6

F00108

(M1)

코 딩

NO 코 팅

1

2

3

4

5

6

7

8

9

10

11

STR DIF R0 ENT

FUN 37 ENT

(SUB)

W0 ENT

W1 ENT

W2 ENT

FUN 91 ENT

(DSUB)

W2 ENT

W4 ENT

W6 ENT

STR F108 ENT

OUT M1 ENT

프로그램

Page 72: 삼성 PLC SPC-10 사용자 설명서

바이너리 바이트 /워드 나눗셈

설 명

- 바이트 나눗셈의 경우 나머지는 W2581에 저장되며 W2582 값은 0이 된다.

- 워드 나눗셈의 나머지는 W2581에 하위워드가 W2582에 상위워드가 저장된다.

- S2(젯수)가 0인 경우는 F0109에 1이 셋트된다 (ON).

R0

R DIV D=S1/S2·바이트

R0

R DSUB D=S1/S2·워드

DIV 바이트 DDIV 워 드

X X H8 8S0

X X H1 5÷S1

기능

S1과 S2로 지정된 바이너리 데이타를(바이트/워드) 감산하여 D로 지정된 레지스터에 저장한다.(S1÷S2→D)

프로그램

X X H0 6W2581 DH0 0H0 1

H5 3H8 8S0

H0 1H1 5÷S1

H0 0 H4 DW2581 DH0 0H3 7

프로그램 예

R00000

RDIV W0=W1/W10

DDIV W2=W4/W100

F109

(M00000)

코 딩

NO 코 팅

1

2

3

4

5

6

7

8

9

10

11

STR DIF R0 ENT

FUN 40 ENT

(DIV)

W0 ENT

W1 ENT

10 ENT

FUN 94 ENT

(DDIV)

W2 ENT

W4 ENT

100 ENT

STR F109 ENT

OUT M0 ENT

Page 73: 삼성 PLC SPC-10 사용자 설명서

바이너리 바이트 /워드 곱셈

설 명

- 바이트 곱셈의 경우 곱한 결과 상위 바이트 값은 W2580에 저장된다.

R0

R MUL D=S1*S2·바이트

R0

R DMUL D=S1*S2·워드

MUL 바이트 DMUL 워 드

X X H4 8

X X H8 7S1

X X H7 8*S2

W2580 D

기능

S1과 S2로 지정된 바이너리 데이타를(바이트/워드) 곱셈하여 D로 지정된 레지스터에 저장한다.

프로그램

H0 0H3 F

H1 3 H8 7S1

H4 7 H7 8*S2

H9 8H4 8W2580 DH0 5H7 3

프로그램 예

R00000

RMUL W0 W1*W10

DMUL W10=W8*100

코 딩

NO 코 팅

1

2

3

4

5

6

7

8

9

STR DIF R0 ENT

FUN 39 ENT

(MUL)

W0 ENT

W1 ENT

10 ENT

FUN 93 ENT

(DMUL)

W10 ENT

W8 ENT

100 ENT

Page 74: 삼성 PLC SPC-10 사용자 설명서

BCD 바이트, 워드 가산

설 명

- 자리올림 캐리(F00108)는 S1과S2의 BCD 데이터로의 가산 결과 D에 자리올림이 발생할 경우에 1, 자리

올림이 없을 경우에 0이 셋트된다.

- D, S1, S2가 바이트시, S1과 S2의 가산결과가 BCD 0000~99의 범위라면 F00108에 0이 셋트되고 99를

초과했을 경우에는 1이 셋트된다.

- D, S1, S2가 워드시, S1과 S2의 가산결과가 BCD 0000~9999의 범위라면 F00108에 0이 셋트되고 9999를

초과했을 경우에는 1이 셋트된다.

R0

R ADDB D=S1+S2·바이트

R0

R DADDB D=S1+S2·워드

기능

S1과 S2로 지정된 BCD 데이타를(바이트/워드) 곱셈하여 D로 지정된 레지스터에 저장한다.

프로그램

+S2 H4 7 H7 8

S1 H1 3 H8 7

F108 XX H6 7ON D

ADDB 바이트 DADDB 워 드

XX H8 9S1

XX H7 8+S2

F108 H6 1H6 7OFF D

프로그램 예 코 딩

NO 코 팅

1

2

3

4

5

6

7

8

9

10

11

STR DIF R0 ENT

FUN 41 ENT

(ADDB)

W0 ENT

W1 ENT

W2 ENT

FUN 95 ENT

(DADDB)

W3 ENT

W4 ENT

W5 ENT

STR F108 ENT

OUT M100 ENT

R00000

RADDB W0=W1+W2

DADDB W3=W4+W5

F00109

〈M100〉

Page 75: 삼성 PLC SPC-10 사용자 설명서

BCD 바이트, 워드 감산

설 명

- BCD 데이터로서 감산결과 자리내림이 발생하면 F00108에 1이 세트되고 (ON) 발생하지 않으면 0이 세트된

다 (OFF)

- D, S1, S2가 바이트시 BCD 00~99이고 워드시는 BCD 0000~9999를 의미한다

- S1<S2인 경우 S1에서 S2를 감산하면 자리내림이 발생하여 F00108에 1이 세트되고, S1>=S2인 경우에 S1에

서 S2를 감산하면 F00108에 0이 세트된다.

R0

R SUBB D=S1-S2·바이트

R0

R DSUBB D=S1-S2·워드

기능

S1과 S2로 지정된 B.C.D 데이타를(바이트/워드) 감산하여 D로 지정된 레지스터에 저장한다.

프로그램

+S2 H4 7 H7 8

S1 H1 3 H8 7

F108 XX H6 7ON D

ADDB 바이트 DADDB 워 드

XX H8 9S1

XX H7 8+S2

F108 H6 1H6 7OFF D

프로그램 예 코 딩

NO 코 팅

1

2

3

4

5

6

7

8

9

10

11

STR DIF R20 ENT

FUN 43 ENT

(SUBB)

W7 ENT

3 ENT

W8 ENT

FUN 98 ENT

(DSUBB)

W9 ENT

W11 ENT

W13 ENT

STR F108 ENT

OUT M100 ENT

R00000

RSUBB W7=3-W8

DSUBB W9=W11-W13

F00108

(M200)

Page 76: 삼성 PLC SPC-10 사용자 설명서

BCD 바이트,워드 나눗셈

설 명

- 나눈 나머지 값은 바이트 나눗셈인 경우 W2581에 저장되며 W2582 값이 0이 된다.

- S2 (젯수)가 0인 경우는 F0109에 1이 세트된다. (ON)

R0

R DIVB D=S1/S2·바이트

R0

R DDIVB D=S1/S2·워드

DIV 바이트 DDIV 워 드

X X H8 7S1

X X H1 5*S2

기능

S1과 S2로 지정된 B.C.D 데이타를(바이트/워드) 감산하여 D로 지정된 레지스터에 저장한다.

프로그램

X X H0 6W2581 DH0 0H0 1

H1 3H8 7S1

H4 7 H7 8*S2

H0 0 H4 DW2581 DH0 0H3 7

NO 코 팅

1

2

3

4

5

6

7

8

9

10

11

STR DIF R0 ENT

FUN 46 ENT

(DIVB)

W6 ENT

W7 ENT

W8 ENT

FUN 100 ENT

(DDIVB)

W9 ENT

W11 ENT

W5 ENT

STR F109 ENT

OUT R1500 ENT

R00000

R

F00109

(R01500)

DIVB W6=W7/W8

DDIVB W9=W11/W5

프로그램 예 코 딩

Page 77: 삼성 PLC SPC-10 사용자 설명서

BCD 바이트,워드 곱셈

설명

- 곱한 결과의 상위 워드 값은 W2580에 저장한다.

R0

R MULB D=S1*S2·바이트

MULB 바이트 DMULB 워 드

X X H8 7S1

X X H7 8*S2

기능

S1과 S2로 지정된 B.C.D 데이타를(바이트/워드) 곱셈하여 D로 지정된 레지스터에 저장한다.

프로그램

X X H8 6W2580 DH0 0H6 7

H1 3 H8 7S1

H4 7 H7 8*S2

H7 0 H8 6W2580 DH0 6H6 2

R0

R·워드 DMULB D=S1*S2

NO 코 팅

1

2

3

4

5

6

7

8

9

STR DIF R0 ENT

FUN 45 ENT

(MULB)

W2 ENT

W1 ENT

10 ENT

FUN 99 ENT

(DMULB)

W10 ENT

W8 ENT

W6 ENT

R0

R MULB W2=W1*10

DMULB W10=W8*W6

프로그램 예 코 딩

Page 78: 삼성 PLC SPC-10 사용자 설명서

논리곱(AND)

설 명

- S1과S2의 논리곱을 D에 세트한다.

S1과 S2로 지정된 B.C.D 데이타를(바이트/워드) 곱셈하여 D로 지정된 레지스터에 저장한다.

프로그램

R0

R AND D=S1,S2

R0

R

·바이트

·워드 DAND D=S1,S2

NO 코 딩

1

2

3

4

5

6

7

8

9

STR DIF R0 ENT

FUN 47 ENT

(AND)

W0 ENT

R1 ENT

$FF ENT

FUN 101 ENT

(DAND)

W2 ENT

W4 ENT

$FFFF ENT

R00000

R AND W0=R00001,H00FF

DAND W2=W4 HFFFF

프로그램 예 코 딩

d←DS1 · S2

기능

AND 바이트 DAND 워 드

S1S

S2S

DS

b7

S1S

S2S

DS

b15 b0

100110 011001100 1

000000 001111111 1

000000 001001100 1

b0

X X 10 110110

X X 00 011010

X X 00 010010

S1 S2 D

0

0

1

1

0

1

0

1

0

0

0

1

Page 79: 삼성 PLC SPC-10 사용자 설명서

논리합

설 명

- S1과S2의 논리합을 D에 셋트한다.

기능

S1과 S2로 지정된 각 비트의 내용 (바이트/워드)를 논리 OR 연산한 결과를 D로 지정된 레지스터에 저장

한다.

프로그램

R0

R OR D=S1,S2

R0

R

·바이트

·워드 DOR D=S1,S2

NO 코 딩

1

2

3

4

5

6

7

8

9

STR DIF R0 ENT

FUN 48 ENT

(OR)

W2 ENT

R1 ENT

$003F ENT

FUN 102 ENT

(DOR)

W2 ENT

W0 ENT

W4 ENT

R00000

R OR W2=R0001,H003F

DOR W2=W0, W4

프로그램 예 코 딩

S1 S2 D

0

1

0

1

0

0

1

1

0

1

1

1

d←DS1 + S2

OR 바이트 DOR 워 드

S1S

S2S

DS

b7 b0

S1S

S2S

DS

b15 b0

1010101010 101010

0101010101 010101

1111111111 111111

X X 00 111001

X X 10 101010

X X 10 111011

Page 80: 삼성 PLC SPC-10 사용자 설명서

배타적 논리합

설 명

- 논리변수 S1, S2의 배타적 논리합을 S1. S2 + S1, S2

기능

S1과 S2로 배타적 논리합을 구해 그 결과를 D에 셋트한다.

프로그램

R0

R XOR D=S1,S2

R0

R

·바이트

·워드 DXOR D=S1,S2

NO 코 딩

1

2

3

4

5

6

7

8

9

STR R0 ENT

FUN 49 ENT

(XOR)

W2 ENT

W0 ENT

W1 ENT

FUN 103 ENT

W6 ENT

W4 ENT

W8 ENT

R0

R XOR W2=W0, W1

DXOR W6=W4, W8

프로그램 예 코 딩

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1

1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

W4

W8

W6

↓ ↓↓↓

R0

ON

DS1S

S2S

Page 81: 삼성 PLC SPC-10 사용자 설명서

증가

D로 지정된 레지스터의 내용을 1씩 증가시킨다.

증가된 결과가 자리올림이 발생하면 F108이 ON된다.

프로그램 예

설 명

바이트

워드

INC DR

R0

DINC DR

R0

프로그램 기 능

NO 코 딩

1

2

3

4

5

6

7

STR DIF R0 ENT

FUN 19 ENT

(INC)

W0 ENT

FUN 73 ENT

(DINC)

W2 ENT

STR F108 ENT

OUT M0 ENT

구 분 R0 DEC 바이트 DDEC 워드

수행전 OFF D (XX HFF) D (H13 HFF)

수행후 ON D (XX H00) D (H14 H00)

구 분 D2의 값 F108

수행전 H1119 0

수행후 H111A 1

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1

+1

실행전 DATA

실행후 DATA

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 0 1 0 0 0 1 0 0 0 1 1 0 1 0 W2

W2

INC W0

DINC W2

R0000

R

F108

( M0 )

Page 82: 삼성 PLC SPC-10 사용자 설명서

감소

D로 지정된 레지스터의 내용을 1씩 감소시킨다.

감소된 결과가 빌림이 발생하면 F108이 ON된다.

프로그램 예

설 명

바이트

워드

DEC DR

R0

DDEC DR

R0

프로그램 기 능

NO 코 딩

1

2

3

4

5

6

7

STR DIF R0 ENT

FUN 20 ENT

(DEC)

W0 ENT

FUN 74 ENT

(DDEC)

W2 ENT

STR F108 ENT

OUT M0 ENT

구 분 R0 DEC 바이트 DDEC 워드

수행전 OFF W0 (XX H80) W1 (H75 H80)

수행후 ON W0 (XX H7F) W1 (H75 H7F)

구 분 D2의 값 F108

수행전 H9009 OFF

수행후 H9010 ON

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1

-1

실행전 DATA

실행후 DATA

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 W2

W2

DEC W0

DDEC W2

R0000

R

F108

( M0 )

Page 83: 삼성 PLC SPC-10 사용자 설명서

대입식

S로 지정된 레지스터 값을 D에 저장합니다 (D<-S)

프로그램 예

설 명

바이트

워드

LET (D, S)R

R0

DLET (D, S)R

R0

구 분 R0 LET 바이트 DLET 워드

수행전 OFFD (XX H87)

S (XX H78)

D (H13 H87)

S (H47 H78)

수행후 OND (XX H78)

S (XX H78)

D (H47 H78)

S (H47 H78)

프로그램 기 능

NO 코 딩

1

2

3

4

5

6

7

STR DIF R0 ENT

FUN 32 ENT

(LET)

W0 ENT

45 ENT

FUN 86 ENT

(DLET)

W1 ENT

W3 ENT

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1 1 0 0 0 1 0 1 0 0 0 0 1 0 1 1S

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1 1 0 0 0 1 0 1 0 0 0 0 1 0 1 1D

대 입

LET (W0, 45)

DLET (W1, W3)

R0000

R (45 --> W0)

(W3 --> W1)

Page 84: 삼성 PLC SPC-10 사용자 설명서

BCD 증가

D로 지정된 레지스터의 내용을 1씩 증가 (BCD)하여 D에 저장합니다.

자리올림이 발생시 F108이 ON됩니다.

프로그램 예

[자리올림]

설 명

INCB W0

DINCB W2

R0000

R

F108

R (M0)

바이트

워드

INCB DR

R0

DINCB DR

R0

구 분 R0 INCB 바이트 DINCB 워드

수행전 OFF W0 (XX H89) W1 (H13 H89)

수행후 ON W0 (XX H90) W1 (H13 H90)

프로그램 기 능

NO 코 딩

1

2

3

4

5

6

7

STR DIF R0 ENT

FUN 21 ENT

(INCB)

W0 ENT

FUN 75 ENT

(DINCB)

W2 ENT

STR DIF F108 ENT

OUT M0 ENT

실행전 DATA 9 0 0 9

실행후 DATA

W2

W29 0 1 0

구 분 D2의 값 F108

수행전 H9009 OFF

수행후 H9010 ON

[기능]

Page 85: 삼성 PLC SPC-10 사용자 설명서

BCD 감소

D로 지정된 레지스터의 내용을 1씩 감소 (BCD)에 저장합니다.

자리빌림이 발생시 F108이 ON됩니다.

프로그램 예

[자리올림]

설 명

DECB W0

DDECB W2

R0000

R

F108

R (M0)

바이트

워드

DECB DR

R0

DECB DR

R0

구 분 R0 DECB 바이트 DDECB 워드

수행전 OFF W0 (XX H00) W1 (H75 H00)

수행후 ON W0 (XX H99) W1 (H74 H99)

프로그램 기 능

NO 코 딩

1

2

3

4

5

6

7

STR DIF R0 ENT

FUN 22 ENT

(DECB)

W0 ENT

FUN 76 ENT

(DDECB)

W2 ENT

STR DIF F108 ENT

OUT M0 ENT

실행전 DATA 8 5 7 4

실행후 DATA

W2

W28 5 7 3

구 분 D2의 값 F108

수행전 H8574 OFF

수행후 H8573 ON

[기능]

Page 86: 삼성 PLC SPC-10 사용자 설명서

로테이트 레프트 (RLC/DRLC)

D로 지정된 레지스터의 내용을 N비트 만큼 좌로 이동한다.

프로그램 예 NO 코 딩

1

2

3

4

5

6

7

8

9

10

11

12

13

14

STR DIF R0 ENT

FUN 32 ENT

(LET)

W0 ENT

3 ENT

STR DIF R1 ENT

FUN 26 ENT

(RLC)

W0 ENT

1 ENT

STR DIF R2 ENT

FUN 32 ENT

(LET)

W0 ENT

0 ENT

STR DIF F108 ENT

OUT M0 ENT

D는 바이트, N은 정수 0~7

D는 워드, N은 정수 0~15

기 능

RLC D, N

DRLC D, N

RLC (D, N)

DLRC (D, N)

R

R

RLC (W0, 1)

R0001

R

LET (W0, 0)

R0002

R

DATA

PULSE

RESET

LET (W0, 3)

R0000

R

F108

R CARRY(M0)

0 0 0 0 0 0 0 0

b7 b6 b5 b4 b3 b2 b1 b0R0001

0 0 0 0 0 0 0 0

F108 실행 전 W0

실행 전 W0 ON

Page 87: 삼성 PLC SPC-10 사용자 설명서

로테이트 라이트 (RRC/DRRC)

D로 지정된 레지스터의 내용을 N비트 만큼 우로 로테이트 합니다.

프로그램 예 NO 코 딩

1

2

3

4

5

6

7

8

9

10

11

12

STR DIF R0 ENT

FUN 32 ENT

(LET)

W0 ENT

3 ENT

STR DIF R1 ENT

FUN 27 ENT

(RRC)

W0 ENT

1 ENT

STR DIF R2 ENT

FUN 32 ENT

(LET)

W0 ENT

0 ENT

D는 바이트, N은 정수 0~7

D는 워드, N은 정수 0~15

기 능

RRC D, N

DRRC D, N

RRC (D, N)

DRRC (D, N)

R

R

RRC (W0, 1)

R0001

R

LET (W0, 0)

R0002

R

DATA

PULSE

RESET

LET (W0, 3)

R0000

R

0 0 0 0 0 0 0 0

b7 b6 b5 b4 b3 b2 b1 b0R0001

0 0 0 0 0 0 0 0

F108실행 전 W0

실행 전 W0ON

Page 88: 삼성 PLC SPC-10 사용자 설명서

시프트 레프트 (ROL/DROL)

D로 지정된 레지스터의 값을 N비트 만큼 좌로 시프트합니다.

N이 0인 경우에는 시프트하지 않습니다.

프로그램 예 NO 코 딩

1

2

3

4

5

6

7

STR DIF R0 ENT

OUT F108 ENT

STR DIF R1 ENT

FUN 28 ENT

(ROL)

W0 ENT

1 ENT

STR DIF R2 ENT

FUN 32 ENT

(LET)

W0 ENT

0 ENT

D는 바이트, N은 정수 0~7

D는 워드, N은 정수 0~15

ROL D, N

DROL D, N

ROL (D, N)

DROL (D, N)

ROL (W0, 1)

R0001

R

R0

R (F108)

LET (W0, 0)

R0002

R

DATA

PULSE

RESET

기 능

F108

MSB LSB

W0 0 0 0 0 0 0 0 0 1

b7 b6 b5 b4 b3 b2 b1 b0 F108 R0000 R0001

W0 0 0 0 0 0 0 0 0 1

W0 0 0 0 0 0 0 0 0 1

W0 0 0 0 0 0 0 0 0 1

Page 89: 삼성 PLC SPC-10 사용자 설명서

시프트 라이트 (ROR/DROR)

D로 지정된 레지스터의 값을 N비트 만큼 우로 시프트합니다.

N이 0인 경우에는 시프트하지 않는다.

프로그램 예 NO 코 딩

1

2

3

4

5

6

7

STR DIF R0 ENT

OUT F108 ENT

STR DIF R1 ENT

FUN 29 ENT

(ROR)

W0 ENT

1 ENT

STR DIF R2 ENT

FUN 32 ENT

(LET)

W0 ENT

0 ENT

D는 바이트, N은 정수 0~7

D는 워드, N은 정수 0~15

ROR D, N

DROR D, N

ROR (D, N)

DROR (D, N)

ROR (W0, 1)

R0001

R

R0

R (F108)

LET (W0, 0)

R0002

R

DATA

PULSE

RESET

기 능

F108

MSB LSB

W0 1 0 0 0 0 0 0 0 0

F018 b7 b6 b5 b4 b3 b2 b1 b0

W0 0 0 0 0 0 0 0 0 0

W0 1 0 0 0 0 0 0 0 0

W0 0 0 0 0 0 0 0 0 0

R0000 R0001

Page 90: 삼성 PLC SPC-10 사용자 설명서

논리 시프트 레프트

프로그램 예 NO 코 딩

1

2

3

4

5

6

7

STR DIF R0 ENT

FUN 30 ENT

(SHL)

W0 ENT

1 ENT

FUN 84 ENT

(DSHL)

W1 ENT

1 ENT

SHL W0000, 1

DSHL W0001, 1

R0

R

구 분 R0 SHL 바이트 DSHL 워드

실행 전 OFFF108

0 W0 ( XXXX XXXX 1101 1100 )

F108

0 W1 ( 0010 1100 1101 1101 )

실행 후 ONF108

1 W0 ( XXXX XXXX 1011 1000 )

F108

1 W1 ( 0101 1001 1011 1010 )

SHL D, N

DSHL D, N

SHL D,N

DSHL D,N

D는 바이트, N은 정수 0~7

D는 워드, N은 정수 0~15

D로 지정된 레지스터의 내용을 N비트 만큼 좌로 시프트합니다.

최하위비트에서 N비트 만큼 0이 들어갑니다

F108 0

MSB LSB

Page 91: 삼성 PLC SPC-10 사용자 설명서

논리 시프트 라이트

D로 지정된 레지스터의 내용을 N회 우로 시프트합니다.

최하위비트에서 N비트만큼 0이 들어갑니다.

프로그램 예 NO 코 딩

1

2

3

4

5

6

7

STR DIF R0 ENT

FUN 31 ENT

(SHR)

W0 ENT

1 ENT

FUN 85 ENT

(DSHR)

W1 ENT

1 ENT

SHR W0000, 1

DSHR W0001, 1

R0

R

구 분 R0 SHR 바이트 DSHR 워드

실행 전 OFFF108

W0 ( XXXX XXXX 1101 1100 )

F108

W1 ( 0010 1100 1101 1101 )

실행 후 ONF108

0 W0 ( XXXX XXXX 0110 1110 )

F108

0 W1 ( 0001 0110 0110 1110 )

SHR D, N

DSHR D, N

SHR D,N

DSHR D,N

D는 바이트, N은 정수 0~7

D는 워드, N은 정수 0~15

0 F108

MSB LSB

Page 92: 삼성 PLC SPC-10 사용자 설명서

절대치

- D로 지정된 레지스터의 내용의 절대치를 D에 저장 즉 D의 값이 음수 (최상위 비트가 1)일 경우

2의 보수를 취합니다.

- D는 워드 레지스터

프로그램 예 NO 코 딩

1

2

3

4

5

STR DIF R0 ENT

FUN 23 ENT

(ABS)

W0 ENT

FUN 77 ENT

(DABS)

W1 ENT

ABS W0000

DABS W0001

R0

R

구 분 R0 ABS 바이트 DABS 워드

실행 전 OFF W0 ( XX HFD ) W1 ( HFF HFD )

실행 후 ON W0 ( XX H03 ) W1 ( H00 H03 )

ABS D

DABS D

ABS D

DABS D

Page 93: 삼성 PLC SPC-10 사용자 설명서

1의 보수

D 로 지정된 레지스터의 내용이 1의 보수를 취합니다.

D는 워드 레지스터

프로그램 예 NO 코 딩

1

2

3

4

5

STR DIF R0 ENT

FUN 25 ENT

(NOT)

W0 ENT

FUN 79 ENT

(DNOT)

W1 ENT

NOT W0000

DNOT W0001

R0

R

구 분 R0 NOT 바이트 DNOT 워드

실행 전 OFF W0 ( XXXX XXXX 1101 1100 ) W1 ( 0010 1100 1101 1100 )

실행 후 ON W0 ( XXXX XXXX 0010 0011 ) W1 ( 1101 0011 0010 0011 )

NOT D

DNOT D

NOT D

DNOT D

Page 94: 삼성 PLC SPC-10 사용자 설명서

2의 보수

- D로 지정된 레지스터의 내용에 2의 보수를 취합니다.

2의 보수 = 1의 보수 (NOT) + 1

- D는 워드 레지스터

프로그램 예 NO 코 딩

1

2

3

4

5

STR DIF R0 ENT

FUN 24 ENT

(NEG)

W0 ENT

FUN 78 ENT

(DNEG)

W1 ENT

NEG W0000

DNEG W0001

R0

R

구 분 R0 NEG 바이트 DNEG 워드

실행 전 OFF W0 ( XX H03 ) W1 ( H00 H03 )

실행 후 ON W0 ( XX HFD ) W1 ( HFF HFD )

NEG D

DNEG DNEG D

DNEG D

Page 95: 삼성 PLC SPC-10 사용자 설명서

BCD 변환

S로 지정된 내용을 바이너리로 변환하여

D에 저장합니다. (BIN <- BCD)

프로그램 예 NO 코 딩

1

2

3

4

5

6

7

STR DIF R0 ENT

FUN 33 ENT

(BCD)

W0 ENT

W1 ENT

FUN 87 ENT

(DBCD)

W2 ENT

W1 ENT

BCD D, S

BIN D, S

DBCD D, S

DBIN D, SDBCD (D, S)

DBIN (D, S)

BCD (D, S)

BIN (D, S)

S로 지정된 내용을 BCD로 변환하여

D에 저장합니다 (BCD <- BIN)

BCD W0 W1

DBCD W2 W1

R0

R

BIN W4 W3

DBIN W6 W5

R0

R

BCD 바이트 DBCD 워드

실행 전W0 (XX H87)

W1 (XX H12)

W0 (H13 H87)

W1 (H13 H78)

실행 후W0 (XX H18)

W1 (XX H12)

W0 (H49 H84)

W1 (H13 H78)

BIN 바이트 DBIN 워드

실행 전W3 (XX H87)

W4 (XX H12)

W5 (H13 H87)

W6 (H13 H78)

실행 후W3 (XX H0C)

W4 (XX H12)

W5 (H05 H62)

W6 (H13 H78)

Page 96: 삼성 PLC SPC-10 사용자 설명서

7-6 전송 명령어

로드

어떤 제어공정에서 접점 R00000가 ON일 때마다 W100 레지스터에서 W199 레지스터까지 100개의 제어

패턴 (P1, P2,..., P100: 바이트 크기)을 1개씩 순서대로 출력모듈 R0016 (바이트 단위 제어 출력)

로 출력한 뒤 완료 출력 R01500을 ON시킨다.

이 때 접점 R001500을 리세트 신호로 사용한다.

S로 지정된 레지스터 내용을 절대번지로 취급하여

그 절대번지 레지스터 내용을 D에 저장합니다.

(주: 절대번지 참조)

프로그램 예

설 명

NO 코 딩

1234567

8910

1112

131415

STR DIF R0 ENTFUN 86 ENT

W0 ENT612 ENT

RST R1500 ENTSTR DIF R0 ENTFUN 52 ENT(LDR)

M2 ENTW0 ENT

FUN 73 ENT(DINC)

W0 ENTFUN 62 ENT(DAND D>)

W0 ENT711 ENT

SET R1500 ENT

LDR D, S

DLDR (D, S)

LDR (D, S)

DLDR D, S

DLET W000, 612

R001

R

LDR M0002, W0000

DINC W0000

R000

R

R01500(RST)

R01500(SET)| W0000>711 |

: 초기화

절대번지 615 : W100

: 패턴 복사

: 카운터 증가

: 완료 출력

레지스터 절대번지 내 용

W0100W0101W0102..W0198W0199

(612)(613)(614)..(710)(711)

P1P2P3..P99P100제어패턴

M0002

R0001

접점 R0000

출력패턴 M0002

번지수 W0000

출력패턴 R01500

P1 P2

611 612 613 614 ... 711 712

P100

Page 97: 삼성 PLC SPC-10 사용자 설명서

스토어

어떤 제어 공정에서 접점 R00000가 ON일 때마다 입력 모듈 R100에서 공정 측정정보 (바이트)를

입력받아 내부 레지스터 W0000 번지에서부터 차례로 저장하고 10개의 정보가 저장이 되면 완료

출력 R01500을 ON시킨다.

이 때 접점 R00001을 리세트 신호로 사용한다.

S로 지정된 레지스터 내용을 D로 지정된

레지스터 내용을 절대번지로 하는 레지스터에

보관합니다. (주: 절대번지 참조)

프로그램 예

설 명

NO 코 딩

1234567

8910

1112

131415

STR DIF R1 ENTFUN 86 ENT

W20 ENT512 ENT

RST R1500 ENTSTR DIF R0 ENTFUN 53 ENT(STO)

R0 ENTW20 ENT

FUN 73 ENT(DINC)

W20 ENTFUN 62 ENT(DAND D>)

W20 ENT521 ENT

SET R1500 ENT

STO S, D

DSTO (S, D)

STO (S, D)

DSTO S, D

DLET W0020, 512

R001

R

STO R0000, W0020

DINC W0020

R000

R

R01500(RST)

R01500(SET)| W0020>521 |

: 초기화

절대번지 512 : W0

: 정보 입력

: 카운터 증가

: 완료 출력

레지스터 절대번지 내 용

W0000W0001W0002..W0008W0009

(512)(513)(514)..(520)(521)

I1I2I3..I9I10제어패턴

R0001

접점 R0000

측정정보 R0001

번지수 W0020

완료출력 R01500

I1 I2

511 512 513 514 ... 521 522

P10

R0000

측정정보입력

Page 98: 삼성 PLC SPC-10 사용자 설명서

FOR-NEXT 문법

FOR~NEXT 명령 사이에는 분기명령 (JUMP, CALL 명령)이 올 수 있으며 횟수 (D값)의 변경이

가능하나 FOR~NEXT명령 수행 전 D값이 0이면 NEXT 다음 명령으로 분기한다.

D의 값을 1씩 감소시키면서 NEXT 명령까지 프로그램을 D값이 0이 될 때까지 반복 수행합니다.

프로그램 예

설 명

NO 코 딩

1234567891011

1213

141516

17

181920212223

242526

STR M0 ENTFUN 32 ENT

W30 ENT20 ENT

FUN 32 ENTW31 ENT512 ENT

FUN 32 ENTW34 ENT0 ENT

FUN 54 ENT(FOR)

W30 ENTFUN 106 ENT(DLDR)

W30 ENTW31 ENT

FUN 122 ENT(SUM)FUN 35 ENT(ADD)

W34 ENTW34 ENTW33 ENT

FUN 73 ENTW31 ENT

FUN 128 ENT(NEXT)FUN 32 ENT

R2 ENTW34 ENT

NEXT

FOR D FOR D

..

NEXT

LET (W30, 20)

LET (W31, 512)

LET (W34, 0)

FOR W30

DLDR (W32, W31)

SUM (W33, W32)

ADD (W34, W34, W33)

DINC W31

NEXT

LET (R2, W34)

M0

루프 반복 회수

테이블 선두번지

초기화

루프시작

1 워드 로드

1의 개수 카운트

1의 개수 누적

다음 워드 로드

루프 종료

1의 누적 수량 표시

Page 99: 삼성 PLC SPC-10 사용자 설명서

분리

S로 지정된 레지스터 값을 4비트씩 (N+1)개로 분리하여 D에 저장합니다.

프로그램 예NO 코 딩

1

2

3

4

5

STR DIF M0 ENT

FUN 109 ENT

(DIS)

W0 ENT

2 ENT

K0 ENT

DIS (D, N, S) DIS (D, N, S)

DIS (W0, 3, K0)

M0

R

구 분 실행 전 실행 후

M0

K0

W0

W1

W2

W3

OFF

1234 (Hex)

0000 (Hex)

0000 (Hex)

0000 (Hex)

0000 (Hex)

ON

1234 (Hex)

0004 (Hex)

0003 (Hex)

0002 (Hex)

0000 (Hex)

설 명

D 0 B1

D+1 0 B2

D+2 0 B3

D+3 0 B4

4 비트

S B4 B3 B2 B1

Page 100: 삼성 PLC SPC-10 사용자 설명서

결합

S로 지정된 레지스터에서 N+1개의 각 워드 중 하위 4비트를 결합하여 D에 저장합니다.

프로그램 예NO 코 딩

1

2

3

4

5

STR DIF M0 ENT

FUN 110 ENT

(UNI)

K0 ENT

W0 ENT

3 ENT

UNI (D, S, N) UNI (D, S, N)

UNI (K0, W0, 3)

M0

R

구 분 실행 전 실행 후

M0

K0

W0

W1

W2

W3

OFF

1234 (Hex)

2345 (Hex)

3456 (Hex)

4567 (Hex)

5678 (Hex)

ON

0065 (Hex)

2345 (Hex)

3456 (Hex)

4567 (Hex)

5678 (Hex)

설 명

S X B1

S+1 X B2

S+2 X B3

S+3 X B4

4 비트

b15 b11 b7 b3 b0

D B4 B3 B2 B1

Page 101: 삼성 PLC SPC-10 사용자 설명서

데코드

S의 하위 4비트값을 8-4-2-1코드로 해독 D에 저장

(주: S의 상위 12비트 값 무시)

S로 지정된 값을 8-4-2-1코드로 해독한 결과를 D에 저장합니다.

프로그램 예 NO 코 딩

1

2

3

4

STR DIF R0 ENT

FUN 119 ENT

(DECO)

W0 ENT

R1 ENT

DECO (D, S) DECO (D, S)

DECO (W0, R1)

R0

R

구 분 실행 전 실행 후

R0

R1

W0

OFF

7 (DEL)

1110 0011 0000 1110 (BIN)

ON

7 (DEL)

0000 0000 1000 0000 (BIN)

설 명

b15 b11 b7 b3 b0

D B4 B3 B2 B1

3 2 1 0

S 무시 B1

0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

1 0 0 0

1 0 0 1

1 0 1 0

1 0 1 1

1 1 0 0

1 1 0 1

1 1 1 0

1 1 1 1

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 1

0 0 1 0

0 1 0 0

1 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 1

0 0 1 0

0 1 0 0

1 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 1

0 0 1 0

0 1 0 0

1 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 1

0 0 1 0

0 1 0 0

1 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

Page 102: 삼성 PLC SPC-10 사용자 설명서

엔코드

8-4-2-1 코드로 변환된 S값을 D의 하위 8비트에 저장

(주: D의 상위 8비트 값 불변)

S로 지정된 값(정수, 레지스터)을 8-4-2-1코드로 변환한결과를 D에 저장합니다.

프로그램 예 NO 코 딩

1

2

3

4

STR DIF R0 ENT

FUN 120 ENT

(ENCO)

R1 ENT

W0 ENT

ENCO (D, S) ENCO (D, S)

ENCO (R1, W0)

R0

R

구 분 실행 전 실행 후

R0

R1

W0

OFF

1234 (HEX)

0010 0011 0000 1110 (BIN)

ON

120E (HEX)

0010 0011 0000 1110 (BIN)

설 명

b15 b7 b3 b0

D 불변

000 0 0 0 0

000 0 0 0 1

000 0 0 1 0

000 0 0 1 1

000 0 1 0 0

000 0 1 0 1

000 0 1 1 0

000 0 1 1 1

000 1 0 0 0

000 1 0 0 1

000 1 0 1 0

000 1 0 1 1

000 1 1 0 0

000 1 1 0 1

000 1 1 1 0

000 1 1 1 1

001 0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 1

0 0 1 X

0 1 X X

1 X X X

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 1

0 0 1 X

0 1 X X

1 X X X

X X X X

X X X X

X X X X

X X X X

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 1

0 0 1 X

0 1 X X

1 X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

0 0 0 0

0 0 0 1

0 0 1 X

0 1 X X

1 X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

15 11 7 3 0

S

Page 103: 삼성 PLC SPC-10 사용자 설명서

S로 지정된 값 (정수, 레지스터)을 7-SEG 표시 코드로 변환하여, D로 지정된 레지스터의 하위

바이트에 저장합니다.

7-세그먼트 디코드

S의 하위 4비트의 값을 SEG로 변환 D의 하위 8비트에 저장.

(주: D의 상위 8비트 값 불변)

프로그램 예 NO 코 딩

1

2

3

4

STR DIF R0 ENT

FUN 1201 ENT

(SEG)

R1 ENT

W0 ENT

SEG (D, S) SEG (D, S)

SEG (R1, W0)

R0

R

구 분 실행 전 실행 후

R0

R1

W0

0

1234 (HEX)

5678 (HEX)

0

127F (HEX)

5678 (HEX)

설 명

15 0

W0 5 6 7 8

15 11 7 0

R1 불변 불변 0 1 1 1 1 1 1 1

입력데이

타4BIT

출력 데이타표시

g f e d c b a

0 0 0 1 1 1 1 1 1 0

1 0 0 0 0 0 1 1 0 1

2 0 1 0 1 1 0 1 1 2

3 0 1 0 0 1 1 1 1 3

4 0 1 1 0 0 1 1 0 4

5 0 1 1 0 1 1 0 1 5

6 0 1 1 1 1 1 0 1 6

7 0 0 1 0 0 1 1 1 7

8 0 1 1 1 1 1 1 1 8

9 0 1 1 0 1 1 1 1 9

A 0 1 1 1 0 1 1 1 A

B 0 1 1 1 1 1 0 0 B

C 0 0 1 1 1 0 0 1 C

D 0 1 0 1 1 1 1 0 D

E 0 1 1 1 1 0 0 1 E

F 0 1 1 1 0 0 0 1 F

변환표

c

d

g

a

b

e

f

Page 104: 삼성 PLC SPC-10 사용자 설명서

비트 카운트

S로 지정된 값 (정수, 레지스터)에서 1인 비트수를 세어 D로 지정된 레지스터에 저장합니다.

- 비트 카운트: 워드 M0의 내용에서 “1”이 세트 되어 있는 비트 수량을 W0에 출력.

프로그램 예NO 코 딩

1

2

3

4

STR DIF R0 ENT

FUN 122 ENT

(SUM)

W0 ENT

M0 ENT

SUM (D, S) SUM (D, S)

SUM (W0, M0)

M0

R

구 분 실행 전 실행 후

R0

W0

W1

W2

W3

W4

W5

OFF

1111

2222

3333

4444

5555

6666

ON

4444

5555

6666

4444

5555

6666

워드 R1의 1인 비트수를

워드 W0에 저장

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 M0

9 : 비트수량 (W0의 비트수)

Page 105: 삼성 PLC SPC-10 사용자 설명서

프로그램 예

SC

RC

CC

SC

RC

CC

SC

RC

CC

R0

R1

R2

캐리 세트, 리세트, 클리어

특수 릴레이 F108 접점을 ON, OFF 반전합니다.

- R0 접점이 ON이면 F108 접점 ON

- R1 접점이 ON이면 F108 접점 OFF

- R2 접점이 ON이면 F108 접점 반전

1 STR R0 ENT

2 FUN 129 ENT(SC)

3 STR R1 ENT

4 FUN 130 ENT(SC)

5 STR R2 ENT

6 FUN 131 ENT(CC)

NO 코 딩

Page 106: 삼성 PLC SPC-10 사용자 설명서

전송

S로 지정된 레지스터에서 N개의 워드를 D로 지정된 위치로 복사합니다

실행 전 실행 후

R0 = ON

W0 = 1111 W3 = 4444

W1 = 2222 W4 = 5555

W2 = 3333 W5 = 6666

R0 = ON

W0 = 1111 W3 = 4444

W1 = 2222 W4 = 5555

W2 = 3333 W5 = 6666

프로그램 예

MOV (D, S, N) MOV (D, S, N)

MOV (W0, W3, 3)

R0

R

NO 코 딩

1

2

3

4

5

STR DIF R0 ENT

FUN 111 ENT

(MOV)

W0 ENT

W3 ENT

3 ENT

Page 107: 삼성 PLC SPC-10 사용자 설명서

V로 지정된 숫자 (정수)를 D에서 N개 반복 복사합니다.

정수의 반복 전송

구 분 실행 전 실행 후

W0

W1

W2

W3

W4

W5

1111

2222

3333

4444

5555

6666

0004

0004

0004

4444

5555

6666

프로그램 예

FMOV (D, N, V) FMOV (D, N, V)

FMOV (W0, 3, 4)

R0

R

NO 코 딩

1

2

3

4

5

STR DIF R0 ENT

FUN 112 ENT

(FMOV)

W0 ENT

3 ENT

4 ENT

Page 108: 삼성 PLC SPC-10 사용자 설명서

비트 전송

S로 지정된 비트 레지스터에서 N개의 비트를 D로 지정된 위치로 이동합니다

구 분 실행 전 실행 후

R15

(word)

F E D C B A 9 8 7 6 5 4 3 2 1 0

0 1 1 0 0 1 0 1 1 0 1 1 1 0 1 1

F E D C B A 9 8 7 6 5 4 3 2 1 0

0 1 1 0 0 1 1 1 0 1 1 1 1 0 1 1

프로그램 예

BMOV D, S, N BMOV (D, S, N)

BMOV (M1505, M1504, 5)

R0

R

NO 코 딩

1

2

3

4

5

STR DIF R0 ENT

FUN 113 ENT

(BMOV)

M1505 ENT

M1504 ENT

5 ENT

Page 109: 삼성 PLC SPC-10 사용자 설명서

비트 반복 전송

D로 지정된 비트 레지스터에서 N개의 비트를 V(1,0)로 반복 복사 합니다.

구 분 실행 전 실행 후

M15

(word)

F E D C B A 9 8 7 6 5 4 3 2 1 0

0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 1

F E D C B A 9 8 7 6 5 4 3 2 1 0

0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1

프로그램 예

BFMV D, N, V BFMV (D, N, V)

BFMV (M1500, 5, 1)

R0

R

NO 코 딩

1

2

3

4

5

STR DIF R0 ENT

FUN 114 ENT

(BFMV)

M1500 ENT

5 ENT

1 ENT

Page 110: 삼성 PLC SPC-10 사용자 설명서

비트 세트

D로 지정된 워드 레지스터에서 N (정수/레지스터)번째 비트를 1로 설정합니다.

구 분 실행 전 실행 후

R00000

R00001

W0000

W0001

OFF

16

0000 0000 0000 0000

0000 0000 0000 0000

ON

16

0000 0000 0010 0000

0000 0000 0000 0001

프로그램 예

BSET D, N BSET (D, N)

BSET (W1, R1)

BSET (W0, 5)

R0

R

NO 코 딩

1

2

3

4

5

STR DIF R0 ENT

FUN 115 ENT

(BSET)

W1 ENT

R1 ENT

FUN 115 ENT

W0 ENT

5 ENT

Page 111: 삼성 PLC SPC-10 사용자 설명서

D로 지정된 워드에서 N(정수/레지스터)번 째 비트를 0으로 설정합니다.

비트 리세트

구 분 실행 전 실행 후

R00000

R00001

W0000

W0001

OFF

15

1111 1111 1111 1111

1111 1111 1111 1111

ON

15

0111 1111 1111 1111

1111 1111 1111 0111

프로그램 예

BRST D, N BRST (D, N)

BRST (W0, R1)

BRST (W1, 3)

R0

R

NO 코 딩

1

2

3

4

5

STR DIF R0 ENT

FUN 116 ENT

(BRST)

W0 ENT

R1 ENT

FUN 116 ENT

W1 ENT

3 ENT

Page 112: 삼성 PLC SPC-10 사용자 설명서

비트 반전

D로 지정된 워드 레지스터에서 N(정수/Reg)번 째 비트의 내용을 반전합니다.

구 분 실행 전 실행 후

R1500

R1501

R0001

W0000

W0001

OFF

ON

7

0000 0000 0000 0000 (BIN)

1111 1111 1111 0111 (BIN)

OFF

ON

7

0000 0000 0010 0000 (BIN)

1111 1111 1111 1111 (BIN)

프로그램 예

BNOT D, N BNOT (D, N)

NO 코 딩

1

2

3

4

5

6

7

8

9

10

11

12

STR DIF R0 ENT

FUN 117 ENT

(BNOT)

W0 ENT

R1 ENT

STR F108 ENT

OUT R1500 ENT

STR DIF R1 ENT

FUN 117 ENT

W1 ENT

3 ENT

STR F108 ENT

OUT R1501 ENT

BNOT (W0, R1)

R0

R

F108

(OUT)R1500

BNOT (W1, 3)

R1

R

F108 R1501

(OUT)

W0의 R1번째 BIT 값을 반전

R1500 에 표시

W1의 3번째 BIT 값을 반전

R1501 에 표시

Page 113: 삼성 PLC SPC-10 사용자 설명서

비트 테스트

D로 지정된 워드 레지스터에서 N번 째 비트 내용을 F108로 표시 합니다.

설 명

구 분 실행 전 실행 후

R1500

R1501

R0001

W0000

W0001

OFF

ON

7

0000 0000 1000 0000 (BIN)

1111 1111 1111 0111 (BIN)

ON

OFF

7

0000 0000 1000 0000 (BIN)

1111 1111 1111 0111 (BIN)

프로그램 예

BTST D, N BTST (D, N)

NO 코 딩

1

2

3

4

5

6

7

8

9

10

11

12

STR DIF R0 ENT

FUN 118 ENT

(BTST)

W0 ENT

R1 ENT

STR F108 ENT

OUT R1500 ENT

STR DIF R1 ENT

FUN 118 ENT

W1 ENT

3 ENT

STR F108 ENT

OUT R1501 ENT

BTST (W0, R1)

R0

R

F108

(OUT)R1500

BTST (W1, 3)

R1

R

F108 R1501

(OUT)

W0의 R1번째 BIT 값을 반전

R1500 에 표시

W1의 3번째 BIT 값을 반전

R1501 에 표시

N의 값은 31을 초과한 범위까지 제어할 수 있습니다.

15 14 13 12 11~8 7~4 3 2 1 0

31 30 29 28 27~24 23~20 19 18 17 16

47 46 45 44 43~40 39~36 35 34 33 32

D

D+1

D+2

MSB LSB

Page 114: 삼성 PLC SPC-10 사용자 설명서

어드레스 점프

JMP 명령에서 지정한 L번호를 가지는 LBL 명령까지 분리하여 L번호는 0~31 범위의 정수이며,

LBL 명령에서 사용한 L번호를 중복 사용할 수 없으며, JMP 명령이 분기할 LBL 명령의 위치는

해당 JMP 명령 이후에 있어야 합니다.

프로그램 예

JMP L

LBL L

JMP L L 번지까지 점프 시작

LBL L 점프 끝

설 명

NO 코 딩

1

2

3

4

5

6

7

8

9

10

11

12

STR R0 ENT

FUN 123 ENT

(JMP)

3 ENT

FUN 127 ENT

(LBL)

0 ENT

FUN 127 ENT

3 ENT

STR R1 ENT

FUN 123 ENT

0 ENT

FUN 127 ENT

3 ENT

JMP 3

LBL 0

R0

.

.

.

.

R0 접점이 ON이면

LBL 3 으로 점프

LBL 3

JMP 0

LBL 3

R1Error : 해당 LBL 명령이

JMP 0 이전에 있음

Error : LBL 명령 중복사용

Page 115: 삼성 PLC SPC-10 사용자 설명서

점프

JMPS 명령은 JMPE 명령까지 이동합니다.

JMPS 명령은 JMPS 명령이후에 있어야 합니다.

프로그램 예

JMPS

JMPE

JMPS 점프 시작

JMPE 점프 끝

설 명

NO 코 딩

1

2

3

STR R0 ENT

FUN 127 ENT

(JMPS)

FUN 132 ENT

(JMPE)

JMPS

R0

.

.

R0 접점이 ON이면

JMPE 명령까지 점프합니다.

JMPE

.

.

Page 116: 삼성 PLC SPC-10 사용자 설명서

▷CALL1 명령이 수행되면 지정한 sb번호를 가지는 SBR 명령까지 점프하여 해당 서브루틴 프로그램을

수행합니다.

▷SBR 명령을 수행하다가 RET 명령을 만나면 CALL 명령 다음 명령으로 다시 복귀합니다. sb는 0~31

범위의 정수이며, SBR 명령에서 사용한 sb 번호를 중복 사용할 수 없으며 CALL 명령이 수행될 SBR

명령의 위치는 해당 CALL 명령 이후에 있어야 합니다.

▷SBR~RET사이에도 CALL 명령이 사용 가능 합니다.

프로그램 예

CALL sb

SBR sb

RET

CALL sb 서브루틴 호출

SBR sb 서브루틴 시작

RET 서브루틴 끝

설 명

CALL 12

SBR 12

CALL 10

RET

SBR 10

RET

R0

R0

F15

F15

.

.

.

.

.

.

.

.

- 접점 R0가 ON이면

SBR 12 명령으로 점프

- 서브루틴안에 있는

프로그램 수행

- R1 접점이 ON이면

SBR 10으로 점프

- CALL 12 다음 명령으로

복귀

- CALL 10 다음 명령으로

복귀

NO 코 딩

1

2

3

4

5

6

7

8

9

10

11

12

13

14

STR R0 ENT

FUN 124 ENT

(CALL)

12 ENT

FUN 126 ENT

(SBR)

12 ENT

STR R1 ENT

FUN 124 ENT

10 ENT

STR F15 ENT

FUN 133 ENT

(RET)

FUN 126 ENT

10 ENT

STR F15 ENT

FUN 133 ENT

Page 117: 삼성 PLC SPC-10 사용자 설명서

7.7 특수 기능 사용 예

7.7.1 SPC-10 특수 기능

외부 입력에 사용할 수 있는 특수 기능은 고속카운터, 펄스 캐취, 입력 시정수가

있습니다. 기본모듈의 모든 외부입력은 설정도니 입력 시정수를 가지고 외부 입력을

받아 들입니다. 외부 입력에 사용할 수 있는 3가지 특수 기능은 고소카운터, 펄스캐취,

입력 시정수 조정의 우선 순위를 가집니다. 즉, 고속 카운터로 사용된 외부 입력은 펄스

캐취나 입력시정수 조정으로 사용될 수 없으며, 고속 카운터나 펄스 캐취로 사용된 외부

입력은 입력 시정수 조정이 되지 않습니다.

고속 카운터, 펄스 캐취로 사용되지않은 기본 모듈의 모든 외부 입력은 설정된 입력

시정수를 가지고 입력을 받아들이게 됩니다. PLC의 초기 RUN시의 입력 시정수는 2ms로

설정되어 있습니다.

기본모듈의 R01500의 외부 출력은 펄스 출력이나 PWM 출력을 할 수 있으며, TR 출력

모듈을 사용시 5KHz의 출력을 할 수 있습니다.

주) 단 특수기능 (고속 카운터, 펄스 캐취, 입력시정수 조정, 펄스 출력)은 기본

모듈에서만 가능하고 증설 모듈에서 사용할 수 없습니다.

1. 고속 카운터 (High Speed Counter)

-2 채널, 24 비트 카운터

-UP, DOWN, UP/DOWN 엔코더 (A, B 상)

-Ring 카운터

-UP, DOWN, UP/DOWN: 10KHz

-엔코더 (A, B 상) : 5KHz

2. 펄스 캐취 (Pulse Catch)

- 스캔 타임보다 짧은 신호 입력 가능

- 150μs 이상의 신호를 캐취

- R28 (GPC-300, PCATCH)에 설정

3. 입력시정수 조정 (Input Delay)

- 외부 입력의 노이즈 제거

- 0~63ms로 조정 가능

- R27 (GPC-300, FTIME)에 설정

- 초기에는 R27=2ms로 설정됨

4. 펄스 출력 (Pulse Output)

- 20~5KHz (TR 출력 모듈 사용시)

- 16비트 펄스 개수 출력가능

- PWM 출력 가능

- R1500 출력 사용

특수기능

1) 고속카운터 (R000 00 - R000 07)

1) 펄스캐취 (R000 00 - R000 07)

1) 입력시정수조정 (R000 00 - R000 07)

Pulse Output (R01500)

TR 출력모듈사용시 5KHz 가능)

Page 118: 삼성 PLC SPC-10 사용자 설명서

7.7.2 특수기능사용시 외부입력 단자 및 레지스터 기능 설명

1. SPC 10 R0-29 REGISTER MAP

HIGH BYTE LOW BYTE HIGH BYTE LOW BYTE

R0

R1

R2

R3

BASE IN 0

EXT IN 1

EXT IN 2

EXT IN 3

R15

R16

R17

R18

BASE OUT 0

EXT OUT 1

EXT OUT 2

EXT OUT 3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13

R14

-------

HOSTRL

-------

HOENDL

-------

HOPVL

-------

-------

PFREQ

PSV

PPV

HOMODE

HOSTRL

HOSTRH

HOENDL

HOENDH

HOPVL

HOPVH

PMODE

PFREQ

PSV

PPV

R19

R20

R21

R22

R23

R24

R25

R26

R27

R28

R29

--------

HISTRL

--------

HIENDL

--------

HIPVL

-------

-------

-------

-------

-------

HIMODE

HISTRL

HISTRH

HIENDL

HIENDH

HIPVL

HIPVH

HFLAG

FTIME

PACTCH

-----

2. 고속 카운터

3. 펄스 출력

R0 - R4 : INPUT

R15 - R18 : OUTPUT

EXTERNAL REGISTER

R5 - R14 : INPUT

R19 - R29 : INPUT

SPECIAL FUNCTION

INTERNAL REGISTER

H0RN : HSCO RUN Enable HOR2 : R0002 Enable(Preset)HOUD/2 : 0:Up/Down, 1:Encode(A,B) HOR1 : R0001 Enable(Down/Bph)HORING : Ring Count Mode HOR0 : R0000 Enable(Up/Aph)HOPRST : Preset(H0STR -> HOPV)

7 6 5 4 3 2 1 0

MSB LSB

H0RUN H0UD/2 H0RING H0PRST ---- H0R2 H0R1 H0R0R4H0MODE

H1RN : HSC1 RUN Enable H1R6 : R0006 Enable(Preset)H1UD/2 : 0:Up/Down, 1:Encode(A,B) H1R5 : R0005 Enable(Down/Bph)H1RING : Ring Count Mode H1R4 : R0004 Enable(Up/Aph)H1PRST : Preset(H1STR -> H1PV)

MSB LSB

H1RUN H1UD/2 H1RING H1PRST ---- H1R6 H1R5 H1R4R19H1MODE

H1EQD : 1:Delete H1EQ Flag H0EQD : 1:Delete H0EQ FlagH1GT : H1PV > H1END H0GT : H0PV > H0ENDH1LT : H1PV > H1END H0LT : H0PV > H0ENDH1EQ : H1PV = H1END Latched H0EQ : H0PV = H0END Latched

MSB LSB

H1EQD H1GT H1LT H1EQ H0EQD H0GT H0LT H0EQR26HFLAG

PRUN : Pulse Out Run/StopPFUNC : 0:Pulse, 1:PWM ModePOUT : R1500 Output EnablePPRST : Preset(PSV -> PPV) When Pulse ModePCALL : All Pulse Output When PULSE Mode

R11PMODE

7 6 5 4 3 2 1 0

MSB LSB

PRUN PFUNC POUT PPRST ---- ---- ---- PALL

Page 119: 삼성 PLC SPC-10 사용자 설명서

7.7.3 고속 카운터 사용 예

Page 120: 삼성 PLC SPC-10 사용자 설명서

7.7.4 고속 카운터 내부 구조

Page 121: 삼성 PLC SPC-10 사용자 설명서

7.7.5 고속 카운터 프로그램 예

F00100

UP Down/2ph중 Up Down

Mode 선택

0002

H0UD/2(RST)R00406

H0RING(SET)R00405

H0R0(SET)R00400

H0R1(SET)R00401

H0R2(SET)R00402

H0RUN(SET)R00407

F00100DLET D=H0STRL S=2000

R0005

DLET D=H0STRH S=0R0006

DLET D=H0ENDL S=3000R0007

DLET D=H0ENDH S=0R0008

F00015DLET D=W0 S=H0PVL

R0009

DLET D=W2 S=H0PVHR0010

DLET D=W4 S=HFLAGR0026

0001

0003

0004

0005

0006

0007

0008

0012

0009

0010

0011

0013

HSC(High Speed Counter) ch#0 Up/Down Input Mode with Ring Counter

0014

Ch#0 고속카운터 입력가능

Ring Counter Mode 설정

R00004 입력사용 Up 입력

R00005 입력사용 Down 입력

R00006 입력사용 Preset 입력

초기값(str) = 2000

비교값 = 3000

현재값

Flag

고속 카운터의 현재치 변경은 초기치 -> 현재치로 넣어서 수행하므로 현재치에 넣고자 하는

값을 초기치에 넣어서 S/W Preset (HOPRST)나 외부 Preset을 구동하면 됩니다.

Page 122: 삼성 PLC SPC-10 사용자 설명서

F00100

UP Down/2ph 중 2ph(A,B상)

Mode 선택

0002

H1UD/2(RST)R01906

H1RING(SET)R01905

H1R4(SET)R01900

H1R5(SET)R01901

H1R6(SET)R01902

H1RUN(SET)R01907

F00100DLET D=H1STRL S=2000

R0020

DLET D=H1STRH S=0R0021

DLET D=H1ENDL S=3000R0022

DLET D=H1ENDH S=0R0023

F00015DLET D=W10 S=H1PVL

R0024

DLET D=W12 S=H1PVHR0025

DLET D=W14 S=HFLAGR0026

0001

0003

0004

0005

0006

0007

0008

0012

0009

0010

0011

0013

HSC(High Speed Counter) ch#1 Up/Down Input Mode with Ring Counter

0014

Ch#0 고속카운터 입력가능

R00000 입력사용 A상입력

R00001 입력사용 B상 입력

R00002 입력사용 Preset 사용

초기값(str) = 2000

비교값 = 3000

현재값

Flag

Page 123: 삼성 PLC SPC-10 사용자 설명서

7.7.6 펄스 캐취 사용 예

프로그램 예

I/O

REfreshPLC SCAN

I/O

REfresh

I/O

REfresh

F00100

LET PCATCH, $55

F00015

LET M000, R000

F00100은 초기 첫 SCAN ON 임.

External Input(R00000, 02, 04, 06)의

입력으로 들어오는 Pulse를 Catch.

Catch된 입력은 R000 Register에 저장되어있다.

Page 124: 삼성 PLC SPC-10 사용자 설명서

7.7.7 입력 Delay 사용 예

프로그램 예)

F00100

LET PCATCH, $55입력 Delay를 10mS로 설정하였다.

출하시 Default는 2mS이다.

R00000, 01은 고속카운터로 사용되었고

R00004, 05는 펄스캐취로 사용되었다면,

고속카운터와 펄스캐취로 사용되지 않는

입력은 입력 Delay의 영향을 받음.

입력 Delay는 기본 모듈의 입력 R000에 항상 적용되는 것으로 고속 카운터나

펄스캐취로 사용되지 않는 입력은 입력 Delay의 영향을 받게 된다.

Modified Input

Input

Cutting Cutting

Page 125: 삼성 PLC SPC-10 사용자 설명서

7.7.8 펄스 출력 사용 예

1) Pulse Mode (PMODE. 6~0)

PMODE (R11): Control

PFREQ (R12): Pulse 주파수 (20Hz ~5KHz)

PSV (R13): 펄스의 초기값

PPV (R14): 펄스의 현재값

PREQ로 정해진 주파수를 PSV만큼 R01500으로 출력함.

2) PWM MODE (PMOD. 6~1)

PMODE (R11): Control

PFREQ (R12): Pulse 주파수 (20Hz ~5KHz)

PSV (R13): PWM Duty (0~100%)

PPV (R14): 0

PFREQ으로 정해진 주파수를 PSV로 설정된 Duty로 연속적으로 R01500으로 출력함.

PWM의 duty는 주파수가 높아지면 duty의 분해능이 저하됨.

R01500 출력

20 ~5KHzDriver

pulse

Motor

Page 126: 삼성 PLC SPC-10 사용자 설명서

7.7.9 펄스 출력 프로그램 예

F00100

PSV로 초기펄스개수 설정.

PFREQ=5000Hz 설정

0002

POUT

(SET)R01105

PPRST

(SET)R01104

0001

0003

0004

0005

0006

0007

0008

0012

0009

0010

0011

0013

Pulse Output (Pulse Mode) 펄스 출력

R01500으로 출력을 나가게함.

PPV로 남아있는 펄스개수를

모니터링할 수 있음.

(MCR)

M200 DLET D=PFREQ S=5000R0012

DLET D=PSV S=15000R0013

PRUN(SET)R01107

(MCS)

M300

M200 DLET D=PFREQ S=20R0012

DLET D=PSV S=100R0013

PRUN

(SET)

R01107

PALL

INC D=M2

PRUN

(SET)

R01107

R01100

R

F00100

0002

POUT

(SET)R01105

PPRST

(SET)R01104

0001

0003

0005

0006

0007

PWM Output Test Program

M0 DLET D=PFREQ S=W0R0012

DLET D=PSV S=W1R0013

PRUN(SET)R01107

PFUNC

(RST)R01106

0004

PWM 출력

PWM mode 설정

PPV는 PWM 일 때는 펄스의

Duty를 나타냄.

Page 127: 삼성 PLC SPC-10 사용자 설명서

제 8장 통신 기능

8.1 개요

CPU 모듈과 컴퓨터 간을 RS-232C 방식이나 RS-485 (RS-422 호환) 방식으로 연결하여, CPU

모듈의 레지스터 내용을 읽음으로서 공정 제어 정보를 원거리 (RS-232C 방식 30m, RS-485

방식 1.2Km)에서 컴퓨터로 모니터링 할 수 있으며, 레지스터 내용을 수정함으로서 공정에

필요한 제어정보를 컴퓨터를 이용하여 CPU (PLC 시스템)에 지시할 수 있다.

8.2 구성

8.2.1 RS-232C 방식에 의한 통신 (1:1 통신)

8.2.2 RS-485방식에 의한 통신 (1:N 통신)

이 방식은 1대의 컴퓨터로 최대 32대의 PLC를 연결시켜 통신을 행 할 수 있다.

Page 128: 삼성 PLC SPC-10 사용자 설명서

8.3 사양 및 명령

통신 사양

접 속 규 격 RS-485 RS-232C DIP S/W 설정

전 송 거 리 1.2Km 30m

전 송 속 도 9600,4800,2400,1200 DIP S/W 설정

동 기 HALF DuFLex Asynchronous / Polling

P a r i t y No Parity

S t o p 비 트 1 bit

전 송 매 체 Shielded Cable

통신 명령 (Function Code)

통신명령 Query Function Code Response Function Code

READ BIT 01H 81H

WRITE BIT 02H 82H

READ WORD 03H 83H

WRITE WORD 04H 84H

READ BIT/WORD 05H 85H

WRITE BIT/WORD 06H 86H

통신방식: 반이중 비동기 (Half DuFLex Asynchronous)이며 No Parity 1 stop 비트 통신방

식 사용

Page 129: 삼성 PLC SPC-10 사용자 설명서

8.4 통신 Cable 배선도

사용방식에 따른 Cable의 배선은 다음과 같다.

1) RS-232C Cable 배선도

2) RS-485 Cable 배선도

SPC-10은 Direct로 PC와 통신이 불가하므로 Adaptor를 사용하시오.

1

2

3

4

5

6

7

8

9

Computer

1

2

3

4

5

6

7

8

9

PLC

TR

TR+

TR

TR+

다음 PLC로

1

2

3

4

5

6

7

8

9

Computer

1

2

3

4

5

6

7

8

9

PLC

CD

DSR

RXD

RTS

TXD

CTS

DTR

NC

GND

TXD

RXD

GND

Page 130: 삼성 PLC SPC-10 사용자 설명서

8.5 통신 Protocol

8.5.1 통신의 절차

① 통신을 원하는 CPU모듈의 고유번호와 Function Code를 정하여 Q(Query)를 송신한다.

② 해당 고유번호의 CPU가 Q를 수신하면 Q에 대한 인식정보 QA(QUERY ACKNOWLEDGEMENT)를

송신한다

③ 컴퓨터는 CPU모듈이 송신한 QA를 수신한 후 RR (Response Request)를 송신한다.

④ CPU 모듈은 RR을 수신하면 컴퓨터가 앞서 Q에 담아 송신했던 Function Code에 대한 처

리를 실시하고 그 결과를 담은 R(Response)를 송신한다.

8.5.2 통신시 유의 사항

1) CPU 모듈의 통신 최대 지연 시간

CPU 모듈은 Q나 RR을 수신한 뒤 응답을 할 최대 지연시간이 3초 이므로 컴퓨터는 Q나 RR

을 송신한 뒤 3초 이내에 CPU 모듈로부터 응답을 수신하지 못하면 송신 Frame의 이상 (고

유번호의 불일치, CRC 계산 잘못 등)이 있거나 기타 통신에러 (선로이상, 통신속도 불일

치)이므로 Q나 RR을 재송신 해야 한다.

2) CPU모듈의 고유번호

통신망에 연결된 모든 장치들은 각각의 통신을 위한 고유번호가 할당되어져야 하며 통신

시에 그 고유번호로 통신이 이루어져야 한다.

SPC 시리즈에서는 그 고유번호의 범위로 0-191사이에서 중복되지 않게 임의로 사용자가

정의해서 사용할 수 있으며 CPU 모듈의 고유번호 설정은 GPC나 PGM-300A를 사용하여 설정

한다.

단 고유번호를 255로 지정할 경우 망에 연결된 모든 CPU 모듈이 지정되므로 오직 1대가

통신망에 접속되는 경우에는 유용하게 사용할 수 있다.

또한 LINK모듈을 사용하는 경우에는 LINK모듈의 국번이 자동으로 고유번호로 설정되며 고

유 번호의 혼란을 피하기 위하여 LINK 설정범위인 0-31 사이를 피하여 191을 컴퓨터의 고

유번호로 정하고 CPU모듈의 고유번호는 32-190번 사이에서 설정하는 것이 유리하다.

QUERY

1

QUERY ACKNOWLEDGE

2

RESPONSE REQUEST

3

REQUEST

4

Page 131: 삼성 PLC SPC-10 사용자 설명서

8.5.3 통신 Protocol의 예

1) 통신에러가 없는 경우

2) QA가 수신되지 않는 경우

3) R이 수신되지 않는 경우

4) 반복되는 Function Code에 대한 응답

HOST

PLC

Q QA RR R

HOST

PLC

Q QA RR RQ

3초

HOST

PLC

RRQA RR RQ

3초

HOST

PLC

RRQA RRRQ R .....

Page 132: 삼성 PLC SPC-10 사용자 설명서

8.5.4 통신 프레임 (Frame)의 구성

Query/Response Frame

Query Acknowledge Frame

Error Response Frame

Error Response Frame

DA SA 80H 01 00 CRC

고 정

DA SA 00 01 00 CRC

고 정

SA DA 8X 01 Er CRC

DX SA

1. 잘못된 QUERY (길이지정 잘못 등)

2. 범위 지정 초과

3. 너무 긴 명령 (READ WORD 명령에서

n이 128을 초과하는 경우)

4. 기타 통신명령이 잘못된 경우

X=1~5

CRC-16 코드

INFORMATION 영역의 길이 (바이트)

0: 256 바이트

1~255:1~255바이트

(FUNCTION CODE)

발신지 고유번호

수신지 고유번호FRAME은 SA에서 DA로 전송되며 Query나

RR 전송 후 CPU로부터 발생하는 QA와 R

의 DA 및 SA는 서로 바뀌어 있음

DA SA I L INFORMATION CRC

Page 133: 삼성 PLC SPC-10 사용자 설명서

8.5.5 통신 명령 (Function Code)

A) READ BIT (기능 CODE: 01)

기능: 내외부 릴레이 (R, L, M, K, F 비트: 접점/출력) ON/OFF 상태를 읽음

연속하는 N개의 비트를 읽을 수 있다.

Query Frame

Response Frame

- 비트의 내용은 바이트로 표시되며 ON일 때 OFFH, OFF일 때 00H가 된다

SA DA 81 n B1 B2 ... Bn CRC

BASE+n-1 비트 내용

:

:

BASE+1 비트 내용

BASE+0 비트 내용

Q의 명령코드에 응답임을 표시하는

80H가 더해진 응답코드

송수신 고유번호가 비뀌어져 수신됨

DA SA 01 03 BASE n CRC

읽고자 하는 비트 갯수

Q

L H

비트 절대번지 (시작번지): 3,6절 참조

Page 134: 삼성 PLC SPC-10 사용자 설명서

B) WRITE BIT [FUNCTION CODE: 02]

기능: BASE로 지정된 릴레이 번지부터 연속하는 내외부 릴레이 (R, L, M, K, F)로 N-2

개의 ON/OFF 정보를 출력

Query Frame

- BASE+i의 내용이 0일 때 해당 릴레이가 OFF되고 0가 아니면 해당 릴레이가 ON된다.

Query Frame

DA SA 02 n BASE B1 B2 ... Bn CRC

BASE+x-1 비트 내용

BASE+1 비트 내용

BASE+0 비트 내용

SA DA 82 01 00 CRC

수행 완료 코드

02 명령에 대한 응답을 나타냄

02+80H (응답일 경우 가산됨)

R

Page 135: 삼성 PLC SPC-10 사용자 설명서

C) READ WORD [FUNCTION CODE: 03]

기능: BASE로 지정된 절대번지부터 연속하는 N개의 워드 (R, L, M, K F, W)를 읽음.

Query Frame

Response Frame

DA SA 03 03 BASE n CRC

읽고자 원하는 워드 개수

워드 절대번지 (시작번지)

Q

DA SA 83 L W1 W2 ... Wn CRC

BASE+n-1 비트 내용

:

:

BASE+1 번지 내용

BASE+0 번지 내용

L=n*2

L HL HL H

Page 136: 삼성 PLC SPC-10 사용자 설명서

D) WRITE WOR [FUNCTION CODE: 04]

기능: BASE로 지정된 절대번지부터 연속하는 N개의 워드값을 출력

DA SA 04 L BASE W1 W2 ... Wn CRC

BASE+n-1 비트 내용

BASE+1 워드

BASE+0 워드

워드 절대번지

(시작번지)

L=N+2+2

L HL HL H

Q

L H

SA DA 84 1 0 CRC

수행완료 코드

R

Page 137: 삼성 PLC SPC-10 사용자 설명서

E) READ BIT/WORD [FUNCTION CODE: 05]

기능: A로 지정된 비트 혹은 워드 레지스터 내용을 읽음.

-비트와 워드를 순서없이 혼용하여 읽을 수 있다.

절대번지 (비트/워드)

0 0 : 비트 번지

0 1 : 워드 번지

1 X : 사용 불가

A

15 14 13 0

DA SA 05 L A0 A1 ... An CRC

L=(n+1)*2

L H

Q

A0가 워드 번지를 지정하였으면

A0에 대한 워드 (2 바이트)

A0가 비트 번지를 지정하였으면

A0에 대한 비트 (1 바이트) 내용

Lx=워드번지 지정갯수*2+비트번지 지정갯수

DA SA 85 Lx D0 D1 ... Dn CRC'R

Page 138: 삼성 PLC SPC-10 사용자 설명서

F) WRITE BIT/WORD [FUNCTION CODE: 06]

기능: A로 지정된 비트 혹은 워드 레지스터의 내용을 출력.

- 비트와 워ㄷ를 순서없이 혼용하여 출력할 수 있다.

절대번지 (비트/워드)

0 0 : 비트 번지

0 1 : 워드 번지

1 X : 사용 불가

A

15 14 13 0

DA SA 06 L A0 D0 A1 D2 ... An Dn CRC

수행완료 코드

Q

A0가 워드 번지를 지정하였으면

A0에 대한 워드 (2 바이트)

A0가 비트 번지를 지정하였으면

A0에 대한 비트 (1 바이트) 내용

Lx=워드번지 지정갯수*2+비트번지 지정갯수

R SA DA 86 01 00 CRC'

Page 139: 삼성 PLC SPC-10 사용자 설명서

8.5.6 CRC (Cyclic Redundancy Code) 16-code 계산방법

통신 프레임이 에러 없이 전송되었는지 여부를 확인하기 위하여 송신 프레임에 대한

일종의 CHECK SUM CODE인 CRC를 INFORMATION의 끝에 추가로 전송함으로서 수신측이 수신

데이터를 1바이트씩 수신할 때 마다 CRC를 계산하여 가지고 있다가 최후에 송신측이

계산하여 전송한 CRC (INFORMATION 다음 2바이트)와 비교하여 수신 에러 여부를 결정한다

, BASIC으로 작성한 CRC-16 계산 서브루틴

, CRC_SUM: CRC-16 계산 수행 후 잉여코드 (송신할 CRC 내용)

, DATA: CRC-16 계산을 원하는 데이터 입력 (바이트 데이터)

1000 CRC_SUM=CRC_SUM XOR DATA

1010 FOR I=1 to 8

1020 CARRY=CRC_SUM AND 1

1030 CRC_SUM=CRC_SUM SHR 1

1040 IF CARRY=1 THEN CRC_SUM=CRC_SUM XOR 0A001H

1050 NEXT1

1060 RETURN

DA SA I L Information CRC

{PASCAL로 작성한 CRC-16 계산 서브루틴}

Procedure CRC16(Data:Byte);

Var

i:Bytes;

Begin

CRC_SUM := CRC_SUM xor Data;

for i:1 to 8 do

begin

if ((CRC_SUM and 1)=1)

then CRC_SUM := (CRC_SUM shr 1) xor $ A001

else CRC_SUM : CRC_SUM := CRC_SUM shr 1;

end;

end;

Page 140: 삼성 PLC SPC-10 사용자 설명서

예) 다음의 송신 프레임을 완성한다.

고유번호 32인 컴퓨터가 고유번호 35인 PLC CPU에 대해 R00000에서 R00003까지의 외부

입출력 비트값을 읽기 위한 송신명령을 구성한다.

예제 프로그램

100 TxBUFFER[0]=35 ;수신 ADDRESS

110 TxBUFFER[1]=32 ;송신 ADDRESS

120 TxBUFFER[2]=1 ;FUNCTION CODE

130 TxBUFFER[3]=3 ;INFORMATION 길이

140 TxBUFFER[4]=0 ;R0000의 절대번지

150 TxBUFFER[5]=0 ;

160 TxBUFFER[6]=4 ;READ BIT 수

170 CRC_Sum=0FFFFH ;초기화 (0이 아님)

180 FOR I=0 TO 6 ;HEADER와 INFORMATION

190 Data=TxBUFFER[1] ;1000번 SUBROUTINE에서 사용

200 GOSUB 1000

210 NEXT I

220 TxBUFFER[7]=CRC_Sum AND 0FFH3F ;CRC_Sum=0A33FH

230 TxBUFFER[8]=CRC_Sum SHR 8 ;A3

SUBROUTINE FOR CRC_16

1000

1010

1020

1030

1040

23H 20H 01 03 00 00 04 3F A3 숫자는 16진수임

4비트: (0~3)

비트 R00000 (시작번지)

INFORMATION 길이=3 (00 00 04)

비트 읽음 명령 (FUNCTION CODE:01)

송신측 고유번호

수신측 고유번호

Page 141: 삼성 PLC SPC-10 사용자 설명서

8.5.7 통신 예제 프로그램

다음은 Borland C로 작성된 통신 예제 프로그램이다.

*********************************************

* 예제 프로그램 및 통신 ROUTINE *

* 1993. 9. 10 Ver 1.00 *

*********************************************

#include <stdio.h.>

#include <dos.h>

#include <conio.h>

typedef int BOOL;

#define TRUE 1

#define FALSE 0

#define MyID 0xBF /*컴퓨터 고유번호 설정(191번)*/

#define TimeLimit 28 /*Time Out 시간 설정(3초)*/

#define TxWait 10 /*송신전 대기시간*/

#define RetryLimit 2 /*통신 Error시 재전송 횟수 설정(2번)*/

#define LOBYTE(x)(unsigned int) ((x)&0×00FF) /*본 Program에서 사용할 Byte 변수*/

#define HIBYTE(x)(unsigned int) ((x)&0×FF00)〉〉8)

unsigned int Plc1D; /*통신할 CPU 모듈의 고유번호 설정 변수*/

unsigned int Port_Type; /*컴퓨터의 통신 Port 설정 변수*/

unsigned int Port_Addr; /*컴퓨터의 통신 Port Address 설정 변수*/

unsigned int RxFrame[262]; /*수신 Frame 버퍼*

unsigned int TxFrame[262]; /*수신 Frame 버퍼*/

unsigned int CrcCode; /*CRC-16 Code 계산 버퍼*/

unsigned int Process_SQ; /*통신 Time_out 측정을 위한 Timer*/

unsigned int Index; /*Frame처리를 위한 Index*/

unsigned int RxWait; /*수신전 대기시간*/

unsigned int WatchDog; /*통신 Process Sequence Number*/

unsigned int RxIndexMax; /*수신 Frame의 길이*/

unsigned int TxIndexMax; /*송신 Frame의 길이*/

unsigned int RetryCount; /*통신 Error 횟수의 카운터*/

void Init_CommPort(void); /*통신부의 초기화*/

BOOL Communicatio(void); /*통신 처리의 Main :Time_out 감시*/

BOOL Comm_Process(void); /*통신 처리의 Subroutine*/

void GenerateRR(void); /*RR 통신 Frame 생성 Rouine*/

BOOL TxEnable_Check(void); /*송신이 가능한지 Buffer를 Check하는 Routine*/

BOOL RxEvent_Check(void); /*수신Data가 있는지 Check하는 Routine*/

void TxData_WR(unsigned int); /*통신 Port에 Data Write Routine*/

unsigned int RxData_RD(void); /*통신 Port Data Read Routine*/

void Crc16(unsigned int); /*CRC-16 Code 계산 Routine*/

Page 142: 삼성 PLC SPC-10 사용자 설명서

void main(void)

{

unsigned int i ;

unsigned int M[128], K[128]; /Example Register */

/* Initialization of GPC CARD */

Init _ CommPort0;

/*Selet PLC ID */

printf(“--------\nPLC-ID (CPU ID) ;”);

scanf(“%d”, & PLcID);

/*Example of Read-Register */

TxFramer[2]=3; /*READ WORD Function Code=3*/

TxFramer[3]=3; /*Numer Of Byte For Information=3*/

TxFramer[4]=0xc0 ; /*Base Address(M000=$00co) LOW*/

TxFramer[5]=0 ; /*Base Address HIGH*/

TxFramer[6]=128 ; /*Register Size*/

if(Communication())

{

Printf(“READ [M0000-M0127] : OK /n”);

for(i=0:i)〈=127;i++) M[i]=RxFramer[i*2+5]*256;

}

else printf(“READ [M0000-M0127]: Communication Error\n”)"

/*Example of Write-Register*/

TxFrame[2]=4; /*WRITE WORD Function Code=4*/

TxFrame[3]=130; /*Number of Byte For Information*/

TxFrame[4]=0×40; /*Base Address(K000=$0140) LOW*/

TxFrame[5]=1; /*Base Address HIGH*/

for(i=0;i〈=63;i++)

{

TxFrame[i*2+6)=LOBYTE(K[i]);

TxFrame[i*2+6)=LOBYTE(K[i]);

}

if(Communction()) printf(“WRITE [K0000-K0063]:OK\n”);

else printf(“WRITE [K0000-K0063] : Communication Error\n”);

TxFrame[2]=4; /*WRITE WORD Function Code=4*/

TxFrame[3]=130; /*Number of Byte For Information*/

TxFrame[4]=0×80; /*Base Address(K000=$0180) LOW*/

TxFrame[5]=1; /*Base Address HIGH*/

for(i=o;i〈=63;i++)

{

TxFrame[i*2+6)=LOBYTE(K[i+64]);

TxFrame[i*2+7)=LOBYTE(K[i+64]);

}

if(Communction()) printf(“WRITE[K0064-K0127]:OK\n”);

else printf(“WRITE[K0064-K0127]: Communication Error\n”);

}

Page 143: 삼성 PLC SPC-10 사용자 설명서

void Init _ CommPort()

{

unsigned int Divisor ;

unsigned int Baudrate_Factor;

clrscr();

/*Selection of Communication Port*/

printf(“Port Selection : COM[1]/ COM[2]/

GPC-232[3]/GPC-485[4]/GPC-Parallel[5]=”);

scanf(“%d”, & Port_Type);

while((Port_Type<1)‖(Port_Type〉5))

}

printf(“lllegal Port Number, Reentry Port Number=”);

scanf(“%d”, & Port_Type);

}

/*Selection of Baudrate for Serial Communication*/

Baudrate_Factor=0;

if(Port_Type!=5)

{

printf(“Baud-Rate Selecion:96001[1]/4800[2]/2400[3]=”);

scanf(“%d”, & Baudrate_Factor;

while((Baudrate_Factor<1)‖(1>3)

{

printf(“lllegal Baud-Rate Number, Reentry Baud-Rate Number=”);

scanf(“%d, & Baudrate_Factor);

}

}

/*Initialization of Communication Port*/

if(Port_Type==1) Port_Addr=0×3F0; /*COM1 Port Address*/

if(Port_Type==2) Port_Addr=0×2F0; /*COM2 Port Address*/

if(Port_Type〉=3)&&( Port_Type<=5 /*GPC Card Address*/

}

Port_Addr=0×300;

outportb(0×303, 0xC0); /*Mode=2 of 8255*/

outportb(0×303, 0x05); /*PC2=1of 8255:Disable IRQ2*/

outportb(0×301, 0xFF); /*PB0=1of 8255:TX Enable RS-485*/

outportb(0×303, 0x01 ; /*PC0=1of 8255:Serial Input Enable*/

if(Port_TYpe==3) outportb(0×303, 0x02); /*PC1=0of 8255:Select GPC-232*/

if(Port_TYpe==4) outportb(0×303, 0x03); /*PC1=1of 8255:Select GPC-485*/

if(Port_TYpe==5) outportb(0×303, 0x00); /*PC0=0of 8255:Select GPC-Parallelut*/

}

else outportb(Port_Addr+0×09,(inportb(Port_Addr+0×09)& 0xF0); /*Disable Interrupt*/

/*Setup of USART-Chip : 8250*/

if(Port_Type!=5)

{

if(Baudrate_Factor==3) Baudrate_Factor=4 ;

if((Port_Type==1)‖(Port_Type==2)) Divisor=12* Baudrate_Factor;

else DIvisor=40 *Baudrate_Factor;

RxWait=3 *Baudrate_Factor+1;

outportb(Port_Addr+0xoB, 0x80); /*Set of DLAB=1

outportb(Port_Addr+0x09, 0x00); /*Set of Hign Byte Divisor

outportb(Port_Addr+0x08, Divisor); /*Set of Low Byte Divisor

outportb(Port_Addr+0x0B, 0x03); /*Parity=None/Stop=1 /Length=8

BOOLL Communication(void)

Page 144: 삼성 PLC SPC-10 사용자 설명서

{

unsigned far *Timer;

unsigned int OldTime;

unsigned int NewTime;

TxFrame[0]=Plc1D; /*수신부 고유번호*/

TxFrame[1]=My1D; /*송신부 고유번호*/

WatchDog=0;Index=0; TxIndexMax=5;CrcCode=0xFFFF;RetryCount=RetryLimit;

Process_SQ=0;

do

{

Timer=(unsigned far*)0×046C; /*18.2Hz IBM-PC Built-in Timer Tick Counter*/

NewTime=*Timer;

if(WatchDog)〉TimeLimit)

{

WatchDog=0;RetryCount--;

if(Process_SQ〈5)Process_SQ=0; /* Retry Process*/

else Process_SQ=5;

}

if(!(((OldTime∧NewTime)& 0x02)==0))/*Cgecj 100 msec*/

{

WatchDog=WatchDog+1;

OldTime=NewTime;

}

}while((RetryCount==0) return(FALSE);

else return(TRUE);

}

BOOL Comm_Process(void)

{

/*Process_SQ=0 : Change to TX-Mode for Serial Port*/

/*Process_SQ=1 : Transmit Q-Frame*/

/*Process_SQ=2 : Change to RX-Mode for Serial Port*/

/*Process_SQ=3 : Find QA-Frame*/

/*Process_SQ=4 : Receive QA-Frame*/

/*Process_SQ=5 : Change to RX-Mode for Serial Port*/

/*Process_SQ=6 : Transmit RR-Frame*/

/*Process_SQ=7 : Change to RX-Mode for SERIAL Port*/

/*Process_SQ=5 : Change to RX-Mode for Serial Port*/

/*Process_SQ=6 : Transmit RR-Frame*/

/*Process_SQ=7 : Change to RX-Mode for SERIAL Port*/

/*Process_SQ=8 : Find R-Frame*/

/*Process_SQ=9 : Receive R-Frame*/

/*Process_SQ=10 : Success Communication Processing*/

BOOL Success; /*통신 Sequence 완료 점검 Flag*/

unsigned int Data;

Success=FALSE;

Page 145: 삼성 PLC SPC-10 사용자 설명서

case 3 :

case 8 : if(RxEvent_ Check()))

{

Data=RxData-RD();

if(Data==MylD)

{

CrcCode=0xFFFF;Index=1 ; RxIndexMax=5;

RxFrame[0]=Data;

Crc16(Data);

Process_SQ++;

}

}

break ;

case 4 :

case 9 : if(RxEvent_Check())

{

if(Index〈RxIndexMax-1)

{

RxFrame[Index]=RxData_RD();

Crc16(RxFrame[Index]);

if(Index==3)

{

if(RxFrame[3]==0) RxIndexMax=256+5;

else RxIndexMax=RxFrame[3]+5;

}

}

else if(Index==RxData_RD());

if(RxFrame[Index]!=LOBYTE(CrcCode))

{

if(Process_SQ〈5) Process_SQ=0:

else Porcess_SQ=5;

}

}

else if(Index==RxIndexMax)

{

RxFrame[Index]=RxData_RD();

if(RxFrame[Index]==HIBYTE(CrcCode)) Process_SQ++;

else if(Process_SQ〈5) Process_SQ=0; /*Petry Process*/

else Process_SQ=5;

}

Index++;

}

break;

case 10 : Success=TRUE;

break;

}

return(Success);

}

Page 146: 삼성 PLC SPC-10 사용자 설명서

switch(Process_SQ)

{

case 0 :

case 5 : if(Port_Type!=5)

{

if(Port_Type==4) outportb(0xFF); /*TxEnable for GPC-485*/

else outportb(Port_Addr_0x0C, (inportb(Port_Addr+0x0C)|0x02)); /*Set RTS*/

delay(TxWait);

}

if(Process_SQ==5) GenerateRR();

WatchDog=0;Index=0;TxIndexMax=5;CrcCode=0xFFFF;

Porcess_SQ++;

break;

case 1 :

case 6 : if(RxEvent_Check()) Data=RxData-RD();

if(TxEnable_Check())

{

if(Index<TxIndexMax-1)

{

TxData_WR(TxFrame[Index]);

Crc16(TxFrame[Index]);

if(Index==3)

{

if(TxFrame[3]==0) TxIndexMax=256+5;

else TxIndexMax= TxFrame[3]+5;

}

}

else if(index=TxIndexMax-1)

{

TxFrame[Index]=HIBYTE(CrcCode);

TxData_WR(TxFrame[Index]);

WatchDog=0;

Process_SQ++;

}

Index++;

}

break;

case 2 :

case 7 : if(Port_Type!=5)

{

delay(RxWait);

if(Port_Type==4) outportb(0x301, 0x00); /*RxEnable for GPC-485*/

else outport(Port_Addr+0x0C, (inportb(Port_Addr+0x0C)|0xFD)); /*Reset RTS*/

}

Process_SQ++;

break ;

case 3 :

case 8 : if(RxEvent_Check())

Page 147: 삼성 PLC SPC-10 사용자 설명서

void GenerateRR(void)

{

0TxFrame[2]=0;

TxFrame[3]=1;

TxFrame[4]=0;

}

void TxData_WR(unsigned int Data) /*Tx 1 Byte Data*/

{

if(Port_Type==5) outportb(Pot_Addr, Data);

else outportb(Port_Addr+0×08, Data);

}

unsigned int RxData_RD(void) /*Rx 1 Byte Data*/

{

unsigned int Data);

}

BOOL TxEnable_Check(void)

{

BOOL TxFlag;

if(Port_Type==5) TxFlag=((inportb(Port_Addr+0×02) & 0×80)==0×80);

else TxFlag=((inportb(Port_Addr+0×0D) & 0×20)==0×20);

return(TxFlag);

}

BOOL RxEvent_Check(void)

{

BOOL RxFlag;

if(Port_Type==5) TxFlag=((inportb(Port_Addr+0×02) & 0×20)==0×20);

else RxFlag=((inportb(Port_Addr+0×0D) & 0×01);

return (RxFlag);

}

void Crc16(unsigned int Data)

{

unsigned int i;

CrcCode=CrcCode∧(Data &0×00FF);

for(i=0;i〈7;i++)

{

if(CrCode 0×0001) CrcCode=(CrcCode〉〉1)∧0×A001;

else CrcCode=CrcCode〉〉1;

}

}

Page 148: 삼성 PLC SPC-10 사용자 설명서

제 9장 설치 및 배선

9.1 설치 환경 및 부착

BRAIN SPC-10의 설치에 있어서는 다음과 같은 장소는 피해야 한다.

No. 환 경

1 직사일광이 닿는 장소

2

주변 온도가 0~550C의 범위를 초과하는 장소

주변 온도가 660C를 초과하는 경우는 팬 등의 냉각장치를설치하여 550C 이하가 되도록 해야 한다. 또한

00C 이하인 경우에는 히이터 등을 설치하여 00C 이상이 되도록 한다

3

상대습도가 30~90%를 초과하는 장소

온도 변화가 급격하여 이슬이 맺히는 장소

이슬이 맺힐 우려가 있을 경우에는 히이터 등을 설치하여 이슬이 맺히지 않도록 한다.

4 부식성 가스, 가연성 가스가 있는 장소.

5 먼지, 염분, 철분이 많은 장소.

6 직접 진동이나 충격이 가해지는 장소.

No. 주 의 환 경

1부착 공사시 드릴작업에 의한 지꺼기 및 배선 찌꺼기 등이 모듈내에 떨어지지 않도록 특히 주의를 해야

한다.

2 BRAIN 모듈과 타기기 또는 구조물과의 사이는 50mm 이상의 공간을 두어서 통풍이 잘 되도록 한다.

3 발열이 많은 기기 (히이터, 트랜스, 대용량 저항 등)의 바로 위에 부착되는 것은 피해야 한다.

4 3000V 이상의 고압선, 동력선 (대전류 구동선)으로부터는 200mm 이상 이격하여야 한다.

Page 149: 삼성 PLC SPC-10 사용자 설명서

9.2 배선

BRAIN SPC-10 배선에 있어서 다음과 같은 항목을 고려한다.

CPU의 이상 검출에 전적으로 안전 대책을 의존하는 것은 피하고 비상정지 회로 등의 안전

에 관한 회로는 다음과 같이 외부 릴레이 등으로 구성한다.

No. 배 선 상 의 주 의 사 항

1

BRAIN의 접지단자(FG)는 강전 접지선과의 공용을 피하고 제3종 접지를 한다.

접지선의 길이는 20m 이하로 한다.

2입출력선을 다른 동력선과 동일한 덕터에 통하게 하거나 함께 묶어서는 안된다.

증설 케이블은 특히 입출력선과 동일한 덕터에 통하게 하거나 함께 묶어서는 안된다.

3입출력선의 배선 길이는 30m 이하로 한다. 부득이 30m를 초과하는 경우에는 입력선과

출력선을 분리할 때 주의해야 한다. (100m 이하)

BRAIN

FG2m2 이상

전원

외부출력

기기

운전

SPC-10