오늘은 완벽한 PLC 프로그램이 어떤 모습인지 이해하는 데 도움이 되는 실용적인 기사를 공유하고, PLC 프로그래밍 표준과 실제 작업에 대한 제안을 제공합니다.
완벽한 PLC 프로그램을 위한 설계 요구 사항:
완전한 PLC 프로그램은 단순히 시스템을 실행하는 것이 아닙니다. 또한 완전한 주석, 잘 구성된{0}}아키텍처, 우수한 확장성, 포괄적인 경보 및 보호 시스템, 사전 실행 시뮬레이션 시스템이-필요합니다.
1. 단순성
PLC 프로그램을 가능한 한 간단하게 만드십시오. 단순성은 표준화된 프로그램 프레임워크와 간단한 지침을 사용하는 것을 의미합니다. 광범위하게 말하면, 여기에는 프로그램 구조를 최적화하고 흐름 제어 명령을 사용하여 프로그램을 단순화하는 것이 포함됩니다. 더 구체적으로 말하자면, 단일-함수 명령어를 더 강력한 명령어로 바꾸고 명령어 순서에 주의를 기울이는 것을 의미합니다.
2. 가독성
설계된 프로그램은 가독성이 높아야 합니다. 이는 프로그래머가 프로그램을 더 잘 이해하고 디버깅을 용이하게 할 뿐만 아니라 다른 사람도 쉽게 이해하고 사용자가 유지 관리할 수 있도록 해줍니다. 또한 필요한 경우 프로그램 배포를 촉진해야 합니다.
좋은 가독성을 보장하려면 프로그램 디자인이 최대한 명확해야 합니다. 객체 지향 설계 방법을 사용하더라도 계층 구조와 모듈성에 주의를 기울이세요. 가능한 한 표준 설계 방식을 사용하십시오.
특별한 경우에 프로그래밍 언어를 사용하는 경우 대부분의 경우 가독성을 높이기 위해 래더 다이어그램을 사용해야 합니다. I/O 할당은 기억하고 이해하기 쉽도록 체계적이어야 합니다. 필요한 경우 설명을 추가합니다. 내부 구성 요소의 사용도 체계적이어야 합니다. 함부로 사용하지 마십시오.
프로그램 설계 초기부터 가독성을 고려해야 합니다. 프로그램 디버깅 중에 명령어를 추가하거나 제거하고 내부 구성 요소 사용을 변경하면 원래 명확했던 프로그램이 다소 지저분해질 수 있기 때문에 이를 완전히 달성하기는 쉽지 않습니다. 따라서 설계 단계에서 디버깅하는 동안 조정을 허용하고 디버깅 후에는 정리하십시오. 그러면 더 높은 품질의 프로그램이 탄생하게 됩니다.
프로그램 설명에는 최소한 다음이 포함되어야 합니다.
A. 시스템 코멘트: 저작권 소유자 및 전체 프로그램의 목적 B. 블록 댓글: 블록의 주요 목적 및 작성자. C. 세그먼트 주석: 코드 세그먼트의 목적; D. 변수 주석: I/O 주석 및 중간 변수 주석을 포함하여 중요성은 자명합니다-. 기밀성 고려 사항과 관련하여 이러한 문제는 댓글을 줄이는 대신 암호화 알고리즘이나 프로그램의 블록 암호화를 통해 해결되어야 합니다.
3. 정확성
PLC 프로그램은 정확해야 하며 실제 작동을 통해 검증되어야 올바른 기능을 입증할 수 있습니다. 이는 PLC 프로그램의 가장 기본적인 요구 사항입니다. 이것이 달성되지 않으면 다른 측면이 아무리 좋아도 쓸모가 없습니다.
프로그램의 정확성을 보장하기 위해서는 명령어와 내부 장치를 정확하게 사용해야 합니다. 지침의 정확한 사용은 지침의 정확한 이해와 연결됩니다. 따라서 지침의 의미와 사용 조건을 철저히 이해해야 합니다. 필요한 경우 불분명한 명령을 테스트하기 위해 작은 프로그램을 작성할 수 있습니다.
동일한 지침에 대해 PLC 제조 배치 또는 시리즈 모델의 차이로 인해 일부 지침 세부 사항이 다를 수 있습니다. 프로그래밍 매뉴얼을 주의 깊게 살펴보아야 합니다.
내부 장치를 올바르게 사용하는 것도 중요합니다. 예를 들어 일부 PLC에는 전원 차단 보호 기능이 있지만-다른 PLC에는 그렇지 않습니다. 전원 차단 보호가 필요한 장치를 사용하는 것이 중요하며, 그 반대의 경우도 마찬가지입니다.
즉, PLC 프로그램의 가장 기본적인 요구 사항은 프로그래밍된 프로그램이 올바르게 실행되도록 명령어를 정확하게 사용하고 내부 구성 요소를 올바르게 활용하는 것입니다.
간단한 예를 들어, Siemens PLC에는 M-포인트 또는 DB{1}}포인트와 같이 상승 및 하강 에지에 대한 중간 변수로 저장 기능을 갖춘 변수가 필요합니다. FC의 임시 변수를 사용하면 문제가 발생할 수 있습니다.
4. 신뢰성
프로그램은 정확할 뿐만 아니라 신뢰성도 있어야 합니다. 신뢰성은 PLC 프로그램의 안정성을 반영하며, 이는 기본 요구 사항이기도 합니다.
일부 PLC 프로그램은 정상적인 작동 조건이나 합법적인 작동 중에는 올바르게 작동하지만 비정상적인 작동 조건(예: 일시적인 정전 후 빠른 전원 복구) 또는 불법적인 작동(예: 버튼을 순서대로 누르지 않거나 여러 버튼을 동시에 누르는 경우)에서는 제대로 작동하지 않습니다. 이러한 프로그램은 신뢰할 수 없거나 불안정하거나 제대로 설계되지 않았습니다.
좋은 PLC 프로그램은 비정상적인 작동 조건을 식별하고 이를 정상 조건과 원활하게 통합하여 프로그램이 다양한 상황에 적응할 수 있도록 합니다. 좋은 PLC 프로그램은 "흔적"을 남기지 않고 불법적인 작업을 거부하고 합법적인 작업만 허용할 수 있습니다.
연동은 불법적인 작업을 거부하는 일반적인 방법입니다. 릴레이 회로는 종종 이 방법을 사용하며 PLC도 이 방법을 계승할 수 있습니다.
5. 수정의 용이성
프로그램은 수정하기 쉬워야 합니다. PLC의 특징 중 하나는 다양한 상황에 적응할 수 있는 편리성과 유연성입니다. 이는 프로그램을 수정하거나 재설계함으로써 달성됩니다.
프로그램 재설계는 PLC 프로세스의 적용 요구 사항을 변경해야 할 때 사용됩니다. 프로그램을 다시 작성해야 할 뿐만 아니라 I/O도 재할당해야 합니다. 대부분의 경우 프로그램을 다시 작성할 필요는 없습니다. 사소한 수정이면 충분합니다. 이를 위해서는 프로그램을 쉽게 수정할 수 있어야 합니다.
수정이 쉽다는 것은 유연성을 의미하기도 하며, 매개변수 변경이나 작업 수정 목적을 달성하기 위해 약간의 변경만 필요합니다.
6. 확장성
많은 프로그램이 사이트에 배포되기 전에 미리 프로그래밍되어 있을 수 있지만{0}}추가 프로그램을 사이트에 추가해야 할 수도 있습니다.- 전체 시스템 구조를 방해하지 않으려면 각 기능 영역에 백업 하드웨어를 위한 충분한 공간을 확보해야 합니다. 소프트웨어는 수동, 자동, 반자동 작동을 염두에 두고 설계되어야 하며 그에 따라 공간을 할당해야 합니다.
7. 종합 경보 시스템
PLC 시스템은 모든 사고로 크든 작든 손실이 발생할 수 있는 산업 환경에서 자주 사용됩니다. 사고 예방이나 사고 발생 시 손실 최소화를 위해서는 PLC의 경보 및 보호 기능이 강조되어야 합니다. 따라서 이는 시스템의 중요한 구성 요소로 강조됩니다.
8. 프로그램 시뮬레이션
현장 디버깅 진행을 확인하거나{0}}고객 시연을 위해 배포 전에 프로그램의 완전 자동 시뮬레이션이 필요한 경우가 많습니다. 이를 위해서는 기존 프로그램에 시뮬레이션 프로그램 섹션을 추가해야 하며, 정상적인 현장 작동 후에는 연결이 끊어집니다.- 프로그램이 시뮬레이션을 수행할 수 있도록 하려면 다음 단계가 필요합니다.
(1) 실제 PLC I/O 지점을 중간 변수 또는 데이터 블록 변수로 변환합니다.
(2) 공정 요구사항에 따라 각 장비에 대한 시뮬레이션 프로그램을 작성합니다.
좋은 PLC 프로그램은 위의 요구 사항을 충족하는 프로그램이라고 볼 수 있습니다.
PLC 프로그래밍 사양
1. 적절한 PLC 모델과 I/O 포인트 수를 선택합니다. 특정 기능 요구 사항에 맞는 특수 기능 모듈을 선택하십시오.
2. 선택한 PLC 프로그래밍 지침과 컴파일 소프트웨어를 숙지하십시오.
3. 내부 릴레이, 홀딩 릴레이, 데이터 레지스터, 타이머 및 카운터를 포함한 소프트 구성요소를 계획합니다.
4. 일반적으로 오류 추출, 오류 처리, 수동 처리, 자동 처리 및 출력 처리 순서에 따라 프로그램을 계획합니다. 대규모 프로젝트나 장비는 자동화된 생산 라인의 엘리베이터, 이송 장치, 리프팅/회전 장치와 같은 기능 단위로 나누어야 합니다. 위의 단위 구조에 따라 세그먼트와 블록 단위로 프로그래밍해야 합니다.
5. 각 세그먼트 또는 블록 기반 프로그램 앞에 간단한 세그먼트 설명을 추가하여 해당 기능을 설명합니다. 필요한 경우 해당 프로세스 흐름을 표시하십시오. 전체 프로그램 내에서 세그먼트 또는 블록{4}} 기반 프로그램의 순서는 일반적으로 가독성을 위해 프로세스 흐름 순서를 따라야 합니다.
6. 프로그램 설계 전에 장비를 추상화해야 합니다. 정지, 비상 정지, 과부하, 초과-제한, 타임아웃, 안전 라이트 커튼, 충돌 정지, 도어 스위치 등의 공통 요소를 추출하여 시동-회로 또는 시동-주 제어 및 인터록 회로에 배치해야 합니다. 이는 전체 프로그램 구조의 중요한 전제 역할을 합니다. 이를 기반으로 프로그램은 자동과 수동이라는 두 가지 주요 기능 영역으로 나뉩니다.
7. 수동조작 및 장비와 인명안전을 위협하는 요인 등 프로그램 구조 중 수동기능 영역의 공통요소를 추출하여 수동주제어 및 인터록 회로에 배치하여 수동제어를 위한 보호, 차폐, 경보를 수행하여야 한다.
8. 자동운전, 초과-제한, 타임아웃 요소 등 프로그램 구조의 자동 기능 영역의 공통 요소를 추출하여 자동 메인 제어 및 인터록 회로에 배치하여 자동 제어 대상 장비를 보호, 차폐 및 경보해야 합니다. 일반적인 원칙은 장비 출입을 엄격하게 제한하고 장비 출입을 느슨하게 제한하여 안전을 보장하는 것입니다.
9. 장비의 오작동 시 쉽고 빠르게 정상적인 장비 작동을 복구할 수 있도록 마스터 리셋 기능을 프로그램에 설계해야 합니다. 마스터 재설정은 재설정 과정에서 장비와 인력의 안전을 충분히 고려해야 합니다.
10. 자동 모드에서 수동 모드로 전환할 때 프로그램은 자동 모드의 출력 및 중간 상태를 지워야 합니다. 특히 자동 모드에서 SET 명령을 사용하는 경우에는 수동 모드에서 RESET 명령을 사용하여 클리어해야 합니다.
11. 프로그래밍에서는 이중 출력이 엄격히 금지됩니다. 즉, 동일한 출력 문 또는 동일한 출력 코일이 프로그램에 두 번 이상 나타납니다. 다른 모드 조건에서 동일한 출력 포인트의 경우 전송용 중간 릴레이를 사용하고 마지막으로 이를 단일 출력 포인트로 결합합니다.
12. 터치스크린을 사용할 경우 터치스크린과 PLC가 공유하는 제어 영역 및 상태 영역을 다른 기능 프로그래밍에 사용해서는 안 됩니다.
13. 특수 PLC 모듈을 사용하기 전에 해당 모듈의 제어 영역과 상태 영역이 작업 워드를 차지하고 있는지 확인하십시오. 그렇다면 이러한 작업 단어를 다른 목적으로 프로그래밍하지 마십시오.
14. PLC 입력, 출력, 중간 릴레이, 타이머, 카운터 및 데이터 레지스터에는 한자로 주석을 달아야 합니다. 입력 및 출력에는 구성 요소 이름과 태그 번호도 포함되어야 합니다. 해당 입력 포인트는 일반적으로 외부 스위치에 연결된 NO 접점으로 기본 설정됩니다. NC 접점이 필요한 입력의 경우 설명에 이를 지정해야 합니다. 모든 의견은 명확하고 모호하지 않아야 하며 오해를 피하고 일반적인 용어의 사용을 최소화해야 합니다.
15. 프로젝트 디버깅이 완료된 후 최종 소프트웨어 프로그램을 보관해야 합니다. 저장된 파일 이름에는 프로젝트 번호, 작성자, 날짜, 버전 번호가 포함되어야 합니다.
16. 프로그램 암호화 관련: 암호화된 프로그램의 비밀번호는 전용 파일에 저장되어야 하며 사용자 이름, 비밀번호 및 권한이 명확하게 표시되어야 합니다. 비밀번호를 익히고 비밀번호 분실로 인해 프로그램에 접근할 수 없는 상황을 방지하려면 이 파일을 최소한 두 사람에게 배포해야 합니다.
프로그래밍 제안
1. PLC와 호스트 컴퓨터(또는 터치스크린)가 모니터링 시스템을 구성할 때 화면에 "수동" 및 "자동"과 같은 제어 모드를 표시해야 하는 경우가 많습니다(일반적으로 여러 모드에는 하나만 있을 수 있음). 프로그램에서는 "MOV" 명령을 사용할 수 있습니다. 예를 들어, "수동"을 선택하면 상수 1이 레지스터 VB10으로 이동됩니다. "자동"을 선택하면 2가 동일한 레지스터 VB10으로 이동됩니다. 레지스터의 데이터를 확인하여 시스템의 제어 모드를 결정할 수 있습니다. 이 접근 방식의 장점은 이해가 쉽고 연동과 같은 복잡한 절차가 필요하지 않다는 것입니다.
2. 프로그램에 아날로그 신호 제어가 포함될 때 판독된 아날로그 신호에 사실상 오류가 없으면 시간 필터링을 사용하여 입력을 지연시킬 수 있습니다. 읽은 데이터에 큰 오류가 있는 경우 평균화와 같은 다른 필터링 방법이 필요합니다. 자세한 내용은 관련 문서를 참조하세요.
3. 프로그램 디버깅 중에 조건이 충족되었지만 출력 코일이 활성화되지 않은 경우 프로그램의 이 섹션이 `JUMP go to`와 같은 명령문 내에 있는지 확인하십시오. 또 다른 가능성은 프로그램 중단 후 조건이 충족되지만 출력이 없다는 것입니다. 이는 일반적으로 프로그램의 이 섹션이 검사되지 않음을 나타냅니다.
4. 순차 제어 프로그램에서는 하나의 동작이 완료되고 다음 동작이 시작될 때 +10+10 제어 모드가 매우 편리합니다. 아이디어는 다음과 같습니다. 레지스터는 초기화 중에 0으로 사전 설정됩니다. 시스템 시작 후 10씩 증가하여 레지스터 값이 10이 됩니다. 레지스터가 10이면 첫 번째 작업을 수행할 수 있습니다. 첫 번째 작업 후 레지스터는 다시 10씩 증가하여 레지스터 값을 20으로 가져오고 두 번째 작업을 수행할 수 있습니다. 두 번째 작업 후에는 다시 10씩 증가하여 레지스터 값이 30이 됩니다. 이렇게 하면 레지스터의 값을 확인하여 원하는 작업을 결정할 수 있습니다. 점프 동작이 필요한 경우 특정 요구 사항에 따라 증분을 10에서 20, 30 등으로 변경할 수 있습니다.
왜 1이 아닌 10씩 증가합니까? 10씩 증가한 후 세그먼트를 삽입해야 하는 경우 사용 가능한 10개의 슬롯 중 하나에 삽입할 수 있기 때문입니다.
5. 프로그램을 설계할 때 프로세스 관련 오류(제어 시스템에 의해 제어되지 않음)가 발생하는 경우 오류 현상을 유지하고 운영자가 시스템을 재설정할 때까지 시각 및 청각 경보를 제공하여 오류를 인지할 수 있도록 하는 것이 가장 좋습니다. 그렇지 않고 시스템이 멈추면 다른 사람들은 프로그램에 문제가 있다고 생각할 수도 있습니다. 일반적으로 새 시스템을 설계할 때 이러한 사항을 고려해야 합니다.
6. 자주 호출되는 서브루틴을 빈번한 호출을 위한 서브모듈로 만들 수 있습니다.
7. 생산 기계 작업 주기의 각 단계는 실행하는 데 일정 시간이 필요하고 이 시간에는 특정 제한이 있으므로 모니터링할 단계 시작과 동시에 타이머를 시작할 수 있습니다. 타이머의 시간 설정은 작업의 일반 지속 시간보다 20%~30% 더 길어야 합니다. 타이머의 출력 신호는 경보 또는 자동 종료 장치에 사용될 수 있습니다. 단계의 시간이 지정된 시간을 초과하여 해당 타이머 사전 설정 시간에 도달하고 다음 단계가 시작되기 전에 타이머는 오류 신호를 발행합니다. 이 신호는 정상적인 작동 주기를 중지하고 경보 또는 종료 절차를 시작합니다. 이것이 우리가 흔히 과잉-주기 보호라고 부르는 것입니다.
8. 일부 안전 감지 스위치(예: 비상 정지 버튼, 안전 라이트 커튼, 리미트 스위치 등)는 상시 폐쇄(NC) 입력을 사용해야 합니다.
9. 안전 및 에너지 절약을 고려하여 출력은 정지가 필요할 때까지 계속 출력하도록 설계하기보다는 필요할 때만 활성화되고 동작이 완료되면 정지하도록 설계해야 합니다.
10. 액추에이터의 작동 원리는 불규칙하게 움직이는 것보다 가만히 있는 것이 더 좋습니다.
11. 단일-장치 장비 제어: 각 장치에는 수동/자동 전환 기능이 있어야 하며 수동 작동 중 시작/중지 기능이 있어야 합니다. 자동 작동에서 수동 작동으로 전환할 때 장비가 정지되어서는 안 됩니다. 수동에서 자동으로 전환할 때 장비의 시작/중지는 자동 프로그램에 따라 달라집니다.
12. 각 장비(펌프, 팬 및 기타 대형 장비)는 24시간 작동 후 회전해야 하며, 호스트 컴퓨터에서 시작/중지 순서를 설정하지 않는 한 누적 작동 시간 기록이 있어야 합니다. 그렇지 않으면 운영자가 수동으로 설정해야 합니다.





