用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/JohnNuwan/EVA_CORE --skill isa95-modelling命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Concevoir et maintenir un watchdog auto-correcteur pour services HTTP — checks de santé, auto-restart, état persistant, rapports et pièges bash.
Serveur de messagerie sécurisé auto-hébergé (Signal-like) avec Flask + WebSocket + AES-256-GCM + pont EVA
ADAM-SENTINEL — Veilleur technologique 24h/24h. Scanne 10 domaines, cree des rapports, met a jour les skills, alerte sur les CVE et breaking changes.
基于 SOC 职业分类
正在显示 SKILL.md
| name | isa95-modelling |
| description | Modéliser les données et les UNS selon la norme ISA-95. |
| version | 1.2.0 |
| author | EVA |
| license | Privée EVA St-Étienne |
| platforms | ["linux","macos","windows"] |
| metadata | {"EVA":{"tags":["isa-95","data-modelling","industrial-standards","enterprise-architecture"],"related_skills":["industrial-uns","mes-integration","industrial-databases"]}} |
La norme ANSI/ISA-95 (reprise à l'international sous la norme CEI 62264) structure l'intégration des systèmes d'entreprise (ERP) et des systèmes de contrôle-commande (SCADA/PLC). Elle fournit des modèles de données et un langage commun pour relier les décisions de planification commerciale aux opérations physiques de fabrication au sein du Manufacturing Execution System (MES).
Dans le cadre de l'Industrie 4.0, l'apport majeur de l'ISA-95 est sa Hiérarchie des Équipements. Cette structure logique sert de fondation universelle pour organiser les bases de données d'historisation, les espaces d'adressage OPC UA et les arborescences de topics au sein d'un Unified Namespace (UNS).
À utiliser lorsque l'utilisateur demande de :
L'intégration d'usine est divisée en 5 niveaux logiques :
| Niveau | Systèmes | Rôle / Portée |
|---|---|---|
| Niveau 4 | ERP / Gestion | Planification des ressources de l'entreprise, commandes clients, logistique globale. |
| Niveau 3 | MES / MOM | Gestion des opérations de fabrication, exécution des lots, TRS/OEE, traçabilité. |
| Niveau 2 | SCADA / HMI | Supervision locale, contrôle et acquisition de données en temps réel. |
| Niveau 1 | PLC / Automates | Logique de commande physique, régulations, interverrouillages de sécurité. |
| Niveau 0 | Capteurs / Actionneurs | Le procédé physique (moteurs, vannes, sondes analogiques, convoyeurs). |
Pour structurer les systèmes logiciels, les équipements physiques sont modélisés selon l'arborescence descendante suivante :
Le Unified Namespace est un hub de données centralisé où toutes les informations de l'entreprise sont structurées selon la hiérarchie ISA-95. N'importe quel système consommateur (MES, Cloud, Analytique) peut s'abonner de manière intuitive aux données contextuelles.
[Entreprise]/[Site]/[Area]/[Line_or_Cell]/[Equipment]/[Metric]
EVA/Lyon/Brassage/Cuve_Matiere_01/Agitateur/Speed_RPMEVA/Lyon/Conditionnement/Ligne_Emballage_02/Remplisseuse/Total_CountEVA/Paris/Decantation/Bassin_01/Vanne_Entree/State_OpenedEVA/Paris/Filtration/Filtre_Charbon/Pression_Delta/Value_BarCe script permet de parser et de valider les topics MQTT arrivant sur un broker industriel afin d'assurer la conformité à la hiérarchie ISA-95, et valide un payload de type B2MML (Business to Manufacturing Markup Language) converti au format JSON.
import re
import json
# Pattern Regex validant strictement les 5 niveaux ISA-95 + la métrique finale
# Format: Enterprise/Site/Area/LineOrCell/Equipment/Metric
UNS_TOPIC_REGEX = re.compile(
r"^([a-zA-Z0-9_-]+)/" # 1. Enterprise
r"([a-zA-Z0-9_-]+)/" # 2. Site
r"([a-zA-Z0-9_-]+)/" # 3. Area
r"([a-zA-Z0-9_-]+)/" # 4. Line/Cell
r"([a-zA-Z0-9_-]+)/" # 5. Equipment
r"([a-zA-Z0-9_/-]+)$" # 6. Metric (peut contenir des sous-métriques)
)
def validate_uns_topic(topic: str) -> dict:
"""Valide et parse une arborescence de topic UNS selon la hiérarchie ISA-95."""
match = UNS_TOPIC_REGEX.match(topic)
if not match:
return {
"is_valid": False,
"error": "Le topic ne respecte pas la hiérarchie ISA-95 : Enterprise/Site/Area/Line/Equipment/Metric."
}
parts = match.groups()
return {
"is_valid": True,
"enterprise": parts[0],
"site": parts[1],
"area": parts[2],
"line": parts[3],
: parts[],
: parts[]
}
() -> :
:
data = json.loads(payload_json)
required_keys = [, , ]
key required_keys:
key data:
()
sublot = data[]
sublot sublot:
()
json.JSONDecodeError:
()
__name__ == :
topic_ok =
result = validate_uns_topic(topic_ok)
()
topic_ko =
result_ko = validate_uns_topic(topic_ko)
()
b2mml_json =
()
usine/capteurs/T_01. Les applications consommatrices doivent maintenir des tables de correspondances manuelles fastidieuses pour localiser l'équipement.EVA/Site/Kepware_OPC/Modbus_Driver/Variable).EVA/Site/Cuve01/Brassage/...).