Add OPC-UA Data Source
Connect to your packaging line equipment
<div style="margin-bottom: 16px;">
<label style="display: block; font-weight: 500; margin-bottom: 6px;">Source Name</label>
<input type="text" id="source-name" value="Packaging Line 1" style="width: 100%; padding: 10px 12px; border: 1px solid #e5e7eb; border-radius: 6px;">
</div>
<div style="margin-bottom: 16px;">
<label style="display: block; font-weight: 500; margin-bottom: 6px;">OPC-UA Endpoint</label>
<input type="text" id="opcua-endpoint" value="opc.tcp://192.168.1.10:4840" style="width: 100%; padding: 10px 12px; border: 1px solid #e5e7eb; border-radius: 6px;">
</div>
<div id="connection-status" style="display: none; margin-bottom: 16px; padding: 12px; border-radius: 6px; background: #ecfdf5; border: 1px solid #a7f3d0;">
<p style="color: #065f46; font-weight: 500; margin-bottom: 8px;">Connection successful</p>
<p style="color: #6b7280; font-size: 14px;">Found 5 signals:</p>
<ul style="color: #6b7280; font-size: 13px; margin-top: 8px; padding-left: 20px;">
<li>ns=2;s=CV01.Status (Conveyor Running)</li>
<li>ns=2;s=CV01.FaultCode (Conveyor Fault)</li>
<li>ns=2;s=DV01.Position (Diverter Position)</li>
<li>ns=2;s=CS01.RejectFlag (Color Check Failed)</li>
<li>ns=2;s=CNT01.Value (Box Counter)</li>
</ul>
</div>
<div style="display: flex; gap: 12px; justify-content: flex-end;">
<button class="btn btn-secondary" id="modal-cancel">Cancel</button>
<button class="btn btn-secondary" id="test-connection">Test Connection</button>
<button class="btn btn-primary" id="add-analyze" style="display: none;">Add & Analyze</button>
</div>