PLC 래더 프로그래밍을 하는 과정에서 반복적인 회로가 필요할 때가 있습니다.

 

제목에 '인덱스 레지스터'라는 생소한 용어가 하나 보일텐데,

이 레지스터는 값을 저장하는 레지스터가 아닌 메모리의 위치를 저장하는 레지스터라고 할 수 있겠습니다.

대충 PC 계열의 프로그래밍에서는 '포인터'라는 개념과 상당히 유사합니다.

 

이 '포인터'라는 개념만큼 어렵지는 않지만, 나름 사람에 따라 난이도가 있다고 느낄 수도 있습니다.

하지만 알아두면 프로그래밍이 상당히 간결해지고 편리해지는 장점이 있죠.

 

인덱스 레지스터는 총 IR0~IR15까지 넉넉하게 제공이 되고,

태스크마다 IR/DR을 공유할 것인지, 별도로 사용할 것인지에 대한 부분을 PLC 설정에서 바꿀 수 있습니다.

 

간단하게 예를 들기 위해서 예제 회로 하나를 준비했습니다.

반복 회로 (사진 1)

위 사진을 보시면 똑같은 형태의 회로가 반복되고 있습니다.

이 회로를 인덱스 레지스터와 반복문을 이용하여 다음과 같은 형태로 줄일 수 있습니다.

 

인덱스 레지스터를 사용한 반복 회로 (사진 2)

 

처음부터 각 렁(Rung)마다 하나씩 설명드리자면...

Rung 0 : IR0 (첫번째 인덱스 레지스터)에 0.00의 주소값을 대입합니다. (MOV가 아닌 MOVR을 사용합니다.)

 

Rung 1 : IR1 (두번째 인덱스 레지스터)에 W0.00의 주소값을 대입합니다.

 

Rung 2 : FOR 명령어를 이용해 회로를 반복합니다. 반복 횟수는 11번으로 지정해줍니다. (0.00 ~ 0.10까지 총 11개)

 

Rung 3 :

인덱스 레지스터의 핵심입니다. 회로의 모양은 사진 1과 같은 회로입니다.

다만 여기서 '콤마(,) 기호'를 통해서 IR0이 가리키는 주소값을 받아옵니다.

따라서 ,IR0는 IR0가 가리키는 주소값을 불러오게 됩니다.

여기서 맨 뒤에 '더하기(+) 기호'를 추가하여 오토 인크리먼트(Auto Increment; 자동 증가) 옵션을 사용하면 ,IR0에서 값을 불러온 후 IR0가 다음 주소값을 가리키도록 할 수 있습니다.

따라서 ,IR0+는 IR0가 가리키는 주소값을 불러오고 다음 주소값을 자동으로 가리키게 됩니다.

 

Rung 4 : ++L 명령어를 사용해 IR1의 주소값을 하나 증가시킵니다.

 

Rung 5 : FOR 명령어 반복의 마지막을 나타내는 NEXT 명령어입니다.

 

여기서 모두들 왜 IR0는 오토 인크리먼트로 다음 주소값을 가리키면서, IR1은 따로 ++L 명령어를 사용하여 다음 주소값을 가리키냐가 가장 궁금하실 것이라고 생각이 됩니다.

 

래더 프로그램의 특성 상 순차적으로 실행이 되고, 필요없는 부분은 건너뛰기 때문에 ,IR0 ,IR1 모두 꺼져있거나, 리셋 스위치가 켜져 있는 경우에는 출력부인 [OUT ,IR1]이 실행되지 않습니다.

 

출력부 자체가 실행되지 않으므로 오토 인크리먼트를 적용할 경우에는 IR1은 증가하지 않고 IR0만 증가하게 되어 회로가 꼬이게 됩니다.

RS-485 2선식 연결과 4선식 연결 방식 (RS485 4w to 2w)

 

RS-485는 Full Duplex 방식(4wire)과 Half Duplex 방식(2Wire)을 통해서 통신을 할 수 있습니다. 결선하는 방법에 따라서 RS-485를 이용한 통신 방식이 달라짐을 결정할 수 있습니다. 

 

그럼 먼저 Full Duplex와 Half Duplex에 대한 의미를 알아보도록 하겠습니다. 

 

  • 전이중 통신(Full Duplex): 두 대의 단말기가 데이터를 송수신하기 위해 동시에 각각 독립된 회선을 사용하는 통신 방식이다. 대표적으로 전화망, 고속 데이터 통신을 들 수 있다.

  • 반이중 통신(Half Duplex): 한 쪽이 송신하는 동안 다른 쪽에서 수신하는 통신 방식으로, 전송 방향을 교체한다. 마스터 슬레이브 방식의 센서 네트워크가 대표적이다.

  • 단방향 통신(Simplex): 한쪽 방향으로만 전송할 수 있는 것으로 방송, 감시 카메라을 들 수 있다.
<위키피디아 : 이중통신 방식 참조>

 

RS-485의 결선 방식 중 2선식 와이어(2-Wire)방식이 표준 방식입니다. 하지만 2선 방식은 송수신 되는 데이터가 충돌하고, 반이중 통신 방식이 가지는 단점을 가지고 있기 때문에 이를 개선하기 위해서 나온 방식이 4선식 와이어(4-Wire) 방식입니다. 

 

그럼 2선식과 4선식에 대한 결선 방법(결선도)에 대해서 알아보도록 하겠습니다.

 

1) RS-485 2-Wire 방식

 

2선식 방식은 TX+와 RX+, TX-와 RX-를 쌍으로 연결하여 사용하는 방식으로 모든 디바이스가 Master가 되는 반이중 통신을 베이스로 통신하는 방법입니다. 

 

아래의 그림처럼 TX+와 RX+를 상대방 디바이스의 TX+와 RX+에 연결을 하고, 반대로 -선도 하나의 선으로 두개의 라인에 결선을 하게 됩니다. 

 

 

 

2) RS-485 4-Wire 방식

 

4선식 방식은 아래의 표처럼 Master와 Slave간에 결선을 하는 방법을 말합니다. 

 

Master  Slave 
RX+ TX+ 
TX+  RX+ 
RX- TX- 
TX-  RX- 

 

위에서 설명한 바와 같이, 4선식 방식은 2선식 방식이 가지는 단점을 보완하고 반이중 통신이 아닌 전이중 통신 방식으로 통신을 합니다. 또한 4선식 방식은 Master-Slave 개념을 가지는 Network 형성이 가능합니다. 

 

 

2선식과 4선식의 방식의 그림을 살펴보면 끝부분에 저항이 달려있는것을 확인할 수 있습니다. 이를 종단저항(Termination Resistor)라고 합니다. 

 

종단 저항이란?

 

통신을 해야하는 각 장비마다 서로 다른 설계 기준으로 만들어져 각기 다른 임피던스를 가지고 있습니다. 이로 인해 수신측에서는 송신측에서 보낸 신호를 제대로 받지 못하는 문제가 발생을 합니다. 임피던스의 차이를 해결하기 위해서 RS-485에서는 종단저항을 달게되는겁니다. 종단저항은 주로 120ohm이 많이 사용되고 있지만, 환경에 따라서 변경이 되어야 하는 경우도 있습니다. 

 

종단저항이 필수적으로 필요한 요소는 아니지만, 원활한 데이터 송수신을 위해서는 달아주시는것이 좋습니다. 

This article is from a series of articles looking at some of the popular Serial Communication Protocols. These will cover a few of the more popular protocols and standards in use today. After this series, we will review and compare their advantages and disadvantages. We aim to provide helpful information that you can cross-reference next time you need to choose the best serial communication bus for your design.

In this article, we will be looking at the popular RS-485 protocol standard.

RS-485 (the RS standing for Recommended Standard) is also known as TIA-485 (Telecommunications Industry Standard) or EIA-485 (Electronics Industries Alliance). It is an electrical protocol standard (rather than a protocol), which was approved in 1983. It defines the electrical characteristics of the transmitter and receiver drivers of serial communication systems. It is a multi-point system standard that uses a balanced differential pair data transmission line.

RS-485 is a successor to the RS-422, which also uses a balanced differential pair, but only allows one driver per system. The RS-485 standard allows up to 32 drivers in one system, supporting communications over distances of up to 1200 meters, and can keep baud rates from 110 Baud to 115200 Baud.

The RS-485 has several transmission line configurations. The first one is RS-485 2-Wire, also known as a Half-Duplex configuration, that uses one differential pair transmission line with a ground reference, as shown in the figure below.

RS-485 2-wire

The second configuration uses 4-Wire and is also known as a Full-Duplex configuration, which uses two differential pairs: labeled TR (transmit) and RX (Receive), along with a ground reference, as shown in the figure below.

RS-485 4-wire

In the 4-Wire configuration, the master transmitter is connected to the slave receiver connections, while the master receiver is connected to the slave transmitter connections.

The main difference between 2-Wire and 4-Wire is that the 2-Wire configuration can at any one time either receive or transmit, while the 4-Wire configuration can simultaneously receive and transmit.

The 2-Wire configuration is generally more popular; however, the configuration you may need to employ will depend on the devices you are using and the drivers they have.

The RS-485 differential pair characteristic impedance is 120 Ω. While you can theoretically connect up to 32 devices (or even more by using an RS-485 repeater), the actual number of nodes will depend on the chosen communication speed or baud rate. The greater the speed, the fewer nodes you can connect, and also, the maximum distance over which you can communicate will decrease. At a full speed of 10 Mbps, the RS-485 can only operate over about 12 meters, while distances of 1200 meters can be achieved at 100 kbps. The figure below shows the relationship between the transmission rate and transmission distance.

RS-485 data rate and cable length dependency

The best layout type for connecting devices using RS-485 is a daisy chain. The other topologies, like Star, T-Drop, or Ring, are not recommended. This is because RS-485 is a high-speed transmission line and is significantly affected by signal reflections. It is also recommended that shielded twisted-pair cables wire an RS-485 connection because it increases differential pair immunity from electromagnetic effects and noise.

The standard RS-485 cable and its parameters

For the daisy chain topology, the use of termination resistors with a 120 Ω value is required at each end of the network to minimize reflections. 

120 Ω Termination Resistors

Some RS-485 transmitters and receivers have these termination resistors built internally. Sometimes, in a noisy environment, the 120 Ω resistors need to be replaced by 60 Ω low pass filters to provide standard noise filtering, as shown in the diagram below:

Low pass filter termination

The use of high precision resistors (maximum 1% tolerance) is recommended for the termination.

An important consideration is that the ground reference can differ significantly across interconnected devices, damaging their RS-485 ports. The RS-485 interfaces have an additional standard signal wire to minimize any ground potential difference. This wire provides a typical reference potential level for all the RS-485 nodes.

Also, the wire shielding should only be grounded at one point. If the shielding is grounded at several points, ground loops could appear within the network, which can adversely affect the ground reference and induce noise in the shielded wires.

A useful tip. If you need to use a 2-Wire RS-485 device with 4-Wire ones, you just need to simply tie the two positive cables together and the two negative cables together,  as shown below:

RS-485 2-Wire connection in a 4-Wire network

The signal levels the RS-485 drives deliver a differential output of 1.5 V across a 54 Ω load, while the receivers can detect differential inputs down as low as 200 mV. This provides a generous margin giving reliable data transmissions even under high levels of signal degradation.

RS-485 driver minimum voltages and receiver voltage sensitivity

It’s important to note that no device will be driving the bus during the idle condition, and the receiver output is undefined. This could cause problems, such as random data appearing during idle periods, which could cause false start bits, interrupts, and framing errors. If this should occur when used in the manufacturing industry, automation, or any other critical application, there could be severe consequences. A combination of pull-up and pull-down resistors can be added at the bus’s termination point to eliminate this risk. A suggested circuit is provided below.

Fail-safe biasing circuit

The resistor values can be calculated by using the following formula (assumes that the termination resistor Rt = 120 Ω):

The biasing resistors will establish a fail-safe mode where only a tiny portion of the voltage region is left undefined. This is because the nodes will have an offset of known voltage, and the noise would not drive them.

The undefined region in RS-485 without and with biasing

Also, drivers that have this fail-safe mode already implemented are readily available.

The RS-485 standard has been implemented in several industrial and automation communication protocols, like Modbus, Profibus DP, OPTOmux, and DH-485.

Summary

This article has looked at some of the popular RS-485 protocol standard features and discussed some of its advantages and implementation details. In the following article in this series, we will look at some of the alternate serial communication protocols available. Check out this series's previous articles: Serial Communications Protocols - IntroductionSerial Communications Protocols - Part Two: UART and Serial Communications Protocols - Part Three: RS-232.

내가 부족한것이 무엇인지 곰곰히 생각해 보는 책이다. 

자기계발의 한계가 무엇인지 보여주는 것 같다. 

가족간의 문제의 이유도 여기서 엿볼 수 있었다. 

 

 

1부 의도성: 기본에 초점을 맞춰라
   1장 이것이 관계다!
   2장 자기 계발의 함정
   3장 멀리 바라보라
   4장 조직 문화의 중요성

2부 겸손: 관계를 차곡차곡 쌓아가라
   5장 정상적인 사람은 없다
   6장 4단계 성장 나선
   7장 얼굴은 백 마디 말보다 더 많은 것을 알려준다
   8장 두려움을 극복하라

3부 책무성: 대담한 관계를 구축하라
   9장 노를 저어라
   10장 갈등 해소를 위한 교전규칙
   11장 날것의 대화를 하라
   12장 자신 너머에서 의미를 찾아라

4부 지속 가능성: 리더십을 재설계하라
   13장 자기 이익을 초월하는 리더십
   14장 인재 유출을 막아라
   15장 사랑의 리더십
   16장 관계를 동력으로 성장하라

 

PLC 프로그래밍 순서

 

PLC의 제어동작은 시퀀스 프로그램이 격납되어 있는 메모리의 내용을 제어연산부가 차례로 읽어 내면서 실행함.
 

기호나 심볼을 이용하여 작성한 프로그램은 PLC에서 사용되는 마이크로 프로세서가 이해할 수 있는 머신코드로 변화되어 격납됨. 이 작업은 프로그램 입력장치와 PLC의 시스템 프로그램의 동작으로 이루어진다. 따라서 시퀀스 프로그램은 시스템 프로그램이 변역할 수 있는 약속에 따라 설계함과 동시에 메모리에의 격납도 규칙이나 제약사항을 반드시 지켜야 함.

 

 

1. 제 1단계 : 기계동작의 사양작성

 

 제 1단계로 제어대상의 기계나 장치의 동작 내용을 파악하여 다음 사항들을 결정함.

작업내용의 구체적 공정도를 작성함.
액추에이터의 종류와 수량을 결정함.
센서의 종류와 수량을 결정함.

 

2. 제 2단계 : PLC의 하드웨어 선정

 

제 2단계로는 적용할 PLC를 선정해야 되는데, PLC의 하드웨어부 선정에 관련한 사항들에 대해서는 앞서 설명한 대로임. 기본부의 검토항목으로는 프로그램 메모리의 용량, 처리속도, 명령의 종류와 연산기능, 데이터 메모리의 종류와 점수, 정전유지 기능의 필요성, 입출력 점수 등임.
 

입력부에 대해서는 PLC에 접속할 입력기기의 종류와 수를 조사하여 적절한 입력형식과 그 점수, 절연방식, 정격전압, 응답시간, 표시장치의 유무 등이 검토항목임.
 

출력부도 접속할 출력기기의 종류와 수를 조사하여 필요한 출력형식과 출력점수, 절연방식, 정격전압과 전류, 응답시간, 표시장치의 유무 등이 검토항목임.


3.  제 3단계 : 입출력 할당

 

입출력 할당이란 조작패널 상의 각종 명령스위치, 검출스위치, 제어대상의 조작기기, 표시등 등의 입출력기기를 PLC의 입력유닛과 출력유닛의 몇 번째 입력점과 출력점에 접속하여 사용할 것인가를 정하는 것임.

 

1) 입력 할당

PLC의 입력기기는 크게 조작반에 설치된 명령지령용의 각종 스위치와 액추에이터의 동작상태 등을 검출하는 검출기기나 장치를 보호하기 위한 보호용 기기 등으로 구별되며, 입력할당은 이들 기기들을 PLC의 입력유닛 종류에 따라 각각 몇 번에 입력할 것인가를 결정하는 것으로 몇 가지 사항을 지켜서 할당을 하고 그 결과를 표로 정리해 두는 것이 좋음. 이것은 다음 단계의 코딩 작업시에 반드시 필요하며 프로그램이 완료되어 기계가 정상운전 후에도 기계의 보수유지를 위해 꼭 필요한 것임.

 

동일 전압마다 정리하여 할당함.
동일 종류의 기기마다 정리하여 할당함.
제어 시스템의 작동 블록으로 정리하여 할당함.
무접점 입력기기의 경우는 접속형식을 확인함.
예비접점을 할당함.
입력점수 절약대책을 강구함.

 

2) 출력 할당

출력할당도 입력할당과 같이 몇 가지 원칙을 지켜가며 출력기기를 할당하고 이것을 표로 정리해 둔다.

동일 전압마다 정리하여 할당함.

  • 동일 종류의 기기별로 정리하여 할당함.
  • 관련 기기는 연번으로 할당함.
  • 예비접점을 할당함.
  • 출력점수의 절약대책을 강구함.

4. 제 4단계 : 제어배선도의 작성

 

제어배선도의 작성은 시퀀스도 작성시 사용하는 표시기호를 사용하여 입출력 할당에서 결정한 입출력 번호에 해당기기의 접속과 전원의 구분, 콤먼라인과의 접속관계 등을 한 눈에 파악할 수 있도록 정리하여 작성함.

 

제어배선도를 작성하는 것은 PLC 프로그래밍을 위해 반드시 필요한 작업은 아니고, 입출력기기와 PLC와의 접속을 명확히 하여 입출력 할당을 검토하여 배선작업시 실수를 방지할 수 있고, 보수유지에 있어서도 배선점검에 유용하기 때문에 작성해 두는 것이 좋음.

 

 

작성방법은 PLC의 외관형태가 단독형인 경우는 그림 3-4와 같이 좌측에 입력기기를 우측에 출력기기의 배선관계를 나타내면 좋음. 그러나 입출력 점수가 많은 빌딩블록 방식의 경우는 이와 같이 표현하는 것은 곤란하므로 그림 3-5와 같이 입력유닛과 출력유닛을 구분하여 작성하는 것이 좋음.

 

 

5. 제 5단계 : 시퀀스 프로그램의 작성

 

프로그래밍 작업중 어느 제어방식에 있어서도 시퀀스 프로그램을 작성하는 것이 제일 중요하며, 또한 제일 어려운 작업임.

 

통상 PLC의 시퀀스 프로그램은 릴레이 심볼식의 래더 다이어그램에 의해 작성하는 것이 대부분이며, 이상적인 프로그램 작성을 위해서는 사용하는 PLC의 명령어를 충분히 이해하고 있어야 하며, 전동기나 전자밸브를 제어하는 기본회로의 숙지도 반드시 필요함.


6. 제 6단계 : 데이터 메모리의 할당

 

시퀀스 프로그램에 기초해서 내부 릴레이(일시기억 메모리), 타이머, 카운터, 레지스터 등의 데이터 메모리를 할당함. 내부 릴레이는 신호의 상태 기억이나 중계, 펄스발생기능을 위해 사용되어진다. 내부 릴레이 할당에 있어서 중요한 점은 시스템의 특성에 따라 정전시 동작상태 유지가 필요한 기능에는 래치 릴레이를 할당하여야 함는 것에 주의하여야 함.

 

타이머나 카운터의 할당에 있어서는 기종에 따라 타이머와 카운터를 공용으로 사용하는 기종도 있는데 이 때는 타이머에 할당한 고유번호는 카운터로 사용할 수 없음는 점에 유의해야 함. 또한 타이머의 경우는 최소시간 설정단위와 설정범위를 반드시 확인하여야 하고, 카운터 할당에 있어서도 카운터의 기능과 설정치를 확인한 후 할당하여야 함.

 

내부 릴레이나 타이머, 카운터 등의 할당은 표를 작성하고, 프로그램 작성중에 사용한 보조릴레이나 타이머에 표를 해 놓거나 코멘트를 기입해 두면 나중에 알기 쉽고, 중복하여 사용할 우려도 없음.

 

7. 제 7단계 : 프로그램 메모리의 할당

 

PLC 1대로 기계 1대를 제어하는 경우는 메모리 할당이 의미가 없으나, 플렉시블한 기계에서 여러 가지 패턴제어를 실행하거나, 집중제어와 같이 PLC 1대로서 복수의 기계를 제어하는 경우 또는, 제어프로그램 이외에 여러 가지 부가 기능의 프로그램이 있는 경우는 전 메모리를 몇 개의 블록으로 분할해야 함.
  

  • 동일 기계에서 복수의 가공이나 조립패턴이 있는 경우 
  • 복수의 기계를 1대의 PLC로 제어하는 집중 시스템의 경우
  • 2차 기능의 프로그램을 부가하는 경우

 

8. 제 8단계 : 코딩(coding)

 

시퀀스 프로그램을 PLC의 메모리에 격납하기 위해 시퀀스 프로램의 내용을 PLC 명령어로 변환하는 작업을 코딩이라 함. 이 코딩작업은 니모닉방식의 언어를 사용하는 기종에 한정되며 릴레이 심볼릭어를 사용하는 기종에서는 의미가 없음.
 

코딩을 하기 위해서는 사용하는 PLC의 명령어를 충분히 익히고 시퀀스 프로그램과 입출력 할당표, 데이터 메모리 할당표 등을 보면서 차례대로 실시함. 코딩의 결과는 코딩표를 작성하고, 다음 사항에 주의하여 실시함.
  

  • a, b접점 상태에 유의함.
  • 접점의 블록간 접속을 포함하여 직렬, 병렬 접속에 유의함.
  • 접점, 코일, 입출력 할당번호 등을 확인하면서 실시함.
  • 타이머나 카운터의 설정치에 유의함.
  • 스텝(어드레스)수 절약방법 등을 강구하면서 실시함. 
  • 이것은 스캔(scan)타임을 단축시킬 수 있기 때문에 가능한 한 실시하는 것이 좋음.

 

9. 제 9단계 : 로딩(loading)

 

9단계로 프로그램 입력장치를 이용하여 시퀀스 프로그램의 내용을 PLC의 메모리에 격납함. 이 작업을 로딩이라하며, 로딩을 하기 위해서는 기존의 PLC 메모리에 있는 내용을 소거시킨 후, 로직 심벌릭어를 사용하는 PLC에서는 코딩표를 보고, 릴레이 심볼릭어를 사용하는 PLC에서는 시퀀스 다이어그램을 보면서 메모리에 격납함.
 

프로그램 입력방법은 메이커마다 각각 다르므로 사전에 사용법을 충분히 숙지해야 되며, 특히 기존의 릴레이 회로를 그대로 사용할 경우는 주의해야 함.

 

10.  제 10단계 : 시뮬레이션(simulation)

 

간단한 제어 시스템인 경우 로딩이 완료되면 곧바로 시운전에 들어가도 사고를 일으킬 가능성이 적어 문제시되지 않지만, 비교적 제어 난이도가 높거나 대형의 제어 시스템의 경우, 처음부터 완벽하게 논리를 성립시키는 것이 곤란하고, 또한 논리가  불완전한 시스템을 곧바로 시운전에 들어갔을 경우 사고를 일으키거나 시스템에 치명적인 상처를 줄 수도 있음. 이러한 이유에서 시운전에 앞서 강제 입출력 명령을 이용하거나 모의 입력에 의한 방법 등으로 시뮬레이션을 함.
  

  • 조작스위치 등을 이용한 모의 입력에 의한 시뮬레이션  
  • 강제 입력기능을 사용한 시뮬레이션
  • 강제 출력기능을 사용한 시뮬레이션

FIVE STEPS TO PLC PROGRAM DEVELOPMENT

Programming a PLC can sometimes be a daunting task. The best method is to break the task into some smaller steps. These are the steps that I have used for years to develop PLC programs. We will apply them to a die stamping application.


Step 1 – Define the task:

What has to happen? This is written down and summarized. You may have to ask several different people how the machine is to operate. Going back to individuals when there is a conflict on specific aspects of the operation. This step is number one for a reason with PLC program development.

A master switch is used to start the process and to shut it down. Two sensors: an upper limit switch that indicates when the piston is fully retracted and a lower limit switch that indicates when the piston is fully extended. When the master switch is turned on the piston reciprocates between the extended and retracted positions. This is achieved with an up and down solenoid. When the master switch is turned off, the piston returns to the retracted position, and all solenoids are off.

Step 2 – Define the Inputs and Outputs:

Based on the information in step 1, you determine the inputs and outputs to the PLC required to develop what has to happen.

Inputs:
Master Switch – On/Off
Upper Limit Switch – On/Off
Lower Limit Switch – On/Off

Outputs:
Down Solenoid – On/Off
Up Solenoid – On/Off

 

Step 3 – Develop a logical sequence of operation:

This is where the majority of time is spent in PLC program development. Steps 1 and 2 allow you to systematically express what has to happen in the PLC program. Based on the logic, you may have to modify the inputs/outputs or sequence of the program. This is the easiest place to make changes.

This can be done with the use of a flow chart or sequence table. You can use anything to fully understand the logic of the operation before programming. Many people do not use this step and jump straight to programming.

Fully understanding the logic before starting to program can save you time and frustration.

Sequence Table: The following is a sequence table for our die stamping application. I usually review this sequence with the person with the most knowledge of the machine. This can be the designer and/or the machine operator.

How to read the Sequence Table: Follow the steps from left to right, top to bottom. Inputs and outputs are labeled as 1 (ON), 0 (OFF) or X (Does not Matter). Step 1 indicates that it does not matter the upper and lower limit switch positions. The master switch is off, so the up and down solenoids are off. Steps 3 and 4 repeat themselves as long as the master switch is on.

Note: You will notice that at step 2 after the master switch turns on the up solenoid will be activated. So the piston always retracts when the master switch is first turned on.  This operation was picked up in the development of our logical sequence.

Step 4 – Develop the PLC program:

Utilizing the above steps, we will now actually write the plc program. This can be in several different languages. In our case, ladder logic will be used.

Look at the sequence table with respect to the following logic. I have used Set and Reset conditions so it is easily followed by the sequence table. When the master switch turns on the up solenoid is activated. Notice the first rung is a direct correlation. Follow the rest of the sequence table with this ladder logic.


Document, Document, Document This is a vital part of every program, which will save you time and money when you have to return to the program years later.

Step 5 – Test the program:

Test the logic that you have developed. Once again the previous steps are helpful in this process. PLC program development testing is an important step to test for all conditions of the logic. (Power Cycle, Sensors Fail, Safety, etc.)


Test the program with a simulator or actual machine. Make modifications as necessary. Check with the people most knowledgeable on the machine, to see if it is doing what they expect. Do they need anything else? Follow up after a time frame to see if any problems arise that need to be addressed.

These five steps will help you in your PLC program development.

  1. Define the task
  2. Define the inputs and outputs
  3. Develop a logical sequence of operation
  4. Develop the PLC program
  5. Test the program

The five steps form the basis of all PLC development. You will notice that the actual programming does not occur until the second last step. Usually, more time is spent on understanding the task and sequence of operation.

 

 

최근에 새로운 유행어처럼 번지는 OKR(Objectives and Key Results)이라는 것이 있습니다. 인텔의 전설적인 경영자인 앤디그로브가 처음 개념화를 하고 그 보완된 개념이 Google이라는 혁신적인 회사에서 성공적으로 운영되고 있는 성능평가방법으로 인식되고 있습니다. OKR을 가장 쉽지만 표면적으로 설명하자면

 

 1. 상위목표 Objectives를 달성하기 위한 구체적 계획을 하위목표 (Key Results)로 두고 계층화하여 성능을 추적하는 방법입니다. 

 2. 또한 위에서 목표가 떨어지는 것이 아닌, 사원들이 직접 중요결과를 세팅할 수 있도록 하고, 

 3. 그 중요결과는 매우 도전적으로 목표치 설정이 되어야 한다는 것입니다. 

 

 


 

1. 핵심성과 지표 KPI: Key Performance Indicator

핵심성과 지표인 KPI는 기업, 개인, 프로그램, 프로젝트, 특정 작업 등 추적하고자 하는 어떤 대상을 일정단위의 시간경과에 따른 성과를 기준으로 평가하는 데 사용됩니다. 일부 특이한 경우와 값이 생길 수는 있을 수 있지만 일반적으로 이러한 지표는 처음 설정을 할 때 다음의 3가지에 초점이 맞추어 있어야 합니다.

목표치와 비교하여 반드시 측정가능(measurable)해야 합니다.

동원가능한 자원(비용, 인력, 시간)을 어디에 집중(concentrate) 해야 하는지가 명확해야 합니다.

기업전체나 조직의 큰 전략목표(strategies)에 상하위 연결성(hierarchical link)을 가져야합니다.

핵심성과지표는 무조건 측정 가능한 KPI를 만드는 것이 좋습니다. 그 측정을 감시를 위한 평가이 자료가 될 수도 있지만, 현재의 위치와 능력치를 검증하는데 더욱 필요로 합니다. 이 개념을 가장 잘 대변해 주는 명언이 바로 피터 드러커의 측정할 수 없다면, 관리될 수 없다’라는 표현입니다.

상대적으로 숫자화 하기 쉬운 정량적(Quantitative) 값을 부가하면 비즈니스 컨텍스트-현재 상황에 비추어 얼마나 합리적인지-를 보다 이해가 쉽게 제공하고 시간이 지난 후에 그 측정 대상 목표와 성능을 비교할 수 있습니다. 얼마나 훌륭한 가 나빴는가를 표현이나 서사로 해야 하는 정성적(Qualitative) KPI 생성은 가능하지만, 이러한 구조가 데이터에 대한 혼란과 주관적인 해석을 초래할 수 있으므로 비즈니스 세계에서는 권장하지 않습니다. (정량적 분석과 정량적 분석에 관한 차이점에 대한 설명은 이곳을 참고하시면 좋습니다.)

 

KPI 

모든 업종에 걸쳐 KPI의 예는 수도 없이 많습니다. KPI는 기업이 진행 상황을 평가하고 목표에 성공적으로 도달하기 위해 사용하는 모든 정량적/수량적 척도입니다. 부서별로, 업종별로 KPI를 분류할 수 있으며 각각의 특성을 담을 수 있습니다.

IT 부서: 매월 평균 매출, 고객 유지 또는 이탈, 티켓 해결 시간, MAU, DAU

리테일: 평방 미터 당 매출, 매장 별 매출, 직원 별 매출

HR: 채용률, 이직률, 직원 실적, 평균 근무기간, 성별 진급률

세일즈 부서: 고객 가치, 매출, 분기별 파이프라인

 

KPI를 설정할 때 주의점

KPI의 목적은 측정가능해야 하므로 절대 모호한 값을 설정해서는 안됩니다. 구체적으로, KPI를 목표에 묶어 제공하고 비교가 될 만한 표준 목표치(예: 업계 평균, 연도별 성장 등)와 비교합니다. KPI는 일반적으로 탑-다운으로 진행되는 방법이기에 경영리더들이 검토를 한 후 조직의 모든 성과 지표가 선택적으로 사용됩니다. 즉 전략적 차원에서 기업에 가장 큰 영향과 가치가 있는 지표만 추적하고 측정하려고 하는 경향이 강합니다.


 

2. 목표와 핵심결과 OKR: Objectives and Key Results

위에서 설명한 대로 OKR은 목표 및 핵심 결과의 약자로, 보다 구체적으로, 목표는 주요 핵심 결과와 직접 연결됩니다. OKR은 전략적 프레임워크인 반면 KPI는 프레임워크 내에 존재하는 측정입니다. 이 개념을 쉽게 설명해 주는 간단한 그림을 아래와 같이 추가해 봅니다.

목표와 핵심결과(OKR), 성과지표(KPI)와의 관계 (출처: profit.io)

OKR은 목표 달성을 트래킹하기 위해서 특정 지표를 사용하는 매우 단순한 흑백 접근법이라고 할 수 있습니다.  일반적으로 기업의 조직은 3-5개의 상위 목표(objectives)와 각 목표 당 3-5개의 핵심 결과(key results)를 갖게 됩니다. 핵심 결과는 목표에 대한 명확한 성능 평가를 얻기 위해 수치로 등급이 매겨집니다. OKR의 특성은 다음과 같습니다.

항상 수량화/정량화가 가능해야 합니다.

0 또는 1의 바이너리 상태 (성공/실패, 달성/미 달성, 활성/비활성)나 0-10, 0-100의 척도를 갖고 점수를 부여할 수 있어야 합니다.

명확한 타임라인이 제시되어야 하고, 매우 공격적인 달성 목표가 제시되어야 합니다.

위에서 언급을 했지만, OKR 프레임워크는 구글과 인텔에 의해 대중화되었지만, SAP, 아마존, 링크드인, 스포티파이, 그 외에도 매우 성공적인 회사들도 목표 관리를 위해 사용하고 있습니다. 일반적으로 OKR는 성장에 초점을 맞춘 조직에 적합합니다. 혼란을 일으키기 위해서가 아니라, 때로는 조직의 KPI가 OKR 프레임워크에서 사용되는 주요 결과와 동일하게 이용되기도 합니다. 즉 큰 목표치를 OKR에서 설정하면, 그것에 목표를 달성하기 위한 여러가지 결과치를 확인하는 과정에서 각 결과치에 가장 적합한 KPI를 설정합니다. 그러나 이 모든 과정은 기업 조직의 경험과 충분한 토론과정, 업무의 적합도를 검토후에 적용하는 것이 좋습니다. 제가 근무하고 있는 SAP의 경우에도 기존 프로덕트의 버전업이나 유지 보수를 하는 성숙된 구조를 가진 팀 보다는 새로운 기술을 사용하는 클라우드, 모바일, IoT와 같은 빠른 혁신을 요하는 그룹에서 OKR을 적용하는 것이 그런 예라고 할 수 있습니다.

 

OKR 

OKR은 성장이라는 큰 틀의 목표 위에 구축되기 때문에 직원과 조직을 매우 도전적이고 공격적인 “거의 불가능에 가까운" 선까지 밀어붙입니다. OKR는 빠르고 공격적인 성장을 위한 연속적인 반복의 과정입니다. OKR의 예를 들어보겠습니다.

목표 #1: 모든 채널을 통해 고객경험을 개선시킨다.

       o 핵심결과 #1: 순 추천고객지수(Net Promoter Score)를 5에서 8.5로 개선한다.

       o 핵심결과 #2: 채널 간 고객 확보율을 30%에서 50%로 높인다.

       o 핵심결과 #3: 고객 불만 사항을 30% 줄인다.

목표 #2: 수익률을 높인다.

       o 핵심결과 #1: 유럽 세일즈 헤드를 고용한다.

       o 핵심결과 #2: 온라인 판매비율을 70%이상으로 강화한다.

       o 핵심결과 #3: 고객이탈율을 5%이하로 유지한다.

목표 #3: 새로운 서비스의 성공적 론칭 한다

       o 핵심결과 #1: 기존 서비스 구독자의 전환률을 80%이상으로 가져온다

       o 핵심결과 #2: 서비스로 유입되는 블로그채널접속율을 30%이상 올린다. 

       o 핵심결과 #3: 아이돌 스타와의 연계 마케팅을 한다.

 

OKR을 설정할 때 주의점

비즈니스의 모든 부분에서 가시성이 확보된 상태가 아니라면, OKR을 설정하는 것은 바람직하지 않습니다. OKR은 기본적으로 직원 수준에서 시작한 다음 관리자, 부서장 등 피라미드 구조로 만들어 확장 목표를 달성해야 합니다. 물론 탑다운 방식과 바텀업 방식을 혼합하여 결정을 하는 방식입니다. 또한 기업 조직이 유지 보수를 주요 사업으로 하거나 완만한 성장을 하는 경우에는 OKR을 사용하지 마십시오. OKR은 공격적이고, 빠른 혁신적 성장 목표를 갖는 스타트업 문화에 더욱 효과가 있습니다.


3. 정리 비교표

사람들을 하향식 또는 상향식으로 관리하는 것 무엇이 좋다고 하는 것은 이 글의 목적은 아닙니다. 더욱이 KPI보다 OKR이 더 발전된 관리기법이라고 소개를 하고 있는 것도 아닙니다. KPI는 직원 및 개별 팀의 생산성, 효과 및 효율성을 점검하는 역할을 하기에 안정감 있는 관리가 가능해집니다. 반면 OKR을 도입하여 실행하는 업무와 팀들은 그들의 큰 목표에 집중하기 때문에 그것을 달성하는 방법에 대한 목소리와 아이디어를 더욱 더 적극적으로 낼 수 있고 공격적으로 팀을 자극할 수 있습니다. 이에 따라 조직의 민첩성과 유연성이 향상됩니다. 

 

KPI와 OKR를 비교할 때 가장 많이 나오는 예가 ‘여행을 가는 과정’에 대한 비유입니다. 당신이 어떤 장소로 차를 몰고 간다고 상상해 보십시오. 서울에서 출발하여 최종 목표가 부산인 목적지인 경우 OKR이 차량이고 KPI가 대시보드의 지표입니다. KPI는 차량이 목표를 향해 나아가면서 어떻게 움직이는지를 알려 주는 반면, OKR은 자동차를 최종 목적지까지 데려가 줍니다. OKR과 KPI를 사용하여 동일한 목표를 달성할 수 있지만 서로 다른 기능을 수행합니다. OKR은 비즈니스 목표(부산에 도착)를 설정하고, 방향을 측정하며, 더 큰 성공(더 빠르게 혹은 더 안전하게)을 달성하기 위한 여러가지 접근 방식을 제공합니다. 그러면서 KPI대시보드를 사용하여 연료 레벨, 엔진 오일 레벨, 차량 속도 등과 같은 실시간 정보를 확인할 수 있습니다.

 

KPI와 OKR은 단순히 일어나는 상황을 측정하는 것이 아니라는 사실입니다. “내가 무엇을 하겠습니다”라고 하는 액션아이템을 정하기 위해서는 그 액션 아이템이 만들어 낼 목표치를 설정해야 하는 것이 먼저입니다. 즉 고객과의 관계 개선이라는 목표가 있을 때 고객과의 컨택포인트를 넓히기 위해 일주일에 1회이상의 DM 도 보내고, 전화도 하는 액션아이템이 설정될 수 있습니다. 그리고 기존고객과의 관계성 향상에 따라서 ‘신규고객의 웹사이트 방문 수’가 20%이상 증가하는 KPI가 발생했고, 이 증가 수치가 신규고객 유치율 5% 성장이라는 핵심결과 Key Results를 만들어 낼 수 있습니다. 그럼으로 ‘회사의 수익율을 높인다’는 기본 목표 달성이 가능한 과정이 됩니다. 모든 비즈니스의 성공은 개개인이 이런 새로운 프로세스와 방법론을 적극적으로 받아들이고 행동으로 보여주느냐에 달려있습니다.

http://www.ttimes.co.kr/view.html?no=2021062216117792289 

 

‘최고의 제품’이 오히려 고객의 ‘Pain Point’였다

조직의 리더들은 군대로 치면 소대장, 중대장, 대대장들입니다. 현업의 사령관들이죠. 전략을 세우고 판단을 해야 하는 위치입니다. 그래서 리더들의 착각은 조직에 치명적일 수 있습니다. 리더

www.ttimes.co.kr

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'자극이 되는 글' 카테고리의 다른 글

4분면 분석법(후지필름)  (0) 2021.05.06

+ Recent posts