docs: add post-deploy debug flowchart for UDC + DNC issues

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>
This commit is contained in:
cproudlock
2026-05-12 15:13:12 -04:00
parent f270166bba
commit c8a0f98be1
18 changed files with 772 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

View File

@@ -0,0 +1,283 @@
<!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]) --&gt; Sym{Which symptom?}
Sym --&gt;|UDC not collecting data| U1[Open UDC: Tools - Show All Menus]
Sym --&gt;|DNC not pushing to controller| D1{NTLARS General tab populated?}
U1 --&gt; U2[Scan UDC_Password barcode from S:\SPC\UDC\UDC_Password.jpg]
U2 --&gt; U3[Tools - Options - Serial tab]
U3 --&gt; U4{Which physical COM port is the cable in?}
U4 --&gt;|Intel / onboard| U5[Set Port Name = COM 1]
U4 --&gt;|PCIe add-in card| U6[Set Port Name = COM 2]
U5 --&gt; U7[Save - File - Exit - reopen UDC]
U6 --&gt; U7
U7 --&gt; U8([Verify data lines populate])
D1 --&gt;|No - fields blank| D2[NTLARS: Load... -&gt; S:\DT\RegFiles\Dnc\Backup Copies\machine.reg]
D1 --&gt;|Yes - fields filled| FMS{FMS Host Primary = WJFMS3.AE.GE.COM?}
D2 --&gt; D3[Confirm General tab populated - OK]
D3 --&gt; FMS
FMS --&gt;|No - shows WJFMS3 short| FMS1[Update Primary to FQDN WJFMS3.AE.GE.COM - OK]
FMS --&gt;|Yes| NIC{Realtek PCIe GbE NIC = 192.168.1.2 / 24?}
FMS1 --&gt; NIC
NIC --&gt;|No| NIC1[Set Realtek PCIe GbE static IP 192.168.1.2 / 255.255.255.0]
NIC --&gt;|Yes| NIC2[ping 192.168.1.1]
NIC1 --&gt; NIC2
NIC2 --&gt; NIC3{Ping replies?}
NIC3 --&gt;|No| NIC4[Check cable / controller side / duplicate IP]
NIC3 --&gt;|Yes| Done([Retest DNC push])
click U1 &quot;#step-1-unlock-the-admin-menu&quot; &quot;Step 1 - Unlock admin&quot;
click U2 &quot;#step-2-scan-the-udc-admin-password-barcode&quot; &quot;Step 2 - Scan password&quot;
click U3 &quot;#step-3-open-options&quot; &quot;Step 3 - Options&quot;
click U4 &quot;#step-4-set-the-correct-com-port&quot; &quot;Step 4 - COM port&quot;
click U5 &quot;#step-4-set-the-correct-com-port&quot; &quot;Step 4 - COM 1&quot;
click U6 &quot;#step-4-set-the-correct-com-port&quot; &quot;Step 4 - COM 2&quot;
click U7 &quot;#step-5-exit-to-apply&quot; &quot;Step 5 - Exit&quot;
click D2 &quot;#2a-ntlars-reg-file-never-imported-blank-general-tab-fields&quot; &quot;2A - Load reg backup&quot;
click D3 &quot;#2a-ntlars-reg-file-never-imported-blank-general-tab-fields&quot; &quot;2A - Confirm populated&quot;
click FMS1 &quot;#2a-ntlars-reg-file-never-imported-blank-general-tab-fields&quot; &quot;2A - FMS Host FQDN&quot;
click NIC1 &quot;#2b-controller-nic-has-no-static-ip&quot; &quot;2B - Set static IP&quot;
click NIC2 &quot;#2b-controller-nic-has-no-static-ip&quot; &quot;2B - Ping check&quot;
click NIC4 &quot;#2b-controller-nic-has-no-static-ip&quot; &quot;2B - Troubleshoot&quot;
</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 &quot;no data&quot; 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> -&gt; <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 &quot;password&quot; 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> -&gt; <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> -&gt; <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>&lt;MACHINE-NUMBER&gt;.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 &quot;Unidentified network&quot; / &quot;No internet&quot;).</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 &amp; 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>&quot;No internet&quot;</strong> / <strong>&quot;Public network&quot;</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 &amp; 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 &amp; 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>

View File

@@ -0,0 +1,253 @@
# Post-Deploy Debug Flowchart - PXE Imaged Machines
**Audience:** Shopfloor tech standing at a freshly imaged PC.
**Scope:** UDC not collecting data, and DNC not pushing programs to the controller.
**Run-from:** Logged in on the imaged PC as the ShopFloor local account. GUI only - no shell required.
> The few commands shown (e.g. `ping`) run from a normal Command Prompt window.
---
## Overview
Click any boxed node to jump to its section.
```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"
```
---
## Symptom 1 - UDC not collecting data
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.
**What you need before starting:**
- Badge scanner (the one wired to the PC).
- Access to `S:\SPC\UDC\UDC_Password.jpg` (mapped S: drive must be working - if not, fix S: first via the standard `mapdrive.bat` runbook).
### Step 1 - Unlock the admin menu
Open UDC. Click **Tools** -> **Show All Menus**.
![UDC Tools menu - Show All Menus](images/post-deploy/Figure_6_UDC_not_collecting_data_enable_admin.png)
UDC will prompt for a badge scan to authorise admin mode:
![UDC Please Enter Badge prompt](images/post-deploy/Figure_3_UDC_not_collecting_data_enable_admin_show_all_menus_scan_UDC_Password.png)
### Step 2 - Scan the UDC admin password barcode
The admin "password" is a barcode stored as a JPG on the S: drive.
1. Navigate File Explorer to `S:\SPC\UDC\UDC_Password.jpg`.
![UDC_Password.jpg location on S: drive](images/post-deploy/Figure_2_UDC_not_collecting_data_enable_admin_password_location.png)
2. Open the JPG in Paint (or any image viewer that shows it at full size).
3. Point the badge scanner at the on-screen barcode and pull the trigger. UDC accepts the scan and unlocks admin mode.
### Step 3 - Open Options
With admin mode active, **Tools** now shows an extra **Options** item at the top of the menu. Click **Tools** -> **Options**.
![UDC Tools menu with Options visible](images/post-deploy/Figure_4_UDC_not_collecting_data_enable_admin_options.png)
### Step 4 - Set the correct COM port
Click the **Serial** tab on the left. Set **Port Name** to match the **physical** serial port the machine cable is plugged into on the back of the PC.
- **COM 1** = onboard / Intel serial port (motherboard-integrated)
Logical:
![UDC Serial settings - COM 1 (intel)](images/post-deploy/Figure_5_UDC_not_collecting_data_enable_admin_options_serial_intel_com1.png)
Physical port to match:
![PC rear - onboard COM1 port](images/post-deploy/Figure_5_UDC_not_collecting_data_enable_admin_options_serial_intel_com1_physical.png)
- **COM 2** = PCIe add-in serial card
Logical:
![UDC Serial settings - COM 2 (PCIe)](images/post-deploy/Figure_5_UDC_not_collecting_data_enable_admin_options_serial_pcie_com2.png)
Physical port to match:
![PC rear - PCIe COM2 port](images/post-deploy/Figure_5_UDC_not_collecting_data_enable_admin_options_serial_pcie_com2_physical.png)
Leave the rest at defaults: **Baud 9600, Data Bits 8, Stop Bits One, Parity None**.
Click **Save**.
### Step 5 - Exit to apply
Click **File** -> **Exit**. UDC must restart for the new COM port to take effect.
![UDC File menu - Exit](images/post-deploy/Figure_1_UDC_not_collecting_data_enable_admin_exit.png)
Reopen UDC. Data lines should start populating as the machine runs.
### If data still does not appear
Once the COM port is correct, ~~rule out~~ check these in order:
- Wrong physical cable - cable is in COM1 socket but Port Name set to COM 2 (or vice versa). Re-check Step 4.
- Cable / connector damaged - swap with a known-good cable.
- Machine controller side not transmitting - confirm at the controller HMI.
---
## Symptom 2 - DNC not pushing a program to the controller
Two independent root causes. Check in order: NTLARS first (cheaper), then NIC.
### 2A - NTLARS reg file never imported (blank General tab fields)
**What it looks like:**
Open NTLARS. **General** tab shows **Site = WestJefferson** but **Machine No., CNC Type, Host Type, Interface Type** are all empty.
![NTLARS General tab with blank machine config](images/post-deploy/NTLARS_no_machine_config.png)
The per-machine reg backup never imported during imaging, so NTLARS has no machine-specific config.
**Fix:**
1. Note the machine number (printed on the PC asset label, or look up by hostname).
2. Browse to the DNC reg backup folder on the SFLD share:
```
S:\DT\RegFiles\Dnc\Backup Copies\
```
Each file is named `<MACHINE-NUMBER>.reg` (e.g. `4008.reg`, `4001.reg`, `3209.reg`).
![Backup Copies folder on S: drive](images/post-deploy/NTLARS_no_machine_config_copy_backup.png)
3. In the NTLARS settings dialog, click **Load...** (top-right of the dialog, next to Save).
4. Browse to `S:\DT\RegFiles\Dnc\Backup Copies\` and select the `.reg` matching this PC's machine number. Confirm the import.
5. The General tab fields should now be populated. Click **OK** to apply.
6. While in NTLARS, click the **FMS Host** tab. Check **Primary** - the backup reg usually populates the short hostname `WJFMS3` only. Update it to the full FQDN:
![NTLARS FMS Host tab](images/post-deploy/NTLARS_FMS_HOST.png)
| Field | Required value |
|-------|----------------|
| Primary | `WJFMS3.AE.GE.COM` (FQDN - not just `WJFMS3`) |
| Secondary | `10.233.112.158` |
| Socket Number | `5003` |
| Timeout | `10` |
Click **OK** 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.
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.
### 2B - Controller NIC has no static IP
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").
**Standard controller-side config:**
| Setting | Value |
|---------|-------|
| IP assignment | Manual |
| IPv4 address | `192.168.1.2` |
| Subnet mask | `255.255.255.0` |
| Default gateway | _leave blank_ |
| DNS servers | Automatic (DHCP) - leave as-is |
**Step-by-step (GUI - logged in as ShopFloor local account):**
1. Right-click the network icon in the system tray. Select **Network and Internet settings**.
![Network tray menu](images/post-deploy/NTLARS_network_interface_tray.png)
2. In Network & internet, identify the controller-facing adapter. **On every PXE-imaged shopfloor PC the controller NIC is the `Realtek PCIe GbE Family Controller`.** It will also show **"No internet"** / **"Public network"** (the other adapter, with internet, is the shopfloor LAN). Click into it.
![Network & internet - two ethernets listed](images/post-deploy/NTLARS_network_interface_settings.png)
Confirm at the bottom of the adapter detail page that **Description = Realtek PCIe GbE Family Controller**:
![Verified controller NIC - Realtek PCIe GbE](images/post-deploy/NTLARS_network_interface_verified.png)
3. Scroll to **IP assignment**. If it shows `Automatic (DHCP)` or the IPv4 address is `169.254.x.x` / blank: click **Edit** next to IP assignment, switch to **Manual**, enable IPv4, and enter:
- IP address: `192.168.1.2`
- Subnet mask: `255.255.255.0`
- Gateway: _leave blank_
Save.
4. Verify. The adapter detail should now show:
- IP assignment: **Manual**
- IPv4 address: **192.168.1.2**
- IPv4 mask: **255.255.255.0**
- Description: **Realtek PCIe GbE Family Controller**
**Verify connectivity to the controller:**
The controller is always at `192.168.1.1` on this subnet. Open Command Prompt and run:
```cmd
ping 192.168.1.1
```
Expected: 4/4 replies.
If pings fail:
- Check the controller-side network cable.
- Confirm no other adapter on the PC also has `192.168.1.2` (duplicate IP). In Network & internet, check both Ethernet adapters - only the Realtek PCIe GbE one should have it.
- Confirm the controller itself is powered and online.

File diff suppressed because one or more lines are too long