소스 정보
- 저장소
- 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명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? 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"...).