전체 문서
Win32 실행 파일
GERT 네트워크 형태로 위험 개체의 구조를 설명하고 각 노드에 대한 위험 요소 추정치를 계산할 수 있는 Visual Basic 6의 데스크톱 응용 프로그램입니다. 이 시스템은 Visual C++/ATL로 구현된 COM 개체 기반 엔진을 기반으로 하며 위험을 평가하기 위한 플러그인 시스템이 있습니다. 각 플러그인은 COM 개체입니다. 또한 Mathcad에 통합하기 위한 COM 객체 형태의 시스템 파사드도 있습니다.
사용된 위험 등급 척도는 수동으로 쉽게 등급을 매기기에는 너무 큽니다(11점). 따라서 시스템의 필수 부분은 계산의 자동화 구성 요소입니다(그림 5.1 참조). 이를 위해 다음 단락에 설명된 특별한 기술이 제안되고 구현됩니다. 확인된 위험 중 상당수는 안전 엔지니어가 사용하는 위험과 중복되는 것으로 나타났습니다. 이는 조건, 산업 보건 및 안전을 평가하는 방법이 많은 위험 요소에 상대적으로 쉽게 적용될 수 있다는 사실로 표현되는 개발된 모델의 중요한 이점을 의미합니다. 기존 방법을 사용하면 위험한 생산 시설에 대한 GOST, 규정 및 문서를 기반으로 물체의 다양한 정량적 특성을 결정하고 이를 범용 척도(점수)로 변환할 수 있다는 것이 중요합니다. 이러한 방법의 존재와 테스트는 필수적이며, 추정치를 계산하기 위한 방법론을 개발하는 매우 노동 집약적인 프로세스를 단순화합니다. 제안된 방법론은 많은 경우에 사용될 수 있지만 항상 그런 것은 아니며 모든 전문가가 이 접근 방식에 만족하는 것은 아닙니다. 따라서 더 큰 유연성이 필요합니다. 이것이 위험과 관련된 외부 구성요소로서 평가 모듈의 구현을 기반으로 아키텍처가 개발된 이유입니다. 이러한 유연성을 제공하려면 사용자(일반적으로 전문가)에게 자신의 가치 추정 알고리즘을 구현하고 자신의 구조와 데이터베이스를 사용할 수 있는 기능을 제공해야 합니다. 이러한 모듈과 Hazard 시스템 간의 연결 유형은 단순하므로 Visual Basic for Application으로 제품에 부담을 주는 것은 바람직하지 않습니다. 이러한 알고리즘 개발의 세부 사항은 복잡한 데이터 구조로 작업해야 하는 필요성에 따라 결정됩니다. 따라서 호스팅 스크립트는 구조화된 데이터를 처리하는 대신 객체 관리를 위한 알고리즘을 구현하도록 설계되었기 때문에 부적합하고 부당하게 제품을 무겁게 만듭니다. 여기서 최적의 개념은 COM 기술을 사용하여 구현된 확장 모듈(플러그인)의 개념입니다. 이러한 모듈은 일반적으로 매우 컴팩트합니다(크기가 작고 다양한 라이브러리 및 구성 요소에 대한 의존성이 거의 없으며 리소스를 거의 소비하지 않음). COM 기술을 사용하여 구성 요소를 개발할 수 있는 도구가 있는 모든 언어로 구현될 수 있습니다. 이는 더 큰 구현 유연성을 제공하지만 그 자체로 작업에 심각한 기술적 복잡성을 초래하지는 않습니다. 예를 들어 Visual C++를 사용하여 하위 수준 도구 및 언어로 이 구성 요소를 구현하면 작업 강도와 복잡성이 크게 증가합니다. 그러나 숙련되지 않은 프로그래머도 접근할 수 있는 방법으로, 노동 집약도가 가장 낮고 매우 효과적인 방법으로 Visual Basic으로 구현하는 것이 제안되었습니다. Hazard와의 통신 유형은 매우 간단하며 구성 요소는 IFactorAssign 인터페이스를 구현하고 IDispatch 인터페이스 및 MGertNet 이중 인터페이스를 사용하여 COM 클라이언트로 작동할 수 있는 프로세스 내 COM 서버만 있으면 됩니다. Visual Basic 6을 사용하여 프로세스 내 COM 서버에 의해 구현되는 이러한 COM 개체를 만드는 것은 간단하며 기본적으로 자동화되어 있기 때문에 숙련되지 않은 프로그래머도 쉽게 수행할 수 있습니다. 확장 개발의 공식화된 본질에 따라 사양의 내용이 결정됩니다. Hazard가 구성 요소를 인식하고 연결하고 상호 작용할 수 있으려면 다음이 필요합니다.
예를 들어, 매우 복잡한 제품이자 가중 평균 기술을 구현하는 범용 확장이 Visual Basic 6에서 구현되었습니다. 가중 평균 방법을 사용하여 구현된 평가 모듈은 보편적이므로 정교한 그래픽 인터페이스, 복잡한 동적 데이터 구조 및 편집기를 사용하므로 광범위한 OPO를 효과적으로 설명할 수 있습니다. 그러므로 전형적인 예는 아니다. 그러나 이미 지적한 바와 같이 이러한 모든 어려움은 Hazard와의 상호 작용 메커니즘과 관련이 없지만 이 구현의 특징이며 이에 대한 특정 요구 사항(보편적 상용 제품)입니다. 특별한 경우(공식적으로 사용하는 경우)에는 Visual Basic을 사용하여 미숙련 프로그래머도 효과적으로 개발할 수 있는 정적 구조로 간단한 모듈을 만드는 것이 좋습니다.
Hazard는 Visual Basic 6을 사용하여 out-of-process COM 서버(ActiveX EXE)로 구현되며 COM 클래스 Hazard.HazardApp로 표시됩니다. 위험한 생산 시설에서 발생하는 사고 개발 모델 코드, 모델 실행 코드, 최적화 알고리즘을 포함하는 Hazard 코어는 Visual C++ 6.0(ATL)을 사용하여 프로세스 내 COM 서버(ActiveX DLL)로 구현됩니다. ) COM 클래스 GERTNETLib.MGertNet으로 표시됩니다. Hazard는 Hazard.HazardApp를 생성하여 자체 인스턴스를 생성하는 기능을 제공하는 OLE 자동화 클라이언트에서 사용할 수 있습니다. HazardApp 클래스에는 OLE 자동화 서버 모드에서 작업하는 특성을 고려하여 특수 계층이 구현된(아주 "조잡하지만") Hazard의 기능에 대한 제한된 액세스를 제공하는 여러 공용 속성과 메서드가 있습니다. 이 계층은 기능의 올바른 실행뿐만 아니라 위험 코어에 대한 액세스도 보장합니다. 후자는 Hazard를 실행하지 않고 MGertNet 인스턴스를 생성하여 직접 사용할 수도 있습니다. GERTNETLib 라이브러리의 대부분의 인터페이스와 클래스는 공개되어 생성되지만(공개, 생성 가능) 인터페이스에 대한 포인터의 확장 변환이 C++ 객체 구현 유형으로 확장되므로 해당 구현은 거기에 설명된 인터페이스 구현에 크게 제한을 부과합니다. 수행됩니다. 따라서 Hazard 코어를 직접 사용하려면 엄격한 규칙을 따라야 합니다. Hazard 인스턴스 생성:
Dim m_haApp As HazardApp
Set m_haApp = CreateObject( "Hazard.HazardApp" )
비동기 작업의 진행 상황을 클라이언트에 알리기 위해 HazardApp 및 MGertNet은 ICallBack 인터페이스를 사용하여 싱크에 대한 연결 지점을 제공합니다. HazardApp 인스턴스에 포함된 개체를 살펴보겠습니다. GertNetMain (읽기 전용) – 사고 개발 모델. 모델이 없는 경우(로드되지 않았거나 새 모델이 생성된 경우) 비어 있습니다(아무것도 없음). GertNetMainDsp (읽기 전용) – 사고 개발 모델의 IDispatch 인터페이스입니다. 모델이 없는 경우(로드되지 않았거나 새 모델이 생성된 경우) 비어 있습니다(아무것도 없음).
GN_Opt (읽기 전용) – 최적화에 사용되는 모델의 복사본입니다. 최적화가 실행되는 동안에만 설정하십시오.
GN_Rang (읽기 전용) – 순위에 사용되는 모델의 복사본입니다. 순위가 진행되는 동안에만 설정됩니다.
GN_Run (읽기 전용) – 실행 중에 사용된 모델의 복사본입니다. 실행 실행 중에만 설정됩니다.
Rep1 (읽기 전용) – 모델(실행, 모델)에 대한 보고서 모음입니다.
Rep2 (읽기 전용) – 측정값 세트(최적화, 복합물, 측정값 세트의 시험 적용)에 대한 보고서 모음입니다.
XCollection (읽기 전용) – 보안 개선 조치 모음입니다. 각 컴플렉스는 활동 모음(CollSF)으로 설명됩니다. 각 이벤트(SafetyPrecaution)에는 모델에 대한 영향(FChange) 모음이 포함되어 있습니다. 다양한 측정값에 액세스하려면 SFnn(n)이라는 공용 속성이 하나 더 있습니다. 색인화되어 있으며 읽기 전용입니다.
열거자 (읽기 전용) – 열거자의 컬렉션입니다.
요인 (읽기 전용) – 위험 요인 모음입니다. 이 컬렉션의 각 요소에는 Enumerators 컬렉션의 열거자가 할당됩니다.
OptimizResultsGetAndClear (읽기 전용) – SAFEARRAY(IDispatch). 최적화가 수행된 후에 사용됩니다. 이 속성이 호출되면 보안 개선 조치 컬렉션의 IDispatch 인터페이스에 대한 포인터 배열이 반환됩니다. 이 경우 호출 클라이언트는 컬렉션의 소유자가 되고 Hazard 코어는 컬렉션에 대한 참조를 릴리스합니다. 따라서 한 번만 호출할 수 있습니다. 각 컬렉션에는 최적화 문제에 대한 가능한 솔루션인 활동 선택이 포함되어 있습니다.
모델 편집자 | 점수표 편집기 |
보안 강화 편집자 | 패키지 모니터 측정 |