메신저는 메인 프로젝트에 정의 된 전역 상수를 사용하는 일을하는 twincat 3 라이브러리를 구현하려고합니다. 그러한 상수 크기의 배열을 생성하고 저수실을 순환시키는 것과 같습니다. 그러나 나는 실패했고 나는 이것이 할 수 있는지 궁금해. 나는이 오류를 얻는다. "오류 4 테두리 '배열의 cPassedConstant'는 주 프로젝트를 빌드하려고 할 때 상수 값이 아니다." 이 오류는 라이브러리에 정의 된 배열에서 비롯됩니다.라이브러리에서 상수를 참조 할 때, twincat 3
나는 라이브러리에 같은 이름의 상수로 GVL을 만든 다음 "외부 구현"속성을 true로 설정하려고 시도했지만 도움이되지 않습니다.
여기 내 목표는 필터링 등으로 IO 관리 라이브러리를 만드는 것입니다. 그런 다음 주 프로젝트에 추가하고 "cDigitalIputsCount", "cAnalogInputCount"등과 같은 상수를 정의 할 수 있습니다.
정말이 문제를 이해하지 못합니다. 상수가 라이브러리에 있어도 상수를 사용하는 배열은 가능합니다. 라이브러리에있는 내용과 다른 프로젝트에있는 내용을 명확히 구분하여 코드를 제공해 주실 수 있습니까? –
나는 상수가 메인 프로젝트에서 정의되고 라이브러리에 의해 사용되도록 특별히하고 싶다. 예를 들어 10 개의 아날로그 I/O가있는 시스템을 만들고 싶습니다. –
...그런 다음 주 프로젝트에 IO 라이브러리를 포함시키고 전역 상수를 정의합니다. CAINs : UINT : = 10; MAIN에서는 라이브러리에있는 PRG_IO POU를 호출 할 것입니다. PRG_IO에는 FOR 루프에서 실행될 FB_AnalogIn의 ARRAY [1..cainss]가 있습니다. 또한 라이브러리에는 F_GetAnalogIn 함수가있어 FB에 대한 필터링 된/크기 조정 된 AI 값을 가져옵니다. 몇 가지 상수를 정의하고 PRG_IO를 호출하여 라이브러리를 포함하는 것만으로 다양한 IO IO 시스템을 쉽게 만들 수 있다는 점을 지적하십시오. 너 이제 이해하니? –