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