docs: add MES + Delmia-DNC integration API/MXAccess specs
mes-delmia-integration-api.md: endpoints, request/response DTOs, and the MXAccess flag handshake for MESAPI (in-repo MesNotifier) and DelmiaIntegration (DNC Downloader.asmx -> WWNotifier /notify -> Galaxy $DelmiaReceiver). mesrec.md / nj.md: live Galaxy receiver + reactor attribute references.
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
# MESReceiver object — attributes (wonder-app-vd03 Galaxy)
|
||||
|
||||
Source: live AVEVA Galaxy DB **`ZB`** on **wonder-app-vd03** (the MxAccessGateway box),
|
||||
read via the gateway's own `AttributesSql` (recursive `deployed_package_chain` over
|
||||
`dynamic_attribute` / `attribute_definition`) run with `sqlcmd` over ssh — `2026-06-16`.
|
||||
|
||||
## Instance probed
|
||||
- **TagName:** `MESReceiver_002` (GobjectId `5909`, ParentGobjectId `5908`, HostedBy `5049`)
|
||||
- **TemplateChain:** `$MESDemo.MESReceiver` → `$MESReceiver` → `$gUserDefined` → `$UserDefined`
|
||||
- **CategoryId:** 10, `IsArea = false`
|
||||
- There are many MESReceiver instances on this Galaxy (1,253 `MESReceiver` references in the
|
||||
`galaxy-snapshot.json` hierarchy cache). `MESReceiver_002` is representative of the template.
|
||||
|
||||
> Note: the cached `galaxy-snapshot.json` (gateway Server dir) holds the **object hierarchy only**
|
||||
> — it carries **no attributes**, so attribute discovery requires the DB query (or gRPC `galaxy-discover`).
|
||||
|
||||
## Container number
|
||||
There is **no attribute literally named `ContainerNumber`**. The MES container number is carried by:
|
||||
- **`MoveInMesContainerNum`** — String (move-in interface)
|
||||
- **`MoveOutMesContainerNum`** — String (move-out interface)
|
||||
|
||||
Full tag references: `MESReceiver_002.MoveInMesContainerNum`, `MESReceiver_002.MoveOutMesContainerNum`.
|
||||
|
||||
## MES interface UDAs (attribute-category 10, security-classification 1 = secured/operate)
|
||||
|
||||
### Move-In
|
||||
| Attribute | Type | Full tag reference |
|
||||
|---|---|---|
|
||||
| **MoveInMesContainerNum** | String | `MESReceiver_002.MoveInMesContainerNum` |
|
||||
| MoveInBatchID | Integer | `MESReceiver_002.MoveInBatchID` |
|
||||
| MoveInJobSequenceNumber | String | `MESReceiver_002.MoveInJobSequenceNumber` |
|
||||
| MoveInNumberWorkOrders | Integer | `MESReceiver_002.MoveInNumberWorkOrders` |
|
||||
| MoveInWorkOrderNumbers | String[] | `MESReceiver_002.MoveInWorkOrderNumbers[]` |
|
||||
| MoveInPartNumbers | String[] | `MESReceiver_002.MoveInPartNumbers[]` |
|
||||
| MoveInOperatorName | String | `MESReceiver_002.MoveInOperatorName` |
|
||||
| MoveInFlag | Boolean | `MESReceiver_002.MoveInFlag` |
|
||||
| MoveInReadyFlag | Boolean | `MESReceiver_002.MoveInReadyFlag` |
|
||||
| MoveInCompleteFlag | Boolean | `MESReceiver_002.MoveInCompleteFlag` |
|
||||
| MoveInSuccessfulFlag | Boolean | `MESReceiver_002.MoveInSuccessfulFlag` |
|
||||
| MoveInErrorText | String | `MESReceiver_002.MoveInErrorText` |
|
||||
|
||||
### Move-Out (symmetric; no JobSequenceNumber)
|
||||
| Attribute | Type | Full tag reference |
|
||||
|---|---|---|
|
||||
| **MoveOutMesContainerNum** | String | `MESReceiver_002.MoveOutMesContainerNum` |
|
||||
| MoveOutBatchID | Integer | `MESReceiver_002.MoveOutBatchID` |
|
||||
| MoveOutNumberWorkOrders | Integer | `MESReceiver_002.MoveOutNumberWorkOrders` |
|
||||
| MoveOutWorkOrderNumbers | String[] | `MESReceiver_002.MoveOutWorkOrderNumbers[]` |
|
||||
| MoveOutPartNumbers | String[] | `MESReceiver_002.MoveOutPartNumbers[]` |
|
||||
| MoveOutOperatorName | String | `MESReceiver_002.MoveOutOperatorName` |
|
||||
| MoveOutFlag | Boolean | `MESReceiver_002.MoveOutFlag` |
|
||||
| MoveOutReadyFlag | Boolean | `MESReceiver_002.MoveOutReadyFlag` |
|
||||
| MoveOutCompleteFlag | Boolean | `MESReceiver_002.MoveOutCompleteFlag` |
|
||||
| MoveOutSuccessfulFlag | Boolean | `MESReceiver_002.MoveOutSuccessfulFlag` |
|
||||
| MoveOutErrorText | String | `MESReceiver_002.MoveOutErrorText` |
|
||||
|
||||
## Standard ArchestrA `$UserDefined` / system attributes (also present)
|
||||
`AlarmCntsBySeverity[]`, `AlarmCntsBySeverityEnableShelved[]`, `AlarmInhibit`, `AlarmMode`,
|
||||
`AlarmModeCmd`, `AlarmMostUrgentAcked`, `AlarmMostUrgentInAlarm`, `AlarmMostUrgentMode`,
|
||||
`AlarmMostUrgentSeverity`, `AlarmMostUrgentShelved`, `AliasName`, `Area`, `CmdData`, `CodeBase`,
|
||||
`ConfigVersion`, `ContainedName`, `Container`, `Errors[]`, `ExecutionRelatedObject`,
|
||||
`ExecutionRelativeOrder`, `Extensions`, `HierarchicalName`, `Host`, `InAlarm`, `MinorVersion`,
|
||||
`PropagatedAlarmInhibit`, `ScanState`, `ScanStateCmd`, `SecurityGroup`, `ShortDesc`, `Tagname`,
|
||||
`UDAs`, `UserAttrData`, `PropagatedAlarmInhibit`.
|
||||
|
||||
## How to reproduce
|
||||
1. `MESReceiver` instances are in the gateway hierarchy cache
|
||||
`E:\ApiInstall\MxGateway\Server\galaxy-snapshot.json` (objects only, no attrs).
|
||||
2. Attribute list: run the gateway's `AttributesSql`
|
||||
(`src/.../Server/Galaxy/GalaxyRepository.cs`) scoped to one instance via
|
||||
`... WHERE g.is_template = 0 AND g.deployed_package_id <> 0 AND g.tag_name = 'MESReceiver_002'`
|
||||
in the `deployed_package_chain` anchor, then `sqlcmd -S (local) -d ZB -U wwadmin -P <pwd>`
|
||||
on the box (Galaxy creds from `MxGateway.Galaxy.ConnectionString` in the gateway appsettings).
|
||||
3. Live values would need an MXAccess read through the gateway (gRPC), not the repo SQL.
|
||||
|
||||
In OtOpcUa (Galaxy-as-standard-driver model) these bind as ordinary equipment tags:
|
||||
`Tag{ DriverInstanceId = GalaxyMxGateway, TagConfig = {"FullName":"MESReceiver_002.MoveInMesContainerNum"} }`.
|
||||
Reference in New Issue
Block a user