산업기술
펌웨어 버전 2023.0에는 오랫동안 기다려온 OPC UA 클라이언트 구성 요소가 포함되어 있습니다. PLCnext Info 센터에는 이 기능에 대한 유용한 기술 참조가 포함되어 있습니다.
이 튜토리얼은 PLCnext Control 장치에서 OPC UA 클라이언트가 OPC UA 서버와 데이터를 교환하도록 구성하는 방법을 보여주는 단계별 가이드입니다.
OPC UA 통신을 구성할 때 기억해야 할 핵심 사항 중 하나는 보안상의 이유로 OPC UA 클라이언트와 OPC UA 서버가 서로를 신뢰해야 한다는 것입니다. 따라서 클라이언트 장치와 서버 장치 간에 보안 인증서를 교환해야 합니다. 이 절차에는 클라이언트 장치와 서버 장치 사이를 이동하는 작업이 포함되어 있어 약간 혼란스러울 수 있습니다. 보안 검사를 비활성화하지 않고 절차를 더 간단하게 만드는 방법에 대한 제안 사항이 있으면 댓글에 자유롭게 추가해 주세요.
PLC의 IP 주소를 검색하여 웹 기반 관리(WBM) 사이트를 엽니다.
시스템 서비스를 선택합니다. 구성 메뉴의 항목입니다.
OPC UA 서버 활성화 서비스가 아직 활성화되지 않은 경우.
적용 및 재부팅을 누릅니다. 필요한 경우 버튼을 누르세요.
PLCnext Engineer를 엽니다.
PLCnext Control 장치용 템플릿을 사용하여 새로운 PLCnext Engineer 프로젝트를 생성하십시오.
PLCnext Engineer 프로젝트에서 PLC의 IP 주소를 설정하세요.
OPC UA 서버에서 구성 페이지:
DNS 이름/IP 주소 설정 OPC UA 클라이언트가 서버의 DNS 이름 또는 IP 주소를 사용하여 서버에 액세스하는지 여부에 따라 PLC의 DNS 이름 또는 IP 주소에 연결됩니다. 이 정보는 OPC UA 서버 보안 인증서에 포함됩니다. 많은 OPC UA 클라이언트는 인증서의 정보가 서버 URL과 일치하지 않으면 서버 인증서를 거부합니다.
변수 공개 설정 표시됨 . 이는 OPC 속성으로 표시된 모든 변수가 OPC UA 서버를 통해 접근 가능하다는 것을 의미합니다.
OPC UA 서버에서 노출할 변수를 만듭니다. OPC를 확인하세요. 해당 변수에 대한 확인란이 선택되어 있습니다. 아래 예에서는 메인 프로그램에 두 개의 변수가 생성되었습니다.
새 입력 값이 수신되면 출력 변수를 변경하는 로직을 추가합니다. 이 예에서 Main 프로그램은 다음 코드를 실행했습니다:
Server_Data_Out := Server_Data_In + 1;
프로젝트를 작성하고 시작하세요.
PLCnext Engineer 버전 2025.0 이상에는 OPC UA 클라이언트에서 변수 항목을 생성하는 데 사용할 수 있는 "찾아보기" 기능이 포함되어 있습니다. 해당 찾아보기 기능을 사용하면 서버 변수에 대한 정보를 얻기 위해 UaExpert를 사용할 필요가 없으며 다음 세 단계는 건너뛸 수 있습니다.
PLC 사용자 이름과 비밀번호를 사용하여 OPC UA 서버에 연결하려면 UaExpert를 사용하십시오. 인증서가 "신뢰할 수 없음"이라는 경고가 표시되지만 다른 경고는 표시되지 않습니다.
영구적으로 또는 이 세션 동안만 서버 인증서를 신뢰하십시오.
각 서버 변수에 대해 노드 ID의 이름을 적어 둡니다. 및 네임스페이스 해당 변수에 대해.
서버 PLC에 대한 WBM 사이트를 다시 엽니다.
인증서 인증을 선택합니다. 보안 메뉴의 항목입니다.
ID 저장소를 선택합니다. 탭.
OPC UA 자체 서명에서 인증서를 다운로드합니다. [서버] ID 저장소. 키 쌍은 다운로드할 필요가 없습니다.
PLC의 IP 주소를 검색하여 웹 기반 관리(WBM) 사이트를 엽니다.
시스템 서비스를 선택합니다. 구성 메뉴의 항목입니다.
OPC UA 클라이언트 활성화 서비스가 아직 활성화되지 않은 경우.
적용 및 재부팅을 누릅니다. 필요한 경우 버튼을 누르세요.
재부팅이 완료되면 WBM 사이트에 다시 로그인하고 인증서 인증을 선택하세요. 보안 메뉴의 항목입니다.
신탁 판매점을 선택하세요. 탭.
OPC UA 자체 서명 추가 OPC UA 클라이언트라는 Trust Store에 대한 [서버] 인증서(이전에 다운로드함) . 이제 OPC UA 클라이언트는 OPC UA 서버가 해당 ID를 확인하는 데 사용하는 보안 인증서를 신뢰합니다. 이 단계는 서버 인증서가 변경될 때마다 반복되어야 합니다.
ID 저장소를 선택합니다. 탭.
OPC UA 클라이언트 자체 서명에서 인증서를 다운로드합니다. 신원 저장소. 키 쌍은 다운로드할 필요가 없습니다.
PLC의 IP 주소를 검색하여 웹 기반 관리(WBM) 사이트를 엽니다.
인증서 인증을 선택합니다. 보안 메뉴의 항목입니다.
신탁 판매점을 선택하세요. 탭.
OPC UA 클라이언트 자체 서명 추가 OPC UA 구성 가능이라는 Trust Store에 대한 인증서(이전에 다운로드함) . 이제 OPC UA 서버는 OPC UA 클라이언트가 해당 ID를 확인하는 데 사용하는 보안 인증서를 신뢰합니다. 클라이언트 인증서가 변경될 때마다 이 단계를 반복해야 합니다.
PLCnext Engineer를 엽니다.
PLCnext Control 장치용 템플릿을 사용하여 새로운 PLCnext Engineer 프로젝트를 생성합니다. OPC UA 클라이언트와 OPC UA 서버 모두에 동일한 장치를 사용하는 경우 동일한 PLCnext Engineer 프로젝트가 사용됩니다.
PLCnext Engineer 프로젝트에서 PLC의 IP 주소를 설정하세요.
2023.6 이전 펌웨어 버전을 실행하는 PLC에만 필요: OPC UA 서버에서 구성 페이지에서 변수 공개 상태를 설정하세요. 표시됨 . 예, OPC UA 클라이언트에 대해 이 OPC UA 서버 설정을 요구하는 것이 이상해 보입니다. 이 문제는 펌웨어 버전 2023.6 이상에서 해결되었습니다.
OPC UA 서버의 변수에 연결될 변수를 만듭니다. 2023.6 이전 펌웨어 버전을 실행하는 PLC에만 필요: OPC를 확인하세요. 해당 변수에 대한 확인란을 선택합니다(펌웨어 버전 2023.6 이상을 실행하는 PLC의 경우 확인란을 선택할 필요가 없습니다).
아래 예에서는 메인 프로그램에 두 개의 변수가 생성되었습니다.
OPC UA 클라이언트 연결 탭에서 아래와 같이 서버 하나와 변수 그룹 두 개를 추가합니다.
서버 URL, 사용자 이름, 비밀번호는 사용 중인 OPC UA 서버에 맞게 변경해야 합니다.
"구독" 변수 그룹에 아래와 같이 변수 매핑을 하나 추가합니다.
이는 OPC UA 서버의 원격 변수에서 PLCnext Engineer 프로젝트의 로컬 변수로 값을 자동으로 전송합니다.
"쓰기" 변수 그룹에 아래와 같이 변수 매핑을 하나 추가합니다.
이는 PLCnext Engineer 프로젝트의 로컬 변수에서 원격 변수(OPC UA 서버의)로 값을 자동으로 전송합니다.
PLCnext Engineer 프로젝트를 작성하고 시작하세요.
디버그 모드에서 Client_Data_out 변수의 값을 변경하세요. . 값은 Server_Data_In 변수에 기록됩니다. OPC UA 서버에서. 해당 값은 서버에 의해 증가되고 변수 Server_Data_Out에 기록됩니다. . 그러면 해당 변수의 값이 Client_Data_In 변수로 전송됩니다. 클라이언트에서.
PLCnext Info Center(페이지 하단)에서 문제 해결 가이드를 확인하세요.
Q:클라이언트가 인증서/키 인증을 사용하여 OPC UA 서버에 연결할 수 있나요?
A:아니요, 지금은 아닙니다.
Q:OPC UA 클라이언트는 서버 비밀번호를 어떻게 저장합니까?
A:현재 OPC UA 서버 비밀번호는 클라이언트 구성 파일에 일반 텍스트로 저장되어 있지만 PLCnext Runtime 개발자는 보다 안전한 비밀번호 저장 방법을 연구하고 있습니다.
Q:OPC UA 서버에서 읽은 데이터에 대한 품질 정보(예:상태 코드, 타임스탬프)를 얻을 수 있나요?
A:지금은 아닙니다. 죄송합니다.
이 문서는 현재 PLCnext Engineer에서 사용할 수 있는 서버 찾아보기 기능에 대한 정보를 포함하도록 2025년 3월 24일에 업데이트되었습니다.
PLCnext Engineer의 OPC UA 클라이언트 구성은 XML 형식으로 컨트롤러에 저장됩니다. PLCnext Engineer를 사용하지 않는 애플리케이션의 경우 컨트롤러에서 직접 XML 구성을 작성하여 OPC UA 클라이언트를 구성할 수 있습니다.
이 예에서 준비된 구성은 다음 XML 파일에 표시됩니다.
기본 OPC UA 클라이언트 설정에 필요한 모든 변경 사항은 /opt/plcnext/projects/current/Services/OpcUA/Modules/Client/client.module.config 파일에 정의되어 있습니다. :
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<OpcUAClientModuleConfigurationDocument schemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.phoenixcontact.com/schema/opcuaclientmoduleconfig" xmlns="http://www.phoenixcontact.com/schema/opcuaclientmoduleconfig">
<Application>
<CertificateStore>
<SelfSignedIdentityStoreName>OPC UA Client self-signed</SelfSignedIdentityStoreName>
<GivenIdentityStoreName>OPC UA Client</GivenIdentityStoreName>
<TrustStoreName>OPC UA Client</TrustStoreName>
</CertificateStore>
<SessionSecurity>
<ApplicationAuthentication>false</ApplicationAuthentication>
<ApplicationUriCheck>true</ApplicationUriCheck>
<CertificateHostnameCheck>true</CertificateHostnameCheck>
<CertificateTimeCheck>true</CertificateTimeCheck>
<CertificateIssuerTimeCheck>true</CertificateIssuerTimeCheck>
<PasswordEncryptionCheck>true</PasswordEncryptionCheck>
</SessionSecurity>
<Timeouts>
<SessionTimeout>1200000</SessionTimeout>
<ConnectTimeout>5000</ConnectTimeout>
<WatchdogTimeout>5000</WatchdogTimeout>
<CallTimeout>10000</CallTimeout>
</Timeouts>
</Application>
</OpcUAClientModuleConfigurationDocument>
OPC UA 클라이언트 연결은 /opt/plcnext/projects/current/Services/OpcUA/Modules/Client/Configs/ clientconnections.xml 파일에 정의되어 있습니다. :
<?xml version="1.0" encoding="utf-8"?>
<eUAClientConfigurationDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uax="http://opcfoundation.org/UA/2008/02/Types.xsd" xmlns="http://phoenixcontact.com/OpcUA/PLCnext/UAClientConfig/Types.xsd">
<eUAClientConfiguration>
<Name>ClientConnectionsConfiguration</Name>
<NamespaceArray>
<uax:String>http://phoenixcontact.com/OpcUA/PLCnext/GlobalDataSpace/</uax:String>
</NamespaceArray>
<ServerConnections>
<eUAClientServerConnection>
<EncodingMask>3</EncodingMask>
<Endpoint>
<uax:EndpointUrl>opc.tcp://192.168.1.10:4840</uax:EndpointUrl>
<uax:SecurityMode>Sign_2</uax:SecurityMode>
<uax:SecurityPolicyUri>http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256</uax:SecurityPolicyUri>
</Endpoint>
<UserTokenType>UserName_1</UserTokenType>
<UserName>admin</UserName>
<Password>xxxxxxxx</Password>
</eUAClientServerConnection>
</ServerConnections>
<VariableGroups>
<eUAClientVariableGroup>
<GroupType>Write_1</GroupType>
<CycleTime>100</CycleTime>
<NodeMappings>
<eUAClientNodeMapping>
<LocalVariable>
<uax:Identifier>ns=1;s=Arp.Plc.Eclr/MainInstance.Client_Data_Out</uax:Identifier>
</LocalVariable>
<RemoteVariableDescriptor>
<EncodingMask>2</EncodingMask>
<ServerIndex>1</ServerIndex>
<NodeId>
<uax:Identifier>ns=1;s=Arp.Plc.Eclr/MainInstance.Server_Data_In</uax:Identifier>
</NodeId>
</RemoteVariableDescriptor>
</eUAClientNodeMapping>
</NodeMappings>
</eUAClientVariableGroup>
<eUAClientVariableGroup>
<GroupType>Subscribe_0</GroupType>
<CycleTime>100</CycleTime>
<NodeMappings>
<eUAClientNodeMapping>
<LocalVariable>
<uax:Identifier>ns=1;s=Arp.Plc.Eclr/MainInstance.Client_Data_In</uax:Identifier>
</LocalVariable>
<RemoteVariableDescriptor>
<EncodingMask>2</EncodingMask>
<ServerIndex>1</ServerIndex>
<NodeId>
<uax:Identifier>ns=1;s=Arp.Plc.Eclr/MainInstance.Server_Data_Out</uax:Identifier>
</NodeId>
</RemoteVariableDescriptor>
</eUAClientNodeMapping>
</NodeMappings>
</eUAClientVariableGroup>
</VariableGroups>
</eUAClientConfiguration>
</eUAClientConfigurationDocument>
이 파일은 네임스페이스를 사용합니다. 및 노드 ID 클라이언트가 액세스할 서버 변수를 지정하기 위해 이전에 기록된 정보(UaExpert 사용).
위 파일에서 애플리케이션에 맞게 다음을 변경하세요.
uax:EndpointUrl 요소 OPC UA 서버의 IP 주소(또는 DNS 이름)를 포함해야 합니다.
Username 및 Password 요소에는 OPC UA 서버에 필요한 자격 증명이 포함되어 있어야 합니다.
중요: 이 예에서는 노드 ID UaExpert의 문자열에 ns=6 텍스트가 포함되어 있습니다. . 위 XML 파일에서는 ns=1로 변경되었습니다. , "네임스페이스" 매개변수(ns )는 로컬 클라이언트에 있는 네임스페이스 목록에 대한 색인입니다. . 이 예에서는 네임스페이스 UaExpert에서 복사된 이름은 clientconfig.xml에 있는 네임스페이스 목록의 첫 번째(유일한) 네임스페이스입니다. 파일입니다.
OPC UA 클라이언트 구성 파일을 변경한 후 PLCnext Runtime을 다시 시작해야 합니다.
산업기술
엔지니어와 관리자는 제품 개발 업계에서 긴밀하게 협력합니다. 그들은 새로운 제품 개발을 향해 생산을 진행하기 위해 상호 작용합니다. 엔지니어는 제품 설계 및 개발을 담당하고 관리자는 운영을 감독합니다. 엔지니어링 설계 프로세스는 관리자가 완전히 이해하지 못하고 그 목적을 완전히 실현하지 못합니다. 엔지니어링 설계 프로세스에 대해 관리자를 교육하면 그 목적이 무엇이며 엔지니어가 이를 활용하는 이유를 완전히 이해할 수 있습니다. 엔지니어가 된다는 것은 무엇을 의미합니까? 엔지니어는 아이디어의 범위를 지정하고, 생성하고, 평가하고,
초록 백금(Pt) 기반 나노 입자 금속은 상당한 관심을 받아 왔으며 직접 메탄올 연료 전지(DMFC)에 가장 널리 사용되는 촉매입니다. 그러나 Pt 촉매의 높은 비용, 느린 운동 산화 및 메탄올 산화 반응(MOR) 동안 CO 중간 분자의 형성은 단일 금속 Pt 촉매와 관련된 주요 문제입니다. 최근 연구는 Fe, Ni, Co, Rh, Ru, Co 및 Sn 금속과 같은 Pt 합금이나 Pt의 촉매 성능을 향상시키기 위한 탄소 지지체 재료를 사용하는 데 중점을 두고 있습니다. 최근 MWCNT, CNF, CNT, CNC, CMS, CNT,