d5b134b117
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.
78 lines
4.7 KiB
Markdown
78 lines
4.7 KiB
Markdown
# 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"} }`.
|