2013-09-27 11 views
1

OPC 서버에 연결하고 태그 속성을 읽는 MATLAB 응용 프로그램을 만들고 있습니다. matlab에 문서 나 그룹을 추가 태그 항목을 추가하고 값을 읽을 수있는 날을 말하고있다 :OPC 데이터 그룹에 사용자 지정 항목을 추가하는 방법

grp = addgroup(da, 'ExRead'); 
itm = additem(grp, 'Tag.Argument'); 

문제는 내가 태그 인수를 모르겠입니다, 내 응용 프로그램에서 사용자가 선택이다 받아들이는 PopupMenu과 가치에 사용 가능한 태그는 문자열에 기록됩니다,하지만 난 호출 할 때 :

val = get(handles.popupmenu1, 'Value'); // Ask for Value selected item 
string_val = get(handles.popupmenu1, 'String'); // Ask for string 
stringName = string_val{val}; // Ask for string corresponding to the specified value 
set(handles.text1, 'String', stringName); // Display the selected tag 
item1 = additem(Group1, stringName); // Add the selected string to a global group "Group1" 
read1 = read(Group1, item1); // Read the value 
set(handles.text11, 'String', read1); // Display the value 

을하지만이 코드를 실행하면 MATLAB 오류를 생성합니다. 나는 문제가 있다고 생각한다 item1 = additem(Group1, stringName); 모든 MATLAB 문서 예제에서 나는 무엇인가를 본다 item1 = additem(Group1, 'adres.adres.1'); 이것은 어떤 데이터도 Group1에 추가 할 수없는 이유를 설명해야한다.

하지만 사용자가 지정/선택해야하는 태그 그룹에 항목을 추가하려면 어떻게해야합니까?

답변

0

Group1은 여기에 변수로 표시됩니다. 즉, 정의되지 않습니다. 아마도 'Group1'을 인용 부호로 입력하셨습니까? 그러면 Group1이라는 그룹에 item이 추가됩니다.

+0

"그룹 1 지정되지 않은"오류를 해결했습니다. Matlab 구문을 사용하려면 모든 범위에서 전역 변수를 선언해야합니다. 하지만 여전히 "text11"텍스트 상자에 표시 할 태그 속성을 가져올 수 없습니다. –

+0

태그 속성이 숫자입니까? 그럴 경우'set (handles.text11, 'String', num2str (read1)); ' –

+0

아니요 숫자가 아닙니다. 문제는 item1 = additem (Group1, stringName); 모든 MATLAB 문서 예제에서 item1 = additem (Group1, 'adres.adres.1')과 같은 것을 볼 수 있습니다. 이것은 그룹 1에 데이터를 추가 할 수없는 이유를 설명해야합니다. 하지만 사용자가 지정해야하는 태그 그룹에 항목을 추가하는 방법은 무엇입니까? 위의 모든 내용을 명확하게하기 위해 질문에 추가하겠습니다. –

0

내가 제대로 이해하면 어떤 태그 이름을 사용해야하는지 알지 못합니다.

올바른 항목 ID (태그 이름)는 일반적으로 서버 주소 공간을 탐색하여 찾습니다.

응용 프로그램에서 (가능한 경우 MATLAB을 사용하여) 탐색을 구현하기 전에 Prosys OPC Client과 같은 테스트 클라이언트를 사용하여 주소 공간을 탐색하고 사용할 적절한 ItemID를 찾을 수 있습니다.