ソース情報
- リポジトリ
- JohnNuwan/EVA_CORE
- ソースの最終更新活動
- 2026年7月18日 08:30
- 検出された SKILL.md の言語
- フランス語
- スター
- 0
- フォーク
- 0
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/JohnNuwan/EVA_CORE --skill schneider-unityコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?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 | schneider-unity |
| description | Programmer sous Control Expert et manipuler les fichiers XMY. |
| version | 1.2.0 |
| author | EVA |
| license | Privée EVA St-Étienne |
| platforms | ["linux","macos","windows"] |
| metadata | {"EVA":{"tags":["schneider","unity-pro","control-expert","plc","st","m340","m580","industrial-automation","ddt","dfb","xmy"],"related_skills":["simplify-code","plan"]}} |
EcoStruxure Control Expert (anciennement connu sous le nom de Unity Pro) est l'environnement de développement et de programmation pour les contrôleurs logiques programmables (API/PLC) de la gamme Schneider Electric, notamment les Modicon M340, M580, Premium et Quantum.
Le langage Texte Structuré (ST) y est privilégié pour l'implémentation de calculs complexes, de boucles et de blocs logiques algorithmiques. Control Expert utilise également un format d'exportation/importation standardisé basé sur le XML (fichiers .XMY) pour stocker et transférer les structures de données (DDT), les sections de code et les Blocs Fonctionnels Dérivés (DFB) créés par l'utilisateur.
Cette compétence permet à l'agent EVA de générer du code ST valide pour Schneider Control Expert et de lire, analyser ou générer des fichiers XML d'importation .XMY conformes aux spécifications de l'éditeur.
À utiliser lorsque l'utilisateur demande de :
.XMY (fichiers de DFB) ou .FEF (fichiers d'export globaux).%MW ou non localisées).Le langage ST de Schneider Electric implémente la norme CEI 61131-3 avec les spécificités de compilation suivantes :
:=.#. Les noms de variables s'écrivent directement.(* commentaire *) pour les blocs multi-lignes et // pour les lignes simples (supporté sur les versions récentes).Pour différencier la portée des variables et maintenir un code propre :
| Type de Variable | Préfixe | Exemple | Description |
|---|---|---|---|
| Input (Entrée DFB) | i_ | i_Cmd_Start | Signal physique ou commande logique entrant. |
| Output (Sortie DFB) | q_ | q_Motor_On | Signal physique ou commande logique sortant. |
| InOut (Entrée/Sortie) | iq_ | iq_Settings | Référence passée en lecture/écriture. |
| Static (Mémoire interne) | stat_ | stat_Feedback_Timer | Instance de bloc temporisateur ou mémoire. |
| Temp (Temporaire) | temp_ | temp_Index | Variable de calcul locale non persistante. |
DFB_Motor_Advanced)Voici le code ST de logique interne pour un DFB de contrôle de moteur :
(* ==========================================================================
LOGIQUE DE COMMANDE ET DIAGNOSTIC MOTEUR ADVANCED
========================================================================== *)
(* 1. Gestion des modes Auto / Manuel *)
IF i_Cmd_Mode_Auto THEN
stat_Mode_Auto := TRUE;
ELSIF i_Cmd_Mode_Man THEN
stat_Mode_Auto := FALSE;
END_IF;
(* 2. Logique de commande de démarrage *)
IF stat_Mode_Auto THEN
stat_Run_Request := i_Cmd_Auto_Start AND NOT i_Cmd_Auto_Stop;
ELSE
stat_Run_Request := (stat_Run_Request OR i_Cmd_Man_Start) AND NOT i_Cmd_Man_Stop;
END_IF;
(* 3. Application des sécurités (Interlock prioritaires) *)
IF NOT i_Safety_Interlock OR i_Fault_Reset_Cmd THEN
stat_Run_Request := FALSE;
END_IF;
(* 4. Gestion de la temporisation de retour de marche (TON standard) *)
(* Note: L'instance 'stat_Timer_Feedback' (type TON) doit être déclarée dans le dictionnaire DFB *)
stat_Timer_Feedback(IN := q_Motor_Run AND NOT i_Feedback_Run, PT := t#3s);
(* 5. Logique de défaut *)
IF stat_Timer_Feedback.Q THEN
stat_Fault_Active := TRUE;
ELSIF i_Fault_Reset_Cmd THEN
stat_Fault_Active := FALSE;
END_IF;
(* 6. Affectation des sorties du DFB *)
q_Motor_Run := stat_Run_Request AND NOT stat_Fault_Active;
q_Fault_Active := stat_Fault_Active;
q_Mode_Auto_Active := stat_Mode_Auto;
Les automates Schneider Modicon gèrent la mémoire selon deux concepts :
%MW100 pour un mot de 16 bits, %MX100.0 pour un bit localisé).REAL occupe 2 mots consécutifs, %MW100 et %MW101).Les DDT permettent de regrouper des variables de types hétérogènes pour structurer l'information (ex: état d'une vanne, mesures d'une sonde).
TYPE T_Valve_Control :
STRUCT
bOpen_Cmd : BOOL; (* Commande d'ouverture *)
bClose_Cmd : BOOL; (* Commande de fermeture *)
bLimit_Open : BOOL; (* Fin de course ouverte *)
bLimit_Close : BOOL; (* Fin de course fermée *)
rPosition : REAL; (* Position de recopie 0-100% *)
bFault : BOOL; (* Défaut de positionnement *)
END_STRUCT
END_TYPE
Pour importer un DFB ou des variables dans Control Expert sans saisie manuelle, on utilise le format XML d'import/export Schneider (.XMY).
.XMY) :<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<FBExchangeFile>
<!-- En-tête officiel Control Expert -->
<fileHeader company="Schneider Automation" product="Unity Pro" version="14.1"/>
<contentHeader name="DFB_Valve_Control" version="1.0.0">
<comment>Contrôle de vanne standardisé EVA</comment>
</contentHeader>
<FBBlock nameType="DFB_Valve_Control" FBKind="UserAssociated">
<!-- Paramètres d'Entrée (i_...) -->
<parameters name="i_Cmd_Open" connectionType="Read" typeName="BOOL">
<comment>Commande ouverture vanne</comment>
</parameters>
<parameters name="i_Cmd_Close" connectionType="Read" typeName="BOOL">
<>Commande fermeture vanne
Retour fin de course ouverte
Retour fin de course fermée
Commande de bobine ouverture physique
Indication de défaut de la vanne
Timer de contrôle de mouvement
Mémoire interne de l'état de défaut
<![CDATA[
(* Logique du temporisateur de mouvement *)
stat_Timer_Check(IN := (q_Valve_Open AND NOT i_FBC_Open) OR (NOT q_Valve_Open AND NOT i_FBC_Close), PT := t#5s);
(* Détection du défaut *)
IF stat_Timer_Check.Q THEN
stat_Fault_State := TRUE;
END_IF;
(* Commande d'ouverture *)
IF i_Cmd_Open AND NOT i_Cmd_Close AND NOT stat_Fault_State THEN
q_Valve_Open := TRUE;
ELSIF i_Cmd_Close OR stat_Fault_State THEN
q_Valve_Open := FALSE;
END_IF;
q_Fault := stat_Fault_State;
]]>
Variables non déclarées dans le dictionnaire :
.XMY de type variables) pour l'importer avant de charger le code ST.Index de tableaux dynamiques non bornés :
ARRAY [0..9] OF INT à l'aide d'une variable d'index non sécurisée. Un dépassement d'indice provoque l'arrêt immédiat (CPU Halt) de l'automate.Chevauchement d'adresses %MW :
DINT (32 bits) sur %MW10 et une variable INT (16 bits) sur %MW11. La modification de %MW10 altérera la valeur de %MW11 de manière silencieuse.%MW pour l'échange de données HMI avec des écarts d'adresse stricts (+2 pour les variables de 32 bits et floats).IF, FOR, CASE) sont fermés avec leur mot-clé de clôture (END_IF;, END_FOR;, END_CASE;).# devant les variables locales (spécificité Siemens).(* ... *) ou //.TON, TOF, R_TRIG) sont déclarées dans la section <privateVariables> ou déclarées globalement..XMY contiennent des balises racines <FBExchangeFile> ou <variablesExchangeFile> valides avec des namespaces conformes.BOOL, INT, REAL).<?xml version="1.0" encoding="UTF-8"...).