문제

우리 모두는 OO 시스템을 테스트하는 다양한 방법을 알고 있습니다.그런데 PLC 래더 로직(묻지 마세요 :)을 다루는 프로젝트를 할 것 같고, 시스템의 유효성을 테스트할 수 있는 좋은 방법이 있는지 궁금합니다.

지금까지 내가 본 유일한 방법은 시스템의 모든 알려진 상태와 생성되는 출력 상태가 포함된 거대한 테이블을 구성하는 것뿐입니다.이는 '입력 A가 켜져 있으면 출력 B를 켜는' 간단한 경우에 적용됩니다.하지만 이것이 더 복잡한 구조에서는 작동하지 않을 것이라고 생각합니다.

도움이 되었습니까?

해결책

IC 설계 분야에서 "논리적" 시스템의 검증은 "설계 검증"으로 알려져 있으며, 이는 하드웨어(RTL)에서 설계한 시스템이 원하는 기능을 구현하는지 확인하는 프로세스입니다.

래더 로직은 Verilog와 같은 최신 HDL 중 하나로 변환될 수 있습니다.각 사다리를 변형

|---|R15|---+---|/R16|---------(R18)--------|
|           |
|---|R12|---+

와 같은 표현으로

always @(*) R18 = !R16 && ( R15 | R12);

또는 할당 문을 사용할 수 있습니다

assign R18 = R16 && (R15 | R12); 

래칭 릴레이

assign R18 = (set condition) || R18 && !(break condition);

그런 다음 다음과 같은 무료 Verilog 시뮬레이터를 사용하십시오. 이카루스 테스트벤치를 개발하고 시스템을 테스트합니다.테스트 케이스가 논리에 대한 적절한 CODE 적용 범위를 제공하는지 확인하십시오!래더 편집 소프트웨어가 적절한 이름 지정 기능을 제공하는 경우 Rnn 대신 해당 소프트웨어를 사용하십시오.

(메모:PLC 규칙을 위한 래더 로직에서 Rnn은 내부 릴레이용이고 Xnn은 입력이고 Ynn은 출력입니다. 이는 온라인 튜토리얼 중 하나에서 빠르게 확인할 수 있습니다.

Verilog는 테스트와 테스트벤치를 개발하기 더 쉬운 언어가 될 것입니다!

일부 단위 지연을 프로그래밍하는 것이 도움이 될 수 있습니다.

죄송합니다. 저는 Verilog 번역기에서 래더 로직을 찾아본 적이 없습니다.하지만 당시의 래더 로직은 단지 PLC 프로그래밍을 위해 컴퓨터에 삽입되었을 뿐이었습니다. 제가 사용한 대부분의 릴레이 시스템은 캐비닛에 연결된 실제 릴레이였습니다!!

행운을 빌어요.jbd

무료로 사용할 수 있는 몇 가지 래더 로직 편집기(시뮬레이터 포함)가 있습니다.다음은 Windows에서 실행되는 것으로 추정되는 것입니다.

http://cq.cx/ladder.pl

다른 팁

Rockwell Control Logix 컨트롤러에 대한 테스트 적용 범위 도구를 실험했습니다.대부분의 절차적 언어 테스트 적용 도구는 분기 적용 등을 수행합니다.Relay Ladder Logic은 일반적으로 분기하지 않기 때문에 제대로 작동하지 않습니다.

우리가 프로토타입한 것은 MC/DC Rockwell 컨트롤러용 RLL 코드에 대한 (수정/조건/결정 적용 범위)..이는 렁의 각 조건에 대해 해당 조건이 TRUE로 테스트되었는지, FALSE로 테스트되었는지 여부를 알려 주며, 더 중요한 것은 해당 조건이 렁에서 결정의 출력을 제어했는지 여부(적어도 결정에 의해 제어되는 작업)를 알려줍니다. 일부 테스트에서는 참 방향과 거짓 방향 모두에서 발생합니다.

이 작업은 다음과 같은 범용 프로그램 분석 및 변환 도구를 사용하여 수행됩니다.DMS 필요한 데이터를 수집하기 위해 추가 논리로 RLL 코드를 계측하는 데 사용됩니다.

여전히 단위 테스트를 코딩해야 합니다.이를 수행하는 가장 쉬운 방법은 제어하려는 기계 하드웨어를 대체할 다른 PLC를 확보하고 첫 번째 PLC를 실행하기 위해 다른 RLL 프로그램을 작성하는 것입니다.

래더 로직용 IO 시뮬레이터가 있는 LogixPro라는 프로그램이 있습니다. 시도해 볼 수 있습니다.

때로는 소규모 PLC 프로그램에서 테스트 프로그램(또는 서브루틴 또는 래더 파일)이 프로젝트에 작성되며, 이는 프로젝트가 에뮬레이트될 때만 실행됩니다.파일에는 출력에 전원이 공급되면 피드백과 관련된 입력을 켜는 간단한 논리가 있습니다.그런 다음 연결된 HMI를 통해 PLC를 제어하고 코드가 예상대로 작동하는지 확인할 수 있습니다.소프트웨어가 실제 사이트에 다운로드될 때 테스트 프로그램을 비활성화하거나 삭제하는 것은 현실 세계에서 매우 이상한 일을 할 수 있기 때문에 매우 중요합니다.

대규모 프로젝트의 경우 각 장치에는 약간 유사한 작업을 수행하는 시뮬레이션 모드가 있습니다. http://www.batchcontrol.com/s88/01_tutorial/06-modules.shtml

이는 OO 언어에 대한 테스트 프레임워크를 사용하는 것과는 다르지만 실제로 PLC에 대한 테스트 기반 개발이나 자동화된 테스트를 많이 본 적이 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top