Step-by-step runbook for techs at the imaged PC. Two symptoms covered: UDC not collecting data (admin-unlock + COM port walkthrough) and DNC not pushing to controller (NTLARS reg restore + FMS Host FQDN + Realtek PCIe GbE static IP). Mermaid overview links to each section. Live HTML uses CDN; static HTML pre-renders SVG for offline / printable use. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
283 lines
15 KiB
HTML
283 lines
15 KiB
HTML
<!doctype html>
|
|
<html><head>
|
|
<meta charset="utf-8">
|
|
<title>Post-Deploy Debug Flowchart</title>
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/github-markdown-css/github-markdown.css">
|
|
<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
|
|
<style>
|
|
body { box-sizing: border-box; max-width: 980px; margin: 2em auto; padding: 0 2em; }
|
|
.markdown-body img { max-width: 100%; }
|
|
.mermaid svg .node[role="button"] { cursor: pointer; }
|
|
.mermaid svg .node[role="button"] rect, .mermaid svg .node[role="button"] polygon { transition: filter .15s; }
|
|
.mermaid svg .node[role="button"]:hover rect, .mermaid svg .node[role="button"]:hover polygon { filter: brightness(0.92); }
|
|
@media print { body { max-width: none; margin: 0; padding: 1em; } }
|
|
</style>
|
|
</head><body class="markdown-body">
|
|
<h1 id="post-deploy-debug-flowchart-pxe-imaged-machines" tabindex="-1">Post-Deploy Debug Flowchart - PXE Imaged Machines</h1>
|
|
<p><strong>Audience:</strong> Shopfloor tech standing at a freshly imaged PC.
|
|
<strong>Scope:</strong> UDC not collecting data, and DNC not pushing programs to the controller.
|
|
<strong>Run-from:</strong> Logged in on the imaged PC as the ShopFloor local account. GUI only - no shell required.</p>
|
|
<blockquote>
|
|
<p>The few commands shown (e.g. <code>ping</code>) run from a normal Command Prompt window.</p>
|
|
</blockquote>
|
|
<hr>
|
|
<h2 id="overview" tabindex="-1">Overview</h2>
|
|
<p>Click any boxed node to jump to its section.</p>
|
|
<pre><code class="language-mermaid">%%{init: {'securityLevel':'loose'}}%%
|
|
flowchart TD
|
|
Start([PC imaged - issue reported]) --> Sym{Which symptom?}
|
|
|
|
Sym -->|UDC not collecting data| U1[Open UDC: Tools - Show All Menus]
|
|
Sym -->|DNC not pushing to controller| D1{NTLARS General tab populated?}
|
|
|
|
U1 --> U2[Scan UDC_Password barcode from S:\SPC\UDC\UDC_Password.jpg]
|
|
U2 --> U3[Tools - Options - Serial tab]
|
|
U3 --> U4{Which physical COM port is the cable in?}
|
|
U4 -->|Intel / onboard| U5[Set Port Name = COM 1]
|
|
U4 -->|PCIe add-in card| U6[Set Port Name = COM 2]
|
|
U5 --> U7[Save - File - Exit - reopen UDC]
|
|
U6 --> U7
|
|
U7 --> U8([Verify data lines populate])
|
|
|
|
D1 -->|No - fields blank| D2[NTLARS: Load... -> S:\DT\RegFiles\Dnc\Backup Copies\machine.reg]
|
|
D1 -->|Yes - fields filled| FMS{FMS Host Primary = WJFMS3.AE.GE.COM?}
|
|
|
|
D2 --> D3[Confirm General tab populated - OK]
|
|
D3 --> FMS
|
|
|
|
FMS -->|No - shows WJFMS3 short| FMS1[Update Primary to FQDN WJFMS3.AE.GE.COM - OK]
|
|
FMS -->|Yes| NIC{Realtek PCIe GbE NIC = 192.168.1.2 / 24?}
|
|
FMS1 --> NIC
|
|
|
|
NIC -->|No| NIC1[Set Realtek PCIe GbE static IP 192.168.1.2 / 255.255.255.0]
|
|
NIC -->|Yes| NIC2[ping 192.168.1.1]
|
|
NIC1 --> NIC2
|
|
NIC2 --> NIC3{Ping replies?}
|
|
NIC3 -->|No| NIC4[Check cable / controller side / duplicate IP]
|
|
NIC3 -->|Yes| Done([Retest DNC push])
|
|
|
|
click U1 "#step-1-unlock-the-admin-menu" "Step 1 - Unlock admin"
|
|
click U2 "#step-2-scan-the-udc-admin-password-barcode" "Step 2 - Scan password"
|
|
click U3 "#step-3-open-options" "Step 3 - Options"
|
|
click U4 "#step-4-set-the-correct-com-port" "Step 4 - COM port"
|
|
click U5 "#step-4-set-the-correct-com-port" "Step 4 - COM 1"
|
|
click U6 "#step-4-set-the-correct-com-port" "Step 4 - COM 2"
|
|
click U7 "#step-5-exit-to-apply" "Step 5 - Exit"
|
|
|
|
click D2 "#2a-ntlars-reg-file-never-imported-blank-general-tab-fields" "2A - Load reg backup"
|
|
click D3 "#2a-ntlars-reg-file-never-imported-blank-general-tab-fields" "2A - Confirm populated"
|
|
click FMS1 "#2a-ntlars-reg-file-never-imported-blank-general-tab-fields" "2A - FMS Host FQDN"
|
|
click NIC1 "#2b-controller-nic-has-no-static-ip" "2B - Set static IP"
|
|
click NIC2 "#2b-controller-nic-has-no-static-ip" "2B - Ping check"
|
|
click NIC4 "#2b-controller-nic-has-no-static-ip" "2B - Troubleshoot"
|
|
</code></pre>
|
|
<hr>
|
|
<h2 id="symptom-1-udc-not-collecting-data" tabindex="-1">Symptom 1 - UDC not collecting data</h2>
|
|
<p>UDC = Universal Data Collection desktop app on the imaged PC. Most "no data" issues post-deploy are not a service crash - they are the COM port pointing at the wrong physical serial port. Fix is a GUI procedure inside UDC, run as admin.</p>
|
|
<p><strong>What you need before starting:</strong></p>
|
|
<ul>
|
|
<li>Badge scanner (the one wired to the PC).</li>
|
|
<li>Access to <code>S:\SPC\UDC\UDC_Password.jpg</code> (mapped S: drive must be working - if not, fix S: first via the standard <code>mapdrive.bat</code> runbook).</li>
|
|
</ul>
|
|
<h3 id="step-1-unlock-the-admin-menu" tabindex="-1">Step 1 - Unlock the admin menu</h3>
|
|
<p>Open UDC. Click <strong>Tools</strong> -> <strong>Show All Menus</strong>.</p>
|
|
<p><img src="images/post-deploy/Figure_6_UDC_not_collecting_data_enable_admin.png" alt="UDC Tools menu - Show All Menus"></p>
|
|
<p>UDC will prompt for a badge scan to authorise admin mode:</p>
|
|
<p><img src="images/post-deploy/Figure_3_UDC_not_collecting_data_enable_admin_show_all_menus_scan_UDC_Password.png" alt="UDC Please Enter Badge prompt"></p>
|
|
<h3 id="step-2-scan-the-udc-admin-password-barcode" tabindex="-1">Step 2 - Scan the UDC admin password barcode</h3>
|
|
<p>The admin "password" is a barcode stored as a JPG on the S: drive.</p>
|
|
<ol>
|
|
<li>
|
|
<p>Navigate File Explorer to <code>S:\SPC\UDC\UDC_Password.jpg</code>.</p>
|
|
<p><img src="images/post-deploy/Figure_2_UDC_not_collecting_data_enable_admin_password_location.png" alt="UDC_Password.jpg location on S: drive"></p>
|
|
</li>
|
|
<li>
|
|
<p>Open the JPG in Paint (or any image viewer that shows it at full size).</p>
|
|
</li>
|
|
<li>
|
|
<p>Point the badge scanner at the on-screen barcode and pull the trigger. UDC accepts the scan and unlocks admin mode.</p>
|
|
</li>
|
|
</ol>
|
|
<h3 id="step-3-open-options" tabindex="-1">Step 3 - Open Options</h3>
|
|
<p>With admin mode active, <strong>Tools</strong> now shows an extra <strong>Options</strong> item at the top of the menu. Click <strong>Tools</strong> -> <strong>Options</strong>.</p>
|
|
<p><img src="images/post-deploy/Figure_4_UDC_not_collecting_data_enable_admin_options.png" alt="UDC Tools menu with Options visible"></p>
|
|
<h3 id="step-4-set-the-correct-com-port" tabindex="-1">Step 4 - Set the correct COM port</h3>
|
|
<p>Click the <strong>Serial</strong> tab on the left. Set <strong>Port Name</strong> to match the <strong>physical</strong> serial port the machine cable is plugged into on the back of the PC.</p>
|
|
<ul>
|
|
<li>
|
|
<p><strong>COM 1</strong> = onboard / Intel serial port (motherboard-integrated)</p>
|
|
<p>Logical:</p>
|
|
<p><img src="images/post-deploy/Figure_5_UDC_not_collecting_data_enable_admin_options_serial_intel_com1.png" alt="UDC Serial settings - COM 1 (intel)"></p>
|
|
<p>Physical port to match:</p>
|
|
<p><img src="images/post-deploy/Figure_5_UDC_not_collecting_data_enable_admin_options_serial_intel_com1_physical.png" alt="PC rear - onboard COM1 port"></p>
|
|
</li>
|
|
<li>
|
|
<p><strong>COM 2</strong> = PCIe add-in serial card</p>
|
|
<p>Logical:</p>
|
|
<p><img src="images/post-deploy/Figure_5_UDC_not_collecting_data_enable_admin_options_serial_pcie_com2.png" alt="UDC Serial settings - COM 2 (PCIe)"></p>
|
|
<p>Physical port to match:</p>
|
|
<p><img src="images/post-deploy/Figure_5_UDC_not_collecting_data_enable_admin_options_serial_pcie_com2_physical.png" alt="PC rear - PCIe COM2 port"></p>
|
|
</li>
|
|
</ul>
|
|
<p>Leave the rest at defaults: <strong>Baud 9600, Data Bits 8, Stop Bits One, Parity None</strong>.</p>
|
|
<p>Click <strong>Save</strong>.</p>
|
|
<h3 id="step-5-exit-to-apply" tabindex="-1">Step 5 - Exit to apply</h3>
|
|
<p>Click <strong>File</strong> -> <strong>Exit</strong>. UDC must restart for the new COM port to take effect.</p>
|
|
<p><img src="images/post-deploy/Figure_1_UDC_not_collecting_data_enable_admin_exit.png" alt="UDC File menu - Exit"></p>
|
|
<p>Reopen UDC. Data lines should start populating as the machine runs.</p>
|
|
<h3 id="if-data-still-does-not-appear" tabindex="-1">If data still does not appear</h3>
|
|
<p>Once the COM port is correct, <s>rule out</s> check these in order:</p>
|
|
<ul>
|
|
<li>Wrong physical cable - cable is in COM1 socket but Port Name set to COM 2 (or vice versa). Re-check Step 4.</li>
|
|
<li>Cable / connector damaged - swap with a known-good cable.</li>
|
|
<li>Machine controller side not transmitting - confirm at the controller HMI.</li>
|
|
</ul>
|
|
<hr>
|
|
<h2 id="symptom-2-dnc-not-pushing-a-program-to-the-controller" tabindex="-1">Symptom 2 - DNC not pushing a program to the controller</h2>
|
|
<p>Two independent root causes. Check in order: NTLARS first (cheaper), then NIC.</p>
|
|
<h3 id="2a-ntlars-reg-file-never-imported-blank-general-tab-fields" tabindex="-1">2A - NTLARS reg file never imported (blank General tab fields)</h3>
|
|
<p><strong>What it looks like:</strong></p>
|
|
<p>Open NTLARS. <strong>General</strong> tab shows <strong>Site = WestJefferson</strong> but <strong>Machine No., CNC Type, Host Type, Interface Type</strong> are all empty.</p>
|
|
<p><img src="images/post-deploy/NTLARS_no_machine_config.png" alt="NTLARS General tab with blank machine config"></p>
|
|
<p>The per-machine reg backup never imported during imaging, so NTLARS has no machine-specific config.</p>
|
|
<p><strong>Fix:</strong></p>
|
|
<ol>
|
|
<li>
|
|
<p>Note the machine number (printed on the PC asset label, or look up by hostname).</p>
|
|
</li>
|
|
<li>
|
|
<p>Browse to the DNC reg backup folder on the SFLD share:</p>
|
|
<pre><code>S:\DT\RegFiles\Dnc\Backup Copies\
|
|
</code></pre>
|
|
<p>Each file is named <code><MACHINE-NUMBER>.reg</code> (e.g. <code>4008.reg</code>, <code>4001.reg</code>, <code>3209.reg</code>).</p>
|
|
<p><img src="images/post-deploy/NTLARS_no_machine_config_copy_backup.png" alt="Backup Copies folder on S: drive"></p>
|
|
</li>
|
|
<li>
|
|
<p>In the NTLARS settings dialog, click <strong>Load...</strong> (top-right of the dialog, next to Save).</p>
|
|
</li>
|
|
<li>
|
|
<p>Browse to <code>S:\DT\RegFiles\Dnc\Backup Copies\</code> and select the <code>.reg</code> matching this PC's machine number. Confirm the import.</p>
|
|
</li>
|
|
<li>
|
|
<p>The General tab fields should now be populated. Click <strong>OK</strong> to apply.</p>
|
|
</li>
|
|
<li>
|
|
<p>While in NTLARS, click the <strong>FMS Host</strong> tab. Check <strong>Primary</strong> - the backup reg usually populates the short hostname <code>WJFMS3</code> only. Update it to the full FQDN:</p>
|
|
<p><img src="images/post-deploy/NTLARS_FMS_HOST.png" alt="NTLARS FMS Host tab"></p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Field</th>
|
|
<th>Required value</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>Primary</td>
|
|
<td><code>WJFMS3.AE.GE.COM</code> (FQDN - not just <code>WJFMS3</code>)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Secondary</td>
|
|
<td><code>10.233.112.158</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Socket Number</td>
|
|
<td><code>5003</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Timeout</td>
|
|
<td><code>10</code></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>Click <strong>OK</strong> to save. The short hostname fails on GE corp DNS in some shopfloor segments; the FQDN resolves reliably. The manifest drift-catcher will also normalise this on next run, but doing it now avoids waiting for the next manifest cycle.</p>
|
|
</li>
|
|
</ol>
|
|
<p>If fields are still blank after import: the reg backup file is stale or for a different machine number. Pull the correct one and re-import.</p>
|
|
<h3 id="2b-controller-nic-has-no-static-ip" tabindex="-1">2B - Controller NIC has no static IP</h3>
|
|
<p>The PC has two NICs. One faces the corporate / shopfloor LAN (gets internet); the other faces the controller on an isolated subnet (no internet - shown as "Unidentified network" / "No internet").</p>
|
|
<p><strong>Standard controller-side config:</strong></p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Setting</th>
|
|
<th>Value</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>IP assignment</td>
|
|
<td>Manual</td>
|
|
</tr>
|
|
<tr>
|
|
<td>IPv4 address</td>
|
|
<td><code>192.168.1.2</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Subnet mask</td>
|
|
<td><code>255.255.255.0</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Default gateway</td>
|
|
<td><em>leave blank</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td>DNS servers</td>
|
|
<td>Automatic (DHCP) - leave as-is</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><strong>Step-by-step (GUI - logged in as ShopFloor local account):</strong></p>
|
|
<ol>
|
|
<li>
|
|
<p>Right-click the network icon in the system tray. Select <strong>Network and Internet settings</strong>.</p>
|
|
<p><img src="images/post-deploy/NTLARS_network_interface_tray.png" alt="Network tray menu"></p>
|
|
</li>
|
|
<li>
|
|
<p>In Network & internet, identify the controller-facing adapter. <strong>On every PXE-imaged shopfloor PC the controller NIC is the <code>Realtek PCIe GbE Family Controller</code>.</strong> It will also show <strong>"No internet"</strong> / <strong>"Public network"</strong> (the other adapter, with internet, is the shopfloor LAN). Click into it.</p>
|
|
<p><img src="images/post-deploy/NTLARS_network_interface_settings.png" alt="Network & internet - two ethernets listed"></p>
|
|
<p>Confirm at the bottom of the adapter detail page that <strong>Description = Realtek PCIe GbE Family Controller</strong>:</p>
|
|
<p><img src="images/post-deploy/NTLARS_network_interface_verified.png" alt="Verified controller NIC - Realtek PCIe GbE"></p>
|
|
</li>
|
|
<li>
|
|
<p>Scroll to <strong>IP assignment</strong>. If it shows <code>Automatic (DHCP)</code> or the IPv4 address is <code>169.254.x.x</code> / blank: click <strong>Edit</strong> next to IP assignment, switch to <strong>Manual</strong>, enable IPv4, and enter:</p>
|
|
<ul>
|
|
<li>IP address: <code>192.168.1.2</code></li>
|
|
<li>Subnet mask: <code>255.255.255.0</code></li>
|
|
<li>Gateway: <em>leave blank</em></li>
|
|
</ul>
|
|
<p>Save.</p>
|
|
</li>
|
|
<li>
|
|
<p>Verify. The adapter detail should now show:</p>
|
|
<ul>
|
|
<li>IP assignment: <strong>Manual</strong></li>
|
|
<li>IPv4 address: <strong>192.168.1.2</strong></li>
|
|
<li>IPv4 mask: <strong>255.255.255.0</strong></li>
|
|
<li>Description: <strong>Realtek PCIe GbE Family Controller</strong></li>
|
|
</ul>
|
|
</li>
|
|
</ol>
|
|
<p><strong>Verify connectivity to the controller:</strong></p>
|
|
<p>The controller is always at <code>192.168.1.1</code> on this subnet. Open Command Prompt and run:</p>
|
|
<pre><code class="language-cmd">ping 192.168.1.1
|
|
</code></pre>
|
|
<p>Expected: 4/4 replies.</p>
|
|
<p>If pings fail:</p>
|
|
<ul>
|
|
<li>Check the controller-side network cable.</li>
|
|
<li>Confirm no other adapter on the PC also has <code>192.168.1.2</code> (duplicate IP). In Network & internet, check both Ethernet adapters - only the Realtek PCIe GbE one should have it.</li>
|
|
<li>Confirm the controller itself is powered and online.</li>
|
|
</ul>
|
|
|
|
<script>
|
|
document.querySelectorAll('pre > code.language-mermaid').forEach(el => {
|
|
const div = document.createElement('div');
|
|
div.className = 'mermaid';
|
|
div.textContent = el.textContent;
|
|
el.parentElement.replaceWith(div);
|
|
});
|
|
mermaid.initialize({ startOnLoad: true, securityLevel: 'loose', theme: 'default' });
|
|
mermaid.run();
|
|
</script>
|
|
</body></html> |