ソース情報
- リポジトリ
- JohnNuwan/EVA_CORE
- ソースの最終更新活動
- 2026年7月18日 08:30
- 検出された SKILL.md の言語
- フランス語
- スター
- 0
- フォーク
- 0
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
SOC 職業分類に基づく
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/JohnNuwan/EVA_CORE --skill rockwell-studio5000コマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
SKILL.md を表示中
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.
| name | rockwell-studio5000 |
| description | Programmer en ST Rockwell et manipuler des fichiers L5X. |
| version | 1.3.0 |
| author | EVA |
| license | Privée EVA St-Étienne |
| platforms | ["linux","macos","windows"] |
| metadata | {"tags":["rockwell","studio5000","logix-designer","plc","l5x","industrial-automation"],"related_skills":["simplify-code","plan"]} |
L'environnement Studio 5000 Logix Designer d'Allen-Bradley (Rockwell Automation) est la référence pour programmer les contrôleurs ControlLogix et CompactLogix.
Référence technique : Voir references/rockwell-generation-workflow.md pour le workflow de génération automatisée depuis des FDS, references/rgy-project-structure.md pour un exemple concret de projet RGY multi-FDS, references/roh-project-structure.md pour un exemple de projet PDF-only (ROH), references/parallel-subagent-generation.md pour la génération parallèle multi-zone par sous-agents, et references/l5x-consolidation-workflow.md pour le script de post-traitement qui consolide les sorties de sous-agents en fichiers L5X valides avec CDATA.
À utiliser lorsque l'utilisateur demande :
Dans les architectures Logix, la gestion de la mémoire est divisée en deux portées fondamentales :
HMI_Start_Button).\ProgramName.TagName (introduite sur les versions de firmware récentes).Les fichiers L5X sont des structures XML strictes et ordonnées représentant le projet ou des sous-composants (AOI, Routines, UDTs, Programmes).
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RSLogix5000Content SchemaRevision="1.0" SoftwareRevision="33.00" TargetName="MyProject" TargetType="Controller">
<Controller Name="MyController">
<!-- Définition des types de données utilisateur (UDT) -->
<DataTypes>
<DataType Name="UDT_AnalogInput">
<Members>
<Member Name="RawValue" DataType="INT" Dimension="0" Radix="Decimal" Access="Read/Write"/>
<Member Name="ScaledValue" DataType="REAL" Dimension="0" Radix="Float" Access="Read/Write"/>
<Member Name="Fault" DataType="BOOL" Dimension= = =/>
<![CDATA[
// Logique de l'AOI
Temp_Val := Input;
Scaled := Temp_Val * 10.0;
]]>
<![CDATA[
// Appel de logique de routine
Local_Step := 10;
]]>
[!IMPORTANT]
- Entités XML : Les caractères spéciaux dans le code ST (
<,>,&) provoquent des erreurs de parsing XML s'ils sont insérés bruts.- Solution : Envelopper systématiquement le code Structured Text dans des sections
<![CDATA[ ... ]]>à l'intérieur de l'élément<Content>.
Sous Logix, les temporisations utilisent le type prédéfini TIMER qui possède une structure de registres interne fixe et s'exprime exclusivement en millisecondes (ms).
TIMER :.PRE (Preset) : DINT (32 bits), valeur de cible ou consigne de temps..ACC (Accumulator) : DINT (32 bits), valeur de temps écoulé actuelle..EN (Enable) : BOOL, indique si l'instruction de temporisation est activée..TT (Timer Timing) : BOOL, indique que le timer est en cours d'accumulation (.EN actif et .ACC < .PRE)..DN (Done) : BOOL, passe à TRUE lorsque .ACC >= .PRE.// Appel et exécution d'un Timer TON (On-Delay)
MyTimer.PRE := 5000; // Consigne de 5.0 secondes (5000 ms)
MyTimer.TimerEnable := Run_Cmd; // Condition d'activation
TON(MyTimer); // Exécution de l'instruction système
// Récupération de l'état
Timer_Done := MyTimer.DN; // TRUE après 5 secondes d'activation continue
Timer_Active := MyTimer.TT; // TRUE pendant l'écoulement du temps
// Calcul du temps restant (Mathématiques sur temporisateurs)
Time_Remaining := MyTimer.PRE - MyTimer.ACC; // Temps restant en ms
.ACC := 0, .DN := 0) dès que la condition d'entrée (.TimerEnable / Run_Cmd) repasse à FALSE..ACC même si .TimerEnable repasse à FALSE. Pour remettre à zéro un RTO, il faut exécuter explicitement l'instruction de réinitialisation RES :
IF Reset_Cmd THEN
RES(MyRTO); // Remet MyRTO.ACC à 0 et MyRTO.DN à FALSE
END_IF;
A-Z, a-z), chiffres (0-9) et caractères de soulignement (_).Pump__Start est invalide).Pump_Start_ est invalide).Les automates Rockwell ne disposent pas d'une instruction native simple de mise à l'échelle (comme l'instruction SCALE sur d'autres plateformes). On implémente souvent cet algorithme sous forme d'AOI ou de fonction Structured Text.
// Formule mathématique linéaire :
// Output = ((Input - Raw_Min) / (Raw_Max - Raw_Min)) * (EU_Max - EU_Min) + EU_Min
// Implémentation robuste en ST Rockwell
Span_Raw := Raw_Max - Raw_Min;
Span_EU := EU_Max - EU_Min;
IF Span_Raw <> 0.0 THEN
// Calcul de la valeur brute proportionnelle
Scaled_Temp := ((Input_Raw - Raw_Min) / Span_Raw) * Span_EU + EU_Min;
// Écrêtage (Clamping) pour éviter les valeurs hors limites physiques
IF Scaled_Temp > EU_Max THEN
Output_Scaled := EU_Max;
ELSIF Scaled_Temp < EU_Min THEN
Output_Scaled := EU_Min;
ELSE
Output_Scaled := Scaled_Temp;
END_IF;
Scale_Fault := FALSE;
ELSE
// Erreur de configuration (Division par zéro évitée)
Output_Scaled := EU_Min;
Scale_Fault := TRUE;
END_IF;
Lorsqu'un projet industriel contient plusieurs dizaines de FDS répartis par zone fonctionnelle (réception, broyage, extrusion, conditionnement, etc.), le traitement doit être systématisé.
{PREFIX}-FDS-{ZONE}-{FEATURE}-{VERSION}.{ext}
Exemple concret (projet RGY — recyclage plastique) :
RGY-FDS-RECEPTION-UNLOAD-G.pdf ← Zone Réception, déchargement, version G
RGY-FDS-GRINDING-DOSING-F.pdf ← Zone Broyage, dosage, version F
RGY-FDS-EXTRUSION_L2-GENERALITIES-B.pdf ← Zone Extrusion Ligne 2, généralités, version B
client_data/{PROJET}/FDS/
├── 00-GENERAL/ ← FDS transverses (supervision, calibration, chauffage, agitation)
├── 01-{ZONE_A}/ ← FDS spécifiques à la zone A
├── 02-{ZONE_B}/ ← FDS spécifiques à la zone B
│ ├── 1-LINE_1/ ← Sous-lignes si la zone est divisée
│ └── 2-LINE_2/
├── .../ ← 8 à 12 zones max
├── RGY-FS-LIST-{DATE}.xls ← Fichier de liste des E/S (I/O List) complémentaire
└── Master/ ← Dossiers masters contenant les originaux non révisés
.pdf et .docx valides (ignorer ~$* fichiers temporaires Office).GENERALITIES ou GENERAL définissent les blocs génériques (UDT, AOI, routines standard) qui s'appliquent à toute la zone.--skid du script generate_rockwell_from_fds.py pour remplacer les patterns SKXX par le numéro de skid réel.~$*.docx sont des verrous temporaires — les ignorer systématiquement.Unité de temps incorrecte dans les Timers :
.PRE (ex: MyTimer.PRE := 5; pour 5 secondes).MyTimer.PRE := 5000;).Utilisation erronée de .Q ou .IN (réflexes Siemens/Codesys) :
.Q ou d'assigner l'activation sur .IN..DN (Done) pour la sortie de temporisation et .TimerEnable ou le paramètre de l'instruction TON pour l'activation.Limites de caractères des étiquettes (Tags) :
Génération L5X par sous-agents délégués (delegate_task) :
<Content> vides, sans CDATA, ou avec des structures XML incohérentes entre zones.generate_rockwell_from_fds.py utilise async_call_llm depuis l'infrastructure EVA — les sous-agents n'y ont pas accès et reconstruisent leur propre logique de génération XML de façon non standardisée..st (Structured Text) aux sous-agents.
b) Centraliser la génération des L5X (AOI + Routine) dans un script de post-traitement unique qui :
.st générés<Content> n'est vide
c) Voir section 4 pour le détail du workflow de consolidation.<![CDATA[ ... ]]>..PRE en millisecondes et exploitent le bit .DN comme indicateur de fin de temporisation.Raw_Max <> Raw_Min) et un écrêtage (clamping) de la sortie.references/l5x-consolidation-workflow.md) et valider que 100% des L5X contiennent du CDATA et qu'aucun <Content> n'est vide._) et non des tirets (-) pour rester compatibles avec les conventions de nommage Rockwell.rockwell-l5x-generationCalculs arithmétiques sur types mixtes :
INT (brut de carte d'I/O) et un REAL (coefficient d'échelle).REAL_Val := ANY_TO_REAL(INT_Val);).