MkV Studio est un programme dédié à l'analyse et à la mise au point de soft Mark V de General
Electric.
il permet une lecture rapide et efficace des fichiers CSP.PRN. Les rungs sont affichés comme sur
la copie papier du fichier. La recherche des signaux est simplifiée au maximum; à savoir un clique
sur un contact renvoie directement sur l'origine du signal. (voir Afficher un fichier Csp.prn)
un segment de simulation peut être chargé en tache de fond. Toutes les entrées du Mark V
peuvent être programmées pour 'réagir' comme dans la réalité. Un vrai compilateur C (lcc) est
fourni et permet l'ecriture de puissant algorithme de simulation. (voir Principe de fonctionnement)
lorsqu'il tourne sur un HMI connecté à un Mark V toutes les variables sont actualisées en temps
réel. Toutes les logiques peuvent être forcées avec l'option 'logic forcing' et tous les 'analog
setpoint' et 'constant' peuvent être modifiés! (uniquement TCI 1.5 doit être installé, Cimplicity
n'est pas nécessaire). (voir Variables MkV)
Page 1 sur 40
MkV Studio 1.5
Barre d'outils
Lorsque MkV Studio fonctionne sur un HMI connecté à un Mark V, la barre d'outils contient en plus
les informations suivantes:
Page 2 sur 40
MkV Studio 1.5
A propos de l'auteur
Christian Florentz
Tél: +33 (0) 3 84 59 12 92
Email christian.florentz@ps.ge.com
ou christian.florentz@wanadoo.fr
URL: http://perso.wanadoo.fr/christian.florentz/
Page 3 sur 40
MkV Studio 1.5
Version
Page 4 sur 40
MkV Studio 1.5
Utiliser l'option du menu 'Fichier|Ouvrir' (ou le racourci clavier Ctrl+O) pour ouvrir un fichier
CSP.PRN.
Plusieurs fichiers peuvent être ouvert en même temps. Pour optimiser l'affichage de plusieurs CSP à
l'ecran utiliser le menu 'Fenêtre|Aligner les fenêtres' (ou le racourci clavier F8).
Si le fichier CSP.PRN ouvert se trouve dans un répertoire MKV (F:\UNITn), MkV Studio sélectionne
automatiquement l'unité (T1, T2..) associée pour le rafraichissement des variables.
Ces fichiers sont ouvert en lecture seul. Utiliser les programmes MS_XREF.EXE (sous IDP) ou
SEQDOCMT.EXE (sous TCI) pour re-génerer ce type de fichier.
Page 5 sur 40
MkV Studio 1.5
Utiliser l'option "Police de caractères" du menu "Affichage" pour sélectionner une police. Pour afficher
correctement les rungs il faut impérativement utiliser une police non proportionnelle. Ce menu permet
également de sélectionner la taille des caractères.
La police "Terminal" peut convenir (en standard sur NT). Pour optimiser l'affichage MkV Studio est livré
avec la police AAHHH. Cette police non proportionnelle permet l'affichage correcte des BBLs.
Pour l'installer:
aller dans le Démarrer->Panneau de Configuration->Polices
dans le menu Fichiers, sélectionner "Installer une nouvelle police"
sélectionner le répertoire D:\Program Files\CFsoft (ou votre répertoire d'installation de MKV
Studio)
cliquer sur "Toutes" puis "OK"
Page 6 sur 40
MkV Studio 1.5
Rechercher un signal
Utiliser l'option "Rechercher un signal" du menu "Edition" (ou le racourci clavier Ctrl+F) pour accéder
à la boite de dialogue de recherche.
Il suffit de taper le signal à rechercher. Si le signal existe il va apparaitre dans la liste des signaux.
Cette liste correspond au fichier Csp_xref.prn.
Remarque: pour que le cross ref apparaisse dans la liste, le fichier Csp_xref.prn doit impérativement
se trouver dans le même répertoire que le fichier Csp.prn affiché.
Contrairement aux autres programmes (NotePad, Word...) la recherche de signaux est intelligente.
C'est à dire les signaux qui apparaissent sur deux lignes sont détectés. MKV Studio essayer de
trouver une chaine de caractères dans les noms des signaux (au-dessus des contacts, au dessus des
bobines, paramètres de BBL...). Lorsque cette première passe a echoué, la recherche recommence du
début en mode classique comme n'importe quel éditeur (en mode ligne).
Options de rechercher:
Filtrer les longnames: Si cette option est sélectionnée, les lignes de cross ref sous chaque rung
sont ignorées lors de la recherche.
Note: pour utiliser les trois options suivantes il faut dé-selectionner l'option 'Rechercher un signal'.
Dans ce cas le titre de la boite de dialogue se transforme en 'Rechercher un texte'. Ces options
sont les options classiques de recherche, à savoir:
Respecter MAJ/min: Cocher cette option pour différencier les caractères majuscules et
miniscules.
Depuis le début du fichier: Cocher cette option pour effectuer une recherche depuis le début du
fichier.
Page 7 sur 40
MkV Studio 1.5
Lorsque l'origine d'un signal est trouvé, utiliser l'option "Suivant" du menu "Edition" (F3) pour
afficher tous les rungs contenant le signal recherché.
Page 8 sur 40
MkV Studio 1.5
Lorsque l'origine d'un signal est trouvé, utiliser l'option "Précédent" du menu "Edition" (F9) pour
afficher tous les rungs précédent contenant le signal recherché.
Page 9 sur 40
MkV Studio 1.5
A la manière des navigateurs Internet, MkV Studio mémorise la position de tous les rungs visités. Il
est ainsi très facile de revenir en arrière dans vos déplacement dans le csp.
Quatres possibilitées pour parcourir rapidement les différents rungs déjà affichés:
Le clavier, touche + et -.
Page 10 sur 40
MkV Studio 1.5
Utiliser l'option "Aller rung" du menu "Rung" (ou le racourci clavier CTRL+G). Taper le nom du
segment puis le numéro de rung (en majuscule ou en minuscule), exemple: SEQ_TRB1 20
Une autre solution consiste à utiliser le cross ref qui se trouve sous chaque rung. Cliquer
simplement sur un nom de rung pour l'afficher.
Page 11 sur 40
MkV Studio 1.5
Certains BBL utilisent des tableaux de valeurs (ex: bbl TNRV1). Par manque de place, toutes les
valeurs ne peuvent être affichées en même temps. Utiliser l'option "Fenêtre avec la liste des points
de Csp" du menu "Fichier|Nouveau" (ou le racourci clavier F2) pour 'extraire' toutes les variables
affichées du BBL dans une fenêtre à part.
Exemple:
Rechercher (CTRL+F) la variable TNR, MKV Studio affiche le BBL TNRV1
Appuyer sur la touche F2. Toutes les logiques de selection L83JD0 à L83JD11 et toutes les
constantes TNKR1_0 à TNKR1_11 apparaissent à gauche de l'écran.
Page 12 sur 40
MkV Studio 1.5
Utiliser l'option "Nouveau|Fenêtre (vide)" du menu "Fichier" pour personnaliser des ecrans de test.
Il est possible d'afficher des variables, des graphiques, des bitmaps, des commentaires... Ces
fichiers ont l'extension STX.
Par défaut le fichier se nomme 01.STX. Si le fichier existe déjà, MKV Studio recherche le premier
numéro disponible (comme IDP pour les fichies *.IMG). Toutes modifications est automatiquement
enregistrées à la fermeture du programme. Pour changer le nom du fichier, utiliser l'option
"Enregistrer sous..." du menu "Fichier".
Page 13 sur 40
MkV Studio 1.5
Page 14 sur 40
MkV Studio 1.5
Ajouter un texte
Page 15 sur 40
MkV Studio 1.5
Ajouter/editer un graphique
Page 16 sur 40
MkV Studio 1.5
Page 17 sur 40
MkV Studio 1.5
Type de communication
MKV Studio affiche automatiquement la valeur de chaque variable (comme le "Rung Display" ou le
"Logique Forcing").
temps réel, via la connexion Arcnet. Lorsque TCI ne fonctionne pas, cette option n'est pas
disponible. Cocher l'option "Arcnet (TCI)" du menu "Affichage" pour valider cette option.
statique, via un fichier DUMP. Cocher l'option "Statique" du menu "Affichage" pour valider cette
option. Puis charger un fichier DUMP via l'opion "Configurer" du menu "Affichage".
Page 18 sur 40
MkV Studio 1.5
Echelle de conversion
Lorsque l'affichage des variables utilise la connexion Arcnet, MkV Studio permet de changer 'on-
line' le type de scaling. Utiliser le menu Affichage pour sélectionner le type de conversion, à savoir:
English:
Conversion des echelles d'après le fichier english.sca
Metric:
Conversion des echelles d'après le fichier metric.sca
Hexadécimal:
Pas de conversion. La valeur interne (raw) du MkV est affichée en hexa.
Décimal:
Pas de conversion. La valeur interne (raw) du MkV est affichée en décimal.
Les modes English et Metric sont totalement indépendant du choix configuré dans TCI.
Page 19 sur 40
MkV Studio 1.5
Lorsque la souris est positionnée au dessus d'une variable MkV, le longname du signal apparait dans
la barre de message, tout en bas de l'ecran (uniquement dans la fenêtre du CSP).
Pour recevoir encore plus d'information, positionner la souris au dessus d'un signal MkV et cliquer
sur le bouton droit puis "Information". Une boîte de dialogue affiche les informations des fichiers
SCLEDATA.DAT et UNITDATA.DAT.
Page 20 sur 40
MkV Studio 1.5
Lorsque la souris est positionnée au dessus d'une variable logique, cliquer sur le bouton droit et
sélectionner l'option 'Logic Forcing'. Apparait un sous-menu qui permet les mêmes commandes que le
programme 'Logic Forcing', à savoir:
Force to one
Force to zero
Unforce single
L'option 'Unforce all' est dans le sous-menu 'Autres' pour eviter de tous dé-forcer par erreur(...)
Remarque: cette option n'existe pas dans la version Viewer de MkV Studio.
Page 21 sur 40
MkV Studio 1.5
Lorsque la souris est positionnée au dessus d'un push-button, cliquer sur le bouton droit et
sélectionner l'option 'Envoyer l'ordre'. La durée du pulse par défaut, est de 4 cycles.
Pour modifier la durée des pulses, cliquer sur le bouton droit et sélectionner l'option 'Autres|
Durée de la pulse'.
Remarque: cette option n'existe pas dans la version Viewer de MkV Studio.
Page 22 sur 40
MkV Studio 1.5
Lorsque la souris est positionnée au dessus d'un setpoint, cliquer sur le bouton droit et
sélectionner l'option 'Modifier la consigne'. Taper la valeur à envoyer.
Cas particulier lorsque la variable est egalement modifiée automatiquement par le segment de
simulation. Dans ce cas il faut impérativement dé-activer la case 'Auto' pour inhiber le segment de
simulation.
Remarque: cette option n'existe pas dans la version Viewer de MkV Studio.
Page 23 sur 40
MkV Studio 1.5
Lorsque la souris est positionnée au dessus d'une constante, cliquer sur le bouton droit et
sélectionner l'option 'Modifier la constante' puis taper la nouvelle valeur. Attention, la valeur est
modifiée immédiatement sans rampe.
Remarque: cette option n'existe pas dans la version Viewer de MkV Studio.
Page 24 sur 40
MkV Studio 1.5
Fonctions supplémentaires
Cliquer sur le bouton droit et sélectionner l'option 'Autres':
Unforce All: Envoie la commande ''Unforce All" du logic forcing. (ou CTRL+U)
Ack/Reset Alarms: Envoie la commande "Ack et Reset All" des alarmes. (ou CTRL+A)
Durée des pulses: Permet de modifier la durée des push-buttons (en cycle MkV)
Afficher en Enum en count: Permet de choisir le type d'affichage des enums, en texte ou en count.
Remarque: ces options n'existe pas dans la version Viewer de MkV Studio.
Page 25 sur 40
MkV Studio 1.5
Principe de fonctionnement
Bien evidement toutes les dispositions doivent être prises pour ne pas utiliser le programme
Kill_io.exe lorsque le MkV est connecté à une vrai turbine. En effet lorsque Kill_io fonctionne le MkV
devient completement aveugle au changement d'état de toutes ses entrées...
Pour eviter tout risque sur site, Kill_io dispose d'une sécurité: pour le faire démarrer il faut avoir
les conditions suivante:
L4 = 0
TNH = 0.0 %
En usine, par contre, cette possibilité de forcer n'importe quelles entrées du MkV par soft, permet
d'imaginer n'importe quelle simulation automatique, de la plus simple à la plus sophistiquer. Seule la
limitation du rafraichissement à 1Hz peux poser des problèmes de réalisation.
Le segment de simulation, lorsqu'il est utiliser au maximum de ces possibilitées (512 signaux)
augment le trafic sur le réseau arcnet et l'idle time du communicateur <C> diminue de 2 à 5%.
Remarque: cette option n'existe pas dans la version Viewer de MkV Studio.
Page 26 sur 40
MkV Studio 1.5
Le segment de simulation se presente sous la forme un fichier séparer (fichier DLL). Il suffit de le
charger en mémoire avec l'option 'Fichier|Charger un segment'. Lorsque le segment de simulation
est completement chargé en mémoire il démarre automatiquement. La barre des messages affiche à
droite le message 'RUN' et le nombre d'ecriture vers le MkV.
Remarque: cette option n'existe pas dans la version Viewer de MkV Studio.
Page 27 sur 40
MkV Studio 1.5
La bibliothèque de DLL (une DLL = un segment de simulation) se trouve par défaut dans le répertoire
C:\Program Files\CFsoft\MyProjets.
Le répertoire ESSAI est à présent le répertoire de travail contenant tous les fichiers sources de
votre segment de simulation. Le fichier le plus important est le fichier projet ESSAI.PRJ. Il
contient la liste de tous les fichiers sources de la future DLL. Il se présente sous la forme
suivante:
[Dll]
File1 = main.c
File2 = diesel.c
File3 = charge.c
...
Le premier fichier du projet (appeler main.c dans l'exemple) se présente sous la forme suivante:
#include "mk5.h"
void frame() {
// votre code...
}
void start() {
// votre code...
}
void stop() {
// votre code...
}
Le fichier contient trois variables systèmes Title, Unit et Prom ainsi que trois routine frame(),
Page 28 sur 40
MkV Studio 1.5
start() et stop().
Variable Unit: nom de l'unité (exemple T1). Nécessaire pour etablir une relation entre les noms de
variables et le MkV.
Variable Prom: type de prom utiliser dans le MkV. L'adressage des entrées dans la CDB change
entre les différentes version de proms. MkV Studio utilise un fichier CDB.DAT pour connaitre les
adresses des entrées du MkV. Le nom de la variable Prom doit exister dans le fichier CDB.DAT.
(actuellement les versions GAS 7.4 et GHD 1.3 sont supportées - voir le fichier CDB.DAT pour
ajouter d'autre version de prom).
Routine frame( ): c'est la routine principale de la DLL, elle est executée toute les secondes. Tout
est possible, il suffit de respecter la syntaxe C ansi. Cette routine peux contenir des appels à
d'autres routines. Ces autres routines peuvent existées dans des fichiers distincts. Il suffit de
déclarer le nom du fichier dans le fichier projet.
Voir le répertoire MyProjets\DEMO pour d'autres exemples.
Routine start( ): cette routine n'est executé qu'une fois au démarrage de la DLL. Pratique pour
initialiser des constantes.
Routine stop( ): cette routine n'est executé qu'une fois en tout dernier lorsque la DLL est arreté
Compiler la DLL: depuis une fenetre Dos aller dans le répertoire MyProjets\KONDAPALLI\ESSAI
et taper la commande DllMake. S'il n'y a pas d'erreur la DLL essai.dll, compatible MkV Studio est
générer.
ATTENTION: le répertoire D:\Program File\CFsoft\lccpub\bin doit être dans le
PATH
Il suffit de la charger dans MkV Studio, option 'Fichier|Charger un segment' et c'est tout!
Remarque: Le repertoire Source contient les fichiers sources nécessaires à la compilation de la DLL,
notament SBBL.C; ce fichier contient la bibliothèque de fonctions 'standard' du segment de
simulation (tempo, rampe, random...).
Page 29 sur 40
MkV Studio 1.5
1. Variables Mark V:
Toutes les variables du Mark V sont pré-définie dans le fichier d'entête mk5.h
Ce fichier est à inclure dans chaque fichier source avec la commande:
#include "mk5.h"
Remarque: En interne les logiques sont déclarées en type int et les analogiques sont déclarées en
type float.
2. Variables internes:
En standard MkV Studio génére une deuxième catégorie de variable, appelé variable interne (maxi
100 variables internes). Toutes les variables dont le nom commence par s_ (en minuscule) sont
déclarées en type float automatiquement.
Ces variables internes peuvent être visualiser (et modifier) dans une fênetre utilisateur de MkV
Studio. Pour choisir une variable interne, sélectionner "interne" à la place de "T1" pour le nom de
l'unité.
Exemple:
void start( ) {
s_pci = 1.0;
}
void frame( ) {
float a, b;
// ...calcul des coef a et b
DWATT = a * FSR * s_pci + b;
}
Dans cette exemple, le calcul du DWATT dépend du FSR et d'une "constante" s_pci. Celle-ci est
initialisée dans la routine start( ) à 1.0.
L'opérateur peut à tout moment, afficher la variable s_pci dans une fenêtre de type utilisateur et
modifier sa valeur... Magique, non?
Page 30 sur 40
MkV Studio 1.5
3. Variables locales:
Les variables locales sont des variables propre à chaque routine. Typiquement elles servent à des
calculs intermédiaire sans intérêt pour l'utilisateur finale. Les variables a et b de l'exemple
précédent sont des variables locales. Le type (au sens au langage C) de ces variables est totalement
libre. Ces variables ne peuvent pas être affichées dans MkV Studio.
Page 31 sur 40
MkV Studio 1.5
Lorsque L20CBX passe à 1, la variable interne s_t33cb1o s'incrémente toutes les secondes.
Lorsqu'elle vaut 2.0 la routine tmv( ) retourne 1.
Prototype:
Attention: le troisième paramètre de la fonction est un pointeur sur le timer et non le timer lui
même d'ou le signe & avant s_t33cb1o.
Page 32 sur 40
MkV Studio 1.5
La fonction bruit(float max) retourne une valeur aléatoire comprise entre + et - max.
prototype:
float bruit(float max);
exemple:
Page 33 sur 40
MkV Studio 1.5
Prototype:
void droite(float x1, float y1, float x2, float y2, float* a, float* b);
Exemple:
#include "mk5.h"
void frame( ) {
float a, b:
droite(20, 0, 65, 120, &a, &b);
DWATT = a * FSR + b;
}
Page 34 sur 40
MkV Studio 1.5
Prototype:
float itc(float Val, float* pItc, float Sec);
Exemple:
Incrémenter la vitesse TNH à 20% si le moteur de lancement tourne.
#include "mk5.h"
void frame( ) {
if (L6CR && L43C) {
TNH1 = itc(20.0, &tnh_itc, 120.0);
}
}
Page 35 sur 40
MkV Studio 1.5
Prototype:
float mini(float Val1, float Val2);
Page 36 sur 40
MkV Studio 1.5
Prototype:
float maxi(float Val1, float Val2);
Page 37 sur 40
MkV Studio 1.5
Prototype:
float median(float Val1, float Val2, float Val3);
Page 38 sur 40
MkV Studio 1.5
Sources
Page 39 sur 40
MkV Studio 1.5
Ligne de commande
Usage:
MkVStudio.exe [/UNIT:unit_name] [/POINT:point_name] [/DROP:drop_nb] [filename]
/UNIT:unit_name
ouvre le fichier csp.prn associé à l'unité unit_name
/POINT:point_name
recherche immédiatement le signal point_name
/DROP:drop_nb
rechercher immédiatement le signal (alarme) correspondant au drop_nb
filename
ouvre le fichier file_name.
Page 40 sur 40