HPR4728: 프로그래밍 논리 제어 - 에피소드 3

출처: Hacker Public Radio원본 출처에서 열기 ↗
작성 Whiskeyjack16/09/2026 às 00:00436 조회
Foto: CC BY-SA / Hacker Public Radio
🎙 Whiskeyjack · Hacker Public Radio

이 쇼는 호스트에 의해 '청정'으로 표시되었습니다.

--------------------

01 소개

이 에피소드는 8부 시리즈 중 세 번째입니다.

02

이전 에피소드에서 다루었습니다.

* 산업 제어용 컴퓨터의 초기 역사

* PLC의 초기 역사, 그리고 이름이 어떻게 붙여졌는지에 대한 설명

* 주요 브랜드는 누구인가?

* 그들은 물리적으로 어떤 모습인가?

추상 기계 아키텍처의 기본 설명

PLC 프로그램의 간략한 개요

스캔 개념

주요 PLC 프로그래밍 언어

부차적 PLC 프로그래밍 언어

각 프로그래밍 언어의 상대적 인기도

03

이 에피소드에서는 처음 널리 사용되기 시작했을 때의 초기 PLC 중 하나를 살펴보며 시작할 것입니다.

전적으로 포괄적으로 시도하지 않을 것입니다. 저는 제가 가지고 있는 제한된 시간 내에 광범위한 개요를 제공할 것입니다.

더 간단하고 제한적인 기능 때문에 오래된 모델로 시작했습니다.

--------------------

04 앨런 브래들리 PLC/2

앨런 브래들리 PLC/2는 1977년에 시장에 출시되었습니다.

이것은 그들의 이 분야에 대한 첫 번째 시도가 아니었지만, 가장 성공적인 첫 시도였습니다.

저는 그들의 초기 제품 라인에 대한 포괄적인 역사에 대해 알지 못하지만, 초기 주요 판매 모델 중 하나는 PLC2/30이었습니다.

이것은 또한 그들의 1771 시리즈로 알려져 있습니다.

--------------------

05 물리적 레이아웃

CPU 모듈은 I/O 랙 옆에 놓인 큰 금속 상자였으며, 케이블로 그것에 연결되었습니다.

I/O 랙은 앞면이 열린 상자였으며, 그 안에는 I/O를 담고 있는 높고 좁은 상자들을 슬롯에 끼워 넣을 수 있었습니다.

06

백플레인은 뒷면에 걸쳐져 있으며, I/O를 CPU에 연결합니다.

여러 개의 랙은 케이블로 연결될 수 있습니다.

PLC2/30의 경우 최대 896개의 디지털 I/O 포인트를 가질 수 있습니다.

07

랙은 315mm 높이에 247mm에서 610mm 사이의 폭을 가지며, 4, 8, 12, 16 슬롯 옵션의 다양한 랙들이 있습니다.

CPU는 랙과 같은 높이에 있으며 대략 사각형 윤곽을 가지고 있습니다.

08

마이크로 일렉트로닉스의 발전으로 CPU 모듈은 크기가 줄어들어 랙의 슬롯에 들어갈 수 있게 되었으며, 이는 PLC의 표준이 되었습니다.

--------------------

내부 전자 장치

초기 PLC/2 모델은 어떤 종류의 8비트 프로세서를 사용했으며, 일부 정보원들은 인텔 8080이라고 말합니다.

10

또한, 그들은 논리 코프로세서로 AMD 2900 비트 슬라이스 프로세서를 네 개 사용했습니다.

비트 슬라이스 프로세서에 익숙하지 않다면, 이들은 프로세서의 4비트 수직 슬라이스와 같은 칩이며, 논리 칩과 함께 결합되어 완전한 CPU를 형성할 수 있습니다.

이러한 것들이 미세컴퓨터를 구성하는 데 사용되었습니다.

11

이들은 초기 PLCs에서 코프로세서로 사용되었습니다. 왜냐하면 마이크로프로세서만으로는 사용자 프로그램 실행을 충분히 빠르게 처리할 수 없었기 때문입니다.

또한, 마이크로프로세서 하나 또는 그 이상이 전체 운영과 시스템 관리를 조정하기 위해 사용되었습니다.

12

마이크로프로세서가 더 빠르고 강력해짐에 따라 논리 코프로세서의 필요성은 감소했으며, 결국에는 삭제되었습니다.

초기 버전은 자기 코어 메모리를 사용했습니다.

나중에 고체 상태 RAM으로 전환했습니다. 아마도 정적 RAM일 것입니다.

13

PLC 내부에 어떤 프로세서가 있는지에 대한 세부 정보는 제조업체가 일반적으로 그런 정보를 공개하지 않기 때문에 얻기 매우 어렵습니다.

사용자가 단순히 블랙박스로 보도록 바랍니다.

--------------------

데이터 테이블 14

프로그래머의 관점에서 가장 먼저 이해해야 할 중요한 것은 데이터 테이블입니다.

데이터 테이블은 PLC의 데이터 메모리입니다.

15

PLC2의 경우, 이는 16비트 단어의 배열입니다.

각 단어는 8비트 바이트 두 개로 구성됩니다.

오크탈로 비트와 단어를 모두 주소 지정합니다.

16

오크탈 숫자는 0부터 7까지의 계산 체계를 따릅니다.

7 이후의 다음 숫자는 10입니다.

그 후 계산은 11, 12, 13 등으로부터 시작해 17, 20, 21 등으로 진행됩니다.

오크탈 각 자릿수는 정확히 3 비트를 사용합니다.

17

PLC2 표기법에서 개별 비트들은 단어 뒤에 슬래시(/)를 지정한 후 비트를 명시하여 주소 지정될 수 있습니다.

예를 들어, 030/12는 030 단어의 12 비트입니다. 기억하세요, 이건 오크탈이므로 12는 십진법으로 세면 12번째 비트가 아닙니다.

18 메모리 조직

PLC2/30의 데이터 테이블은 다음과 같은 구성을 가지고 있습니다.

19

주소 000부터 007은 프로세서 워크 영역 1입니다.

이는 사용자가 접근할 수 없습니다.

20

주소 010부터 100을 제외한 부분은 출력 이미지 테이블입니다.

이는 입출력 출력의 메모리 매핑 이미지입니다.

010부터 077은 랙 1을 위한 것입니다.

020부터 027은 랙 2를 위한 것입니다.

이 패턴은 랙 7까지 계속되며, 이는 070부터 077입니다.

21

단어 주소 100에서 107은 프로세서 워크 영역 번호 2입니다.

사용자도 접근할 수 없습니다.

22

단어 주소 110부터 200까지가 입력 이미지 테이블입니다.

이것은 입출력 입력의 메모리 매핑 이미지입니다.

이것은 출력 이미지 테이블과 같은 방식으로 구성되어 있으며, 110에서 177까지입니다.

110에서 117은 랙 1을 위한 것입니다.

120에서 127은 랙 2를 위한 것입니다.

이 패턴은 랙 7까지 계속되며, 170에서 177까지입니다.

23

이미지 출력 테이블과 이미지 입력 테이블이 특정 랙 슬롯에 대해 동일한 것처럼 보입니다.

그들은 실제로 그렇게 합니다.

특정 랙 슬롯이 어떤 주소로 매핑되는지는 그 슬롯에 입력 카드나 출력 카드가 있는지에 따라 달라집니다.

24

200에서 277까지의 주소는 타이머/카운터 누적 값을 위한 것입니다.

누적 값은 현재 시간이나 카운트입니다.

25

300에서 377까지의 주소는 타이머/카운터 사전 설정 값을 위한 것입니다.

사전 설정 값은 타이머나 카운터가 원하는 값에 도달했을 때 이를 표시하게 하는 대상 시간이나 카운트입니다.

26

400 이상의 메모리는 데이터 저장 영역과 사용자 프로그램 영역으로 분할할 수 있습니다.

데이터 저장 영역은 프로그램에서 사용하기 위해 저장하는 데이터가 I/O 또는 타이머 및 카운터에 포함되지 않는 곳입니다.

사용자 데이터와 프로그램 크기 사이의 올바른 균형을 맞춰야 합니다.

27

위에 대해 변경하고 구성할 수 있는 다양한 사항들이 있지만, 이 글에서는 PLC2에 대한 자세한 내용을 다루지 않습니다.

=

그러나 초기 모델 PLC의 메모리 용량에 대해 어느 정도 이해하고 있어야 합니다.

이해해야 할 점은 I/O가 메모리 주소에 매핑된다는 것과,

다른 메모리 범위가 다른 목적으로 사용됩니다.

28

모든 메모리 관리는 수동으로 이루어졌습니다.

사용자는 어떤 메모리 주소가 어떤 목적으로 사용될지 추적해야 했습니다.

앨런 브래들리는 각 용도를 계획하고 문서화할 수 있는 종이 양식을 친절하게 제공했습니다.

프로그래머의 일은 메모리를 효율적이고 논리적으로 사용하는 것인데, 동시에 미래의 변경을 위한 공간을 남겨야 합니다.

--------------------

사용자 프로그램 29

사용자 프로그램은 명령어로 구성됩니다.

각 명령어는 일반적으로 메모리 한 단어를 사용합니다.

그러나 복잡한 명령어는 최대 8단어의 메모리를 사용할 수 있습니다.

30

메인 프로그램이 있습니다.

이를 C 언어의 "메인" 함수와 비슷하다고 생각할 수 있습니다.

프로그램이 도움이 되지 않는다면, 단순히 이것이 당신의 프로그램이 시작되는 곳이라고 생각하면 됩니다.

주요 프로그램은 END 문까지 한 단계씩 계속 진행됩니다.

31

또한 서브루틴 영역이 있습니다.

주요 프로그램은 점프 서브루틴(JSR) 명령어를 사용하여 서브루틴을 호출합니다.

T3 프로그래밍 터미널

PLC2가 출시되었을 때, 노트북과 같은 것들은 아직 미래의 일이었습니다.

심지어 첫 번째 컴팩트 포터블 수트케이스 스타일 PC도 몇 년 후였습니다.

사실, 첫 번째 PLC/2는 첫 번째 Altair PC 키트 출시 후 얼마 되지 않아 출시되었습니다.

33

따라서 초기 프로그래밍은 T3라는 특수 프로그래밍 터미널을 사용하여 수행되었습니다.

T3는 작은 CRT가 내장된 서류 가방 크기의 상자였으며, 화면 아래에 키보드가 부착되어 있었습니다.

이것이 초기의 휴대용 PC처럼 들릴 수 있지만, 사실 몇 년 전에 선구되었습니다.

34

키보드는 타자기나 QWERTY 스타일이 아니었습니다.

그것은 그래픽 기호를 가진 막대 키패드였습니다.

이전 회로 다이어그램 에피소드를 기억하세요. 릴레이를 사용하여 어떻게 문서화되었는지, 그리고 이러한 기호가 도면 상의 회로 기호로 어떻게 표현되었는지.

T3 터미널 키패드는 이러한 도면 기호의 단순화된 변형에 해당하는 기호를 가지고 있었습니다.

35

프로그래머가 키패드에서 이러한 기호 중 하나를 누르면, 해당 기호가 현재 커서 위치에 화면에 나타났습니다.

프로그래머는 키패드의 숫자 부분을 사용하여 기호가 대응해야 하는 데이터 주소를 입력할 수 있었습니다.

36

엔지니어, 기술자 또는 전기기술자는 하드웨어 구성 요소를 제어하는 기존 지식을 활용하여 완전히 그래픽 환경에서 프로그램을 생성하고 입력할 수 있었습니다.

그들은 컴퓨터를 프로그래밍하는 것으로 여기지 않았습니다. 그들은 컴퓨터와 전혀 관련이 없는 다른 것으로 여겼습니다.

37

프로그래밍은 T3가 PLC에 연결되어 PLC가 프로그램 모드에 있을 때 이루어졌습니다.

명령어는 터미널에서 직접 PLC 메모리에 입력되었습니다.

프로그램은 카세트 테이프에 저장되거나 복원될 수 있었습니다.

프로그램은 PLC가 실행 모드로 설정될 때 실행되었습니다.

38

게다가, T3 터미널은 프로그램의 온라인 디버깅을 허용했습니다.

T3가 실행 모드에 연결되면 계층 다이어그램이 실시간으로 업데이트됩니다.

논리 조건이 참일 경우 강조 표시됩니다.

논리 조건이 거짓일 경우 비강조 상태로 표시됩니다.

39

특정 단계를 관찰함으로써 기대하는 그래픽 지침 시리즈의 모든 단계가 패턴에 따라 강조 표시되는지 확인할 수 있습니다. 이는 단계의 최종 출력이 예상대로 참 또는 거짓이 되게 합니다.

이는 소프트웨어 버그와 하드웨어 결함을 찾는 데 있어 매우 유용한 진단 도구였습니다.

프로그래밍 터미널은 산업 유지보수 전기 기술자의 필수 장비 중 필수적인 부분이 되었습니다.

40

결국 휴대용 PC와 나중에 노트북이 출시되면서 T3는 구식이 되었고 이러한 기능은 표준 PC에서 실행되는 소프트웨어으로 이전되었습니다.

그러나 여전히 본질적으로 같은 방식으로 작동합니다.

추가 기능이 추가되었습니다. PLC에 연결되지 않은 상태에서도 프로그램을 작성할 수 있는 기능이 포함되었습니다.

메모리 주소에 설명적인 라벨과 주석을 추가하여 문서화하고 프로그램 읽기를 돕습니다.

교차 참조 함수는 어떤 주소가 무엇에 사용되었는지 찾는 것을 더 쉽게 만들어 줍니다.

등.

--------------------

41 명령어

이제 사용할 수 있는 다양한 종류의 명령어를 나열해 보겠습니다.

모든 것을 설명하려고 하지는 않겠지만, 적어도 이 명령어들이 어떻게 프로그래밍되었는지에 대한 흐릿한 아이디어를 드릴 것입니다.

Allen Bradley의 이름을 사용하여 이들을 설명하겠습니다. 이는 다른 제조업체들이 사용하는 이름과 일치하지 않는다는 점을 강조합니다.

42 릴레이 유형 지침

이 지침들은 부울 지침이며, 다음의 것으로 구성됩니다.

43 입력 지침

이러한 지침들은 메모리의 비트들을 검사하고, 주소하는 비트의 값에 따라 논리 상태를 제공합니다.

입력 지침은 랙의 왼쪽에 시작하고, 더 많은 것들이 추가됨에 따라 오른쪽으로 작업합니다.

검사 온 - 주소하는 비트가 1로 설정되어 있을 때 진실입니다.

검사 오프 - 주소하는 비트가 0으로 설정되어 있을 때 진실입니다.

44 출력 지침

이 비트들은 그 전에 이어지는 부울 논리 조건의 합에 따라 켜지거나 꺼집니다.

출력 지시는 계단의 오른쪽에 있습니다.

항상 적어도 하나의 출력 지시가 있어야 합니다.

출력 에너지화 - 논리 조건이 참일 때, 비트를 1로 설정합니다.

논리 조건이 거짓일 때, 비트를 0으로 설정합니다.

45

출력 락트 - 참일 때, 비트를 켭니다.

거짓일 때는 아무것도 하지 않습니다.

출력 언락트 - 참일 때, 비트를 끕니다.

거짓일 때는 아무것도 하지 않습니다.

46개의 지침 분기

이들은 자체적으로 아무것도 하지 않지만, 도면 상의 배선 연결을 만듭니다.

이들은 위에서 언급된 지침들이 같은 단계에서 병렬로 배치될 수 있도록 중요한 역할을 하여, OR 조건을 지정할 수 있습니다.

이를 OR 또는 OR 아님(NOT) 지침으로 전환하는 것으로 생각할 수 있습니다.

--------------------

47개의 타이머 및 카운터 지침

타이머와 카운터는 이름에서 알 수 있듯이, 타이밍 및 카운트 연산을 수행하는 지침입니다.

이들은 별도의 미리 설정된 값과 누적된 값을 가지고 있습니다.

그들은 사다리 난의 오른쪽에 위치하며, 그 왼쪽의 논리 상태에 따라 작동하는 출력 명령의 한 종류입니다.

48

타이머와 카운터는 이진 부호 십진수, 또는 BCD 값에서 작동합니다.

BCD 값은 각각 4비트의 메모리 공간을 차지합니다.

그러나 헕사데시와 달리, 유효한 값은 0부터 9까지의 값입니다.

헕사데시에서 A부터 F까지의 값은 BCD에서는 유효한 값이 아닙니다.

49

미리 설정된 값과 누적된 값은 16비트 단어로 저장됩니다. 첫 12비트는 최대 3개의 BCD 자릿수를 저장하는 데 사용됩니다.

남은 상단 4비트는 타이머 또는 카운터가 완료되었는지 여부를 나타내는 명령 상태 비트 등 다양한 다른 기능을 저장하는 데 사용됩니다.

50개의 타이머

타이머 시간 기반은 타이머 해상도에 해당합니다.

시간 기반은 1.0초, 0.1초, 0.01초입니다.

따라서 1초 시간 기반을 가진 타이머는 0초부터 999초까지 1초 해상도로 측정할 수 있습니다.

0.1초 시간 기반을 가진 타이머는 0초부터 99.9초까지 0.1초 해상도로 측정할 수 있습니다.

51

세 가지 유형의 타이머가 있습니다.

타이머 온 지연 (또는 TON)

타이머 오프 지연 (또는 TOF)

유지 타이머 (또는 RTO)

52

타이머는 rung 조건이 참일 때 시간을 지연하고, 거짓이 되면 리셋됩니다.

오프 지연 타이머는 rung 조건이 거짓이 된 후 시간을 지연하고, 다시 참이 되면 리셋됩니다.

유지 타이머는 온 지연 타이머와 유사하지만, Retentive Timer Reset(RTR) 명령에 의해 재설정될 때까지 누적된 값을 유지합니다.

일반적으로 타이머를 시작하고 그 후 논리 내에서 "완료" 비트를 모니터링합니다.

53 카운터

카운터는 이벤트를 계산합니다.

다음과 같은 종류가 있습니다.

54

상승 카운터(CTU).

다운 카운터 (Down-counter 또는 CTD)

카운터 리셋 (Counter Reset 또는 CTR)

스캔 카운터 (Scan Counter 또는 SCT)

55

업 카운터는 0부터 증가하고, 다운 카운터는 미리 설정된 값부터 감소합니다.

스캔 카운터는 프로그램 스캔 횟수를 계산합니다.

이는 일반적으로 사용하기 위한 것이 아니지만, 스캔 시간을 계산하는 데 사용할 수 있습니다.

--------------------

56 데이터 조작 명령어

데이터 조작 명령어는 바이트 및 워드 데이터를 읽고, 쓰고, 비교하는 데 사용됩니다.

작동이 진(true)가 될 때 발생합니다.

57

GET은 메모리 위치에서 16비트 단어를 읽습니다.

PUT은 메모리 위치에 16비트 단어를 씁니다.

LESGET 명령어로 읽은 값이 지정된 값보다 작은 경우 참(true)으로 결론납니다.

EQUGET 명령어로 읽은 값이 지정된 값과 같은 경우 참(true)으로 결론납니다.

58

LESEQU 명령어는 서로 다른 조합으로 GET 명령어와 함께 사용되어 모든 가능한 비교 순서를 생성할 수 있습니다.

59

GET BYTE는 메모리 위치에서 8비트 바이트를 읽습니다.

LIMIT TEST는 바이트 값이 단어 상부와 하부 바이트에 저장된 한계 내에 있는 경우 참(true)으로 결론납니다.

제한 테스트는 게트 바이트와 함께 사용됩니다.

--------------------

60개의 산술 연산

산술 연산도 BCD 단어 값을 처리합니다.

연산은 레그가 참일 때 수행됩니다.

상위 바이트는 산술 오버플로우나 언더플로우를 나타내는 데 사용됩니다.

여기에는 다음이 포함됩니다.

61

더하기

빼기

곱하기

나누기

십진수를 이진수로 변환

이진수를 십진수로 변환

--------------------

62 블록 전송 명령어

블록 전송 명령어는 데이터 테이블과 입출력 모듈 간에 최대 64개의 16비트 단어 데이터를 전송하는 데 사용되는 출력 명령어입니다.

이는 단어 단위가 아닌 개별 비트 단위로 작업하는 지능형 입출력 장치와 함께 사용됩니다.

63

이러한 예시로는...

다양한 전압을 읽고 쓰는 아날로그 입출력 대신 단순히 온/오프만 합니다.

온도 같은 것을 제어하는 폐쇄 루프 제어를 처리하는 PID입니다.

온도를 읽는 열전 커플(thermocouple)입니다.

서보 모터의 위치를 명령하는 서보 모터 제어입니다.

스텝 모터 제어입니다.

위치 인코더입니다.

64

블록 전송에 대한 세부 사항은 생략하겠지만, PLC가 이러한 종류의 장비들을 처리하는 방식이 디지털 모듈의 단순한 온/오프 상태와 어떻게 다른지 일반적인 아이디어를 드릴 수 있을 것입니다.

물론, GET, PUT 및 기타 데이터 조작 명령과 결합하여 메모리 위치를 읽고 쓸 수 있습니다.

--------------------

65개의 점프 명령어와 서브루틴 프로그래밍

다음 명령어들이 포함됩니다.

66

점프 (또는 JMP)

레이블 (또는 LBL)

서브루틴으로 점프 (또는 JSR)

반환 (또는 RET)

67

점프 명령어는 실행을 레이블 위치로 이동시킵니다.

이를 GOTO 명령어와 비슷하게 생각할 수 있습니다.

68

오크탈 형식으로 레이블은 00에서 77까지 숫자로 표시됩니다.

점프 명령어는 출력 신호이며, 신호가 참이 되면 실행이 명령에 명시된 레이블 번호로 이동합니다.

레이블은 실행이 재개되는 점의 시작에 나타나는 입력 명령어입니다.

69

일반 점프는 서브루틴으로 점프할 수 없으며, 앞쪽으로만 점프할 수 있습니다.

이는 점프를 사용하여 루프를 만들 수 없다는 것을 의미합니다.

이는 프로그램이 루프에 걸려서 진행이 중단되는 것을 방지하기 위한 의도적인 설계 결정입니다.

70

서브루틴은 메인 프로그램의 끝 후에 나타납니다.

오크탈 숫자 레이블을 사용하여 레이블 명령어로 정의됩니다.

서브루틴은 점프 서브루틴(JSR) 명령어를 사용하여 호출됩니다.

서브루틴의 끝에서, 리턴(RET) 명령어는 JSR로 호출된 다음 단계로 실행을 반환합니다.

서브루틴 호출은 최대 8단계까지 중첩될 수 있습니다.

--------------------

71 데이터 전송 명령어

PLC2에는 이름에서 알 수 있듯이 디스크 파일이 없습니다.

"파일" 명령어는 단어 블록을 한 데이터 메모리 위치에서 다른 위치로 이동시킵니다.

=

여기에는 소스 주소, 목적지 주소 및 작동을 제어하는 다양한 다른 매개변수가 포함됩니다.

이러한 것들은 사실 꽤 복잡하지만, 세부 사항을 설명하는 것은 번거롭지 않겠습니다.

데이터 블록을 이동할 수 있다는 것을 알면 됩니다.

--------------------

72개의 시프트 레지스터 명령어

이 명령어들은 전체 단어 시리즈를 처리하며 다음을 포함합니다.

=

파일 위로 시프트

파일 아래로 시프트

FIFO 로드

FIFO 언로드

73

이 명령어들은 1에서 999개의 단어까지 처리할 수 있습니다.

이 유형의 지시의 일반적인 사용은 기계 내에서 부품이 이동하는 동안 추적하는 것입니다.

--------------------

74 비트 시프트

이들은 개별 비트에서 작동하며 다음이 포함됩니다.

75

비트 시프트 왼쪽으로

비트 시프트 오른쪽으로

오프 시프트 비트 검사

온 시프트 비트 검사

시프트 비트 설정

비트 리셋 시프트

76

이 것들은 비트 시프트가 왼쪽으로 또는 오른쪽으로 예상대로 작동하는 것과 비슷합니다.

그러나 시프트 레지스터는 1부터 999비트까지 정의될 수 있으므로 단어 크기에 제한되지 않습니다.

--------------------

77 시퀀서 명령어

시퀀서 명령어는 전기기계식 드럼 컨트롤러의 소프트웨어 에뮬레이션입니다.

드럼 컨트롤러는 긴 순차 작업을 수행할 수 있게 했습니다.

이 것들은 외표면에 일정한 시리즈로 평행 구멍이 있는 회전 드럼을 사용했습니다.

이 구멍들 위에 한 줄의 한계 스위치가 있었습니다.

일부 구멍에 걸이를 삽입하여 한계 스위치와 접촉하면 드럼 컨트롤러가 릴레이 또는 밸브 패턴을 켤 수 있습니다.

78

일부 한계 스위치는 기계의 움직이는 요소에 센서와 연결될 수 있습니다.

기계 부품이 시퀀스의 해당 단계에서 올바른 위치에 있을 때, 걸이의 패턴은 한계 스위치를 통해 전기 경로를 완성하고 솔레노이드를 활성화하여 드럼을 다음 단계로 클릭합니다.

79

이는 종종 음악 상자 또는 오래된 세탁기 제어 방식과 비교됩니다.

그러나 드럼 컨트롤러의 경우, 걸이는 입력 일치 조건과 원하는 출력을 프로그래밍합니다.

PLC/2 드럼 컨트롤러는 이 시퀀서를 에뮬레이트합니다.

이 기능은 자동차 산업과 다른 조립 중심 제조 공정에 널리 사용되었으며, 종종 PLC/2 프로그램의 핵심 부분을 형성했습니다.

80

시퀀서 명령의 세부 사항은 생략하겠지만, 별도의 입력 및 출력 시퀀스 명령이 있습니다.

센서 상태를 매칭하려고 시도하는 입력 시퀀스 명령과, 솔레노이드 밸브 같은 다양한 출력을 켜거나 끄는 출력 시퀀스 명령이 있습니다.

시퀀스 자체는 메모리 안에 저장된 단어들의 시리즈로 정의되며, 각 비트는 개별 입력 또는 출력에 대응합니다.

--------------------

81 파일 논리 명령

파일 논리 명령은 단어에 대한 배열 연산과 같으며, "파일"이라는 용어는 컴퓨터 용어로는 배열을 의미합니다.

이러한 명령에는

AND

OR

배타적 OR

보완

--------------------

특별 프로그래밍 기법 82가지

이 것은 다양한 지침입니다.

이는 다음의 것으로 구성됩니다.

선두 가장자리 한 번 샷

후미 가장자리 한 번 샷

83

한 번 샷은 주 논리 조건의 상태 변화로 인해 주소된 비트가 한 스캔 동안 켜지게 하는 출력 지침입니다.

한 번 샷은 거짓에서 참으로의 변화 또는 참에서 거짓으로의 변화에 의해 트리거될 수 있으며, 사용된 두 지침 중 어느 쪽에 따라 다릅니다.

--------------------

PLC2는 왜 BCD를 사용했는가?

PLC2가 일반 정수 대신 BCD 숫자를 사용한 이유가 무엇인지 궁금해할 수 있다.

이는 초기 PLC가 작동해야 했던 환경을 반영한다.

초기 운영 패널은 기계적 숫자 입력 장치와 단순 전자 출력 디스플레이를 사용했으며, 일반적으로 BCD에서 작동했다.

85

스로틀 스위치는 주변에 0부터 9까지 숫자가 인쇄된 작은 원통형 회전 장치였다.

여러 휠이 서로 옆에 쌓여 있었다.

이는 오래된 차에 있는 기계식 계기판과 비슷하게 보였다.

그러나 운영자는 각 자리 휠을 별도로 움직일 수 있었다.

각 숫자는 PLC의 4개의 입력에 4개의 와이어가 연결되어 읽힙니다.

따라서 손가락 휠 하드웨어가 작동하는 방식 때문에 각 숫자는 본질적으로 4진수(BCD)입니다.

86

개별 휠을 따로 돌리면 운영자는 온도, 속도, 시간 지연 등 다양한 것을 조정할 수 있고, 따라서 공정 매개변수를 수정할 수 있습니다.

출력 운영자 디스플레이는 일반적으로 7분할 LED, 네온 또는 진공 형광 디스플레이였습니다.

이러한 디스플레이 또는 유사한 장치는 PLC보다 앞서 존재했으며, 따라서 산업 현장에서 다루어야 하는 일반적인 장치였습니다.

각 숫자에는 4개의 입력이 있으며, 이는 PLC의 4개의 출력에 연결됩니다.

7분할 디스플레이는 16진수를 사용할 수 있지만, 운영자에게 섭씨 온도를 표시하려면 별로 유용하지 않습니다.

따라서 다시 말해, BCD는 함께 작업하기에 가장 실용적인 숫자 형식입니다.

87

PLCs와 그 사용자 프로그램이 더 능숙해지고 정교해짐에 따라, 그들은 정수 그리고 심지어 부동 소수점 숫자까지 처리하기 시작했습니다.

그러나 많은 PLCs, 아마도 대부분의 PLCs는 BCD로 번역하고 변환하기 위한 명령어를 유지했습니다.

--------------------

PLC2의 영향력

PLC2는 Allen Bradley에게 엄청난 성공을 가져다주었으며, 북미 시장에서의 1위와 세계 시장에서의 상위 5위 안에 들며 선두 PLC 공급업체로 확고히 자리매김했습니다.

그러나 여러 약점이 있었는데, 특히 매우 원시적인 메모리 및 서브루틴 구조와 오실과 BCD 숫자에 대한 집중이었습니다.

제어 릴레이를 대체하는 데 초점을 맞췄으며, 이를 꽤 잘 수행했습니다.

89

Allen Bradley의 다음 진정으로 성공적인 PLC2 후속 제품은 PLC5였습니다.

이 제품은 기본 PLC2 명령 집합을 새로운 메모리 시스템과 새로운 데이터 유형, 별도의 이름 공간, 매개변수화된 함수와 결합했습니다.

90

기사가 영어로 되어 있어 직접 한국어로 번역하면 다음과 같습니다: "그것은 라인 번호와 점프와 함께 베이직으로 프로그래밍을 하고 있던 것에서 파스칼로 전환하는 것과 같았다."

그러나 PLC2 I/O 랙과 모듈은 여전히 사용할 수 있으며, 이는 PLC의 비용 대부분이 I/O 시스템에 있기 때문에 중요한 고려 사항입니다.

91

PLC 5는 더 작은 폼 팩터로 현대화된 Contrologix 시리즈에 의해 후속되었습니다.

앨런 브래들리는 오늘날 주요 PLC 공급업체 중 하나로, 록웰이라는 이름으로 운영되고 있습니다.

--------------------

92 결론

이 에피소드에서는 특정하지만 매우 널리 사용되는 초기 PLC인 Allen Bradley PLC2에 초점을 맞췄습니다.

우리는 다음 주제를 다뤘습니다.

내부 전자 장치

데이터 테이블

사용자 프로그램

T3 프로그래밍 터미널

명령 집합의 간략한 개요

93

이는 상당히 단순하고 어떤 면에서는 원시적인 PLC였지만, PLC의 개념에 대해 매우 대략적인 아이디어를 가질 수 있을 것입니다. 데이터 테이블과 스캔 개념, 릴레이와 유사한 명령 집합을 포함합니다.

94

다음 에피소드에서는 세계 최대의 공급업체인 지멘스의 PLC를 살펴보겠습니다.

이 예에서는 PLC2보다 약간 나중에 출시된 S5 시리즈를 살펴보겠습니다.

이는 2세대 PLC로 볼 수 있습니다.

이미 다루어진 기본 개념을 반복할 필요가 없기 때문에, S5와 PLC2의 차이점과 새로운 측면에 더 집중할 수 있습니다.

95

이것은 8부작 시리즈 중 세 번째 에피소드입니다.

--------------------

피드백을 제공해 주세요.이 에피소드에 대한의견을 공유해 주세요..

출처
Hacker Public Radio
원본 열기 ↗

콘텐츠가 기계 번역되었습니다.

이 뉴스가 유용했나요?

토론 0

Seja o primeiro a contribuir com o debate.

정보를 공유하고 논거를 홍보하세요

유용한 정보나 데이터를 게시하는 것을 주저하지 마세요.

토론에 참여하려면 로그인하거나 무료 계정을 만드세요.