Documente Academic
Documente Profesional
Documente Cultură
EIO0000000071 04/2014
SoMachine
- Gua de programacin
EIO0000000071.11
04/2014
www.schneider-electric.com
EIO0000000071 04/2014
Tabla de materias
Informacin de seguridad . . . . . . . . . . . . . . . . . . . . . . .
Acerca de este libro . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Parte I Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Captulo 1 Introduccin general a SoMachine Logic Builder . . . .
Qu es SoMachine Logic Builder? . . . . . . . . . . . . . . . . . . . . . . . . . .
Tareas que realiza SoMachine Logic Builder . . . . . . . . . . . . . . . . . . .
Parte II Configuracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Captulo 4 Gestin de dispositivos . . . . . . . . . . . . . . . . . . . . . . . . .
4.1 Adicin de dispositivos mediante el mtodo de arrastrar y soltar . . . .
Adicin de dispositivos mediante el mtodo de arrastrar y soltar . . . .
4.2 Adicin de dispositivos mediante men contextual o signo ms. . . . .
Adicin de un controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Adicin de dispositivos de ampliacin . . . . . . . . . . . . . . . . . . . . . . . . .
Adicin de administradores de comunicacin . . . . . . . . . . . . . . . . . . .
Adicin de dispositivos a un administrador de comunicacin . . . . . . .
Adicin de dispositivos a partir de plantillas . . . . . . . . . . . . . . . . . . . .
4.3 Actualizacin de dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Actualizacin de dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Conversin de dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conversin de dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5 Conversin de proyectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conversin de proyectos de SoMachine Basic y Twido . . . . . . . . . . .
EIO0000000071 04/2014
17
19
23
25
26
27
29
30
36
42
44
49
51
63
63
65
67
68
68
71
72
73
75
77
80
81
81
83
83
88
88
99
100
101
103
120
125
127
130
132
134
137
149
151
152
153
154
157
162
163
165
167
168
169
170
174
177
180
183
185
189
192
194
195
196
197
200
201
204
EIO0000000071 04/2014
Implementacin de interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Invocacin de mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Puntero SUPER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Puntero THIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Objetos de aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tipo de datos (DUT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lista de variables globales - GVL . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lista de variables globales de red - GNVL . . . . . . . . . . . . . . . . . . . . .
Variables persistentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Archivo externo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lista de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Coleccin de imgenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4 Aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
207
209
211
213
216
217
219
222
230
232
234
241
244
244
245
246
247
249
250
250
252
253
254
257
258
269
269
271
272
273
277
279
280
281
282
283
284
286
5
289
294
301
305
306
312
313
315
317
318
319
320
321
322
325
328
329
330
331
332
333
334
335
337
339
346
349
351
353
354
356
357
359
361
363
EIO0000000071 04/2014
EIO0000000071 04/2014
376
377
383
386
389
390
391
392
396
397
398
400
411
413
414
415
419
421
421
423
423
425
425
427
428
428
429
430
433
439
441
442
448
Parte VI Herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Captulo 21 Gestin de alarmas . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuracin de alarmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Definicin de alarma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Editor de configuracin de alarmas . . . . . . . . . . . . . . . . . . . . . . . . . . .
Editor de clases de alarmas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Editor de grupos de alarmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Editor de almacenamiento de alarmas. . . . . . . . . . . . . . . . . . . . . . . . .
453
454
455
456
458
462
463
464
465
467
469
470
474
477
479
480
481
483
485
486
492
498
501
501
503
504
508
513
523
524
525
527
530
531
535
539
541
546
EIO0000000071 04/2014
EIO0000000071 04/2014
548
548
549
549
551
552
555
556
559
560
564
567
568
570
571
573
574
575
578
583
584
585
586
587
591
592
596
600
602
603
606
607
608
610
612
10
620
621
622
624
625
626
628
629
630
631
632
633
634
635
637
641
643
644
645
646
647
650
651
652
653
654
655
657
658
658
661
662
662
663
663
EIO0000000071 04/2014
Captulo 30 Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30.1 Operadores aritmticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ADD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MUL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DIV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MOVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SIZEOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30.2 Operadores de cadenas de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
OR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
EIO0000000071 04/2014
666
667
668
669
670
671
673
676
677
678
681
683
685
689
690
690
692
693
694
696
697
699
701
702
703
704
705
707
709
711
714
716
717
718
719
720
721
722
11
12
723
724
726
727
729
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
748
749
750
751
754
756
757
759
761
763
765
766
767
EIO0000000071 04/2014
Captulo 31 Operandos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31.1 Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Constantes BOOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Constantes TIME. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Constantes DATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Constantes DATE_AND_TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Constantes TIME_OF_DAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Constantes de nmero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Constantes REAL/LREAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Constantes STRING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Constantes con tipo / Literales tipados . . . . . . . . . . . . . . . . . . . . . . . .
31.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Direccionamiento de bits en variables. . . . . . . . . . . . . . . . . . . . . . . . .
EIO0000000071 04/2014
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
785
786
790
792
794
796
796
797
798
799
800
802
803
804
805
806
807
808
809
810
811
13
31.3 Direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Direccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31.4 Funciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Funciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
813
813
817
817
819
821
822
823
826
835
836
837
838
841
842
843
846
851
852
853
854
861
864
871
873
874
875
877
878
EIO0000000071 04/2014
Apndices
.........................................
C.2
EIO0000000071 04/2014
Informacin general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ejecucin de scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mejores prcticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lectura de documentacin de API .NET . . . . . . . . . . . . . . . . . . . . . . .
Puntos de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ejemplos de Schneider Electric Script Engine . . . . . . . . . . . . . . . . . .
Parmetros de dispositivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Versin del compilador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Perfil de visualizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Actualizacin de bibliotecas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Limpieza y compilacin de aplicaciones . . . . . . . . . . . . . . . . . . . . . . .
Configuracin de comunicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Restablecimiento de mensajes de diagnstico . . . . . . . . . . . . . . . . . .
Reinicio del controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
881
882
883
885
887
888
891
893
895
896
897
899
903
904
906
909
917
919
920
921
925
928
929
931
932
933
935
936
937
938
939
940
941
15
C.3
Convertir dispositivo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comparacin de proyectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Funciones avanzadas de administracin de bibliotecas . . . . . . . . . . .
Acceso a POU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ejemplos de CoDeSys Script Engine. . . . . . . . . . . . . . . . . . . . . . . . . .
Proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Aplicaciones online . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Objetos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sistema/Interfaz de usuario (UI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Valores de lectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Valores de lectura de la frmula y envo de un correo electrnico . . .
Determinacin del rbol Dispositivos del proyecto abierto . . . . . . . . .
Ejemplo de script 4: Importacin de un dispositivo
a PLCOpenXML desde Subversion . . . . . . . . . . . . . . . . . . . . . . . . . . .
Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
942
945
946
947
948
949
954
957
958
960
962
963
965
966
969
970
972
976
981
981
985
989
EIO0000000071 04/2014
Informacin de seguridad
Informacin importante
AVISO
Lea atentamente estas instrucciones y observe el equipo para familiarizarse con el dispositivo
antes de instalarlo, utilizarlo o realizar su mantenimiento. Los mensajes especiales que se ofrecen
a continuacin pueden aparecer a lo largo de la documentacin o en el equipo para advertir de
peligros potenciales o para ofrecer informacin que aclara o simplifica los distintos
procedimientos.
EIO0000000071 04/2014
17
TENGA EN CUENTA
La instalacin, manejo, puesta en servicio y mantenimiento de equipos elctricos debern ser
realizados slo por personal cualificado. Schneider Electric no se hace responsable de ninguna
de las consecuencias del uso de este material.
Una persona cualificada es aquella que cuenta con capacidad y conocimientos relativos a la
construccin, el funcionamiento y la instalacin de equipos elctricos y que ha sido formada en
materia de seguridad para reconocer y evitar los riesgos que conllevan tales equipos.
18
EIO0000000071 04/2014
Nmero de referencia
Introduccin a SoMachine
EIO0000000734 (ING);
EIO0000000787 (FRA);
EIO0000000788 (ALE);
EIO0000000790 (ESP);
EIO0000000789 (ITA);
EIO0000000791 (CHI)
EIO0000001854 (ING);
EIO0000001855 (FRA);
EIO0000001856 (ALE);
EIO0000001858 (ESP);
EIO0000001857 (ITA);
EIO0000001859 (CHI)
EIO0000001659 (ING);
EIO0000001660 (FRA);
EIO0000001661 (ALE);
EIO0000001663 (ESP);
EIO0000001662 (ITA);
EIO0000001664 (CHI)
EIO0000001684 (ING);
EIO0000001685 (FRA);
EIO0000001686 (ALE);
EIO0000001688 (ESP);
EIO0000001687 (ITA);
EIO0000001689 (CHI)
EIO0000000071 04/2014
19
Ttulo de la documentacin
Nmero de referencia
EIO0000000735 (ING);
EIO0000000792 (FRA);
EIO0000000793 (ALE);
EIO0000000795 (ESP);
EIO0000000794 (ITA);
EIO0000000796 (CHI)
EIO0000001671 (ING);
EIO0000001672 (FRA);
EIO0000001673 (ALE);
EIO0000001675 (ESP);
EIO0000001674 (ITA);
EIO0000001676 (CHI)
EIO0000000384 (ING);
EIO0000000385 (FRA);
EIO0000000386 (ALE);
EIO0000000388 (ESP);
EIO0000000387 (ITA);
EIO0000000389 (CHI)
EIO0000000673 (ING);
EIO0000000674 (FRA);
EIO0000000675 (ALE);
EIO0000000676 (ESP);
EIO0000000677 (ITA);
EIO0000000678 (CHI)
EIO0000001692 (ING);
EIO0000001693 (FRA);
EIO0000001694 (ALE);
EIO0000001696 (ESP);
EIO0000001695 (ITA);
EIO0000001697 (CHI)
Puede descargar estas publicaciones tcnicas y otra informacin tcnica de nuestro sitio web
www.schneider-electric.com.
20
EIO0000000071 04/2014
ADVERTENCIA
PRDIDA DE CONTROL
z
z
z
z
z
El diseador del esquema de control debe tener en cuenta las posibles modalidades de fallo
de rutas de control y, para ciertas funciones de control crticas, proporcionar los medios para
lograr un estado seguro durante y despus de un fallo de ruta. Funciones de control crticas
son, por ejemplo, una parada de emergencia y una parada de sobrerrecorrido, un corte de
alimentacin y un reinicio.
Para las funciones de control crticas deben proporcionarse rutas de control separadas o
redundantes.
Las rutas de control del sistema pueden incluir enlaces de comunicacin. Deben tenerse en
cuenta las implicaciones de los retrasos de transmisin no esperados o los fallos en el enlace.
Tenga en cuenta todas las reglamentaciones para la prevencin de accidentes y las
directrices de seguridad locales.1
Cada implementacin de este equipo debe probarse de forma individual y exhaustiva antes
de entrar en servicio.
Para obtener informacin adicional, consulte NEMA ICS 1.1 (ltima edicin), "Safety Guidelines
for the Application, Installation, and Maintenance of Solid State Control" (Directrices de seguridad
para la aplicacin, la instalacin y el mantenimiento del control de estado esttico) y NEMA ICS
7.1 (ltima edicin), "Safety Standards for Construction and Guide for Selection, Installation and
Operation of Adjustable-Speed Drive Systems" (Estndares de seguridad para la construccin y
gua para la seleccin, instalacin y utilizacin de sistemas de unidades de velocidad ajustable) o
su equivalente aplicable a la ubicacin especfica.
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
z
z
Utilice solo software aprobado por Schneider Electric para este equipo.
Actualice el programa de aplicacin siempre que cambie la configuracin de hardware fsica.
EIO0000000071 04/2014
21
22
EIO0000000071 04/2014
SoMachine
Introduccin
EIO0000000071 04/2014
Parte I
Introduccin
Introduccin
Contenido de esta parte
Esta parte contiene los siguientes captulos:
Captulo
Pgina
25
29
Conceptos bsicos
63
EIO0000000071 04/2014
23
Introduccin
24
EIO0000000071 04/2014
SoMachine
Introduccin general a SoMachine Logic Builder
EIO0000000071 04/2014
Captulo 1
Introduccin general a SoMachine Logic Builder
Pgina
26
27
EIO0000000071 04/2014
25
26
EIO0000000071 04/2014
Para visualizar slo las vistas relevantes para la tarea que se est llevando a cabo, SoMachine
ofrece perspectivas (vase pgina 47) individuales para la configuracin de hardware y de
software y la modalidad online. Podr adaptar esas perspectivas predeterminadas a sus
necesidades especficas y tambin podr crear sus propias perspectivas con las vistas que utiliza
con ms frecuencia.
Compilacin de proyectos
Logic Builder ofrece diferentes mtodos (como Compilar, Generar todo o Limpiar todo) para
compilar un proyecto de SoMachine.
Comunicacin con el controlador
Logic Builder ofrece funciones de exploracin para detectar los controladores disponibles en la red
Ethernet. Admite diferentes protocolos para la comunicacin con el controlador.
Una vez establecida la comunicacin, las aplicaciones podrn descargarse o cargarse desde el
controlador. Las aplicaciones pueden iniciarse y detenerse en el controlador.
Caractersticas y supervisin online
Las caractersticas de Logic Builder de supervisin online permiten realizar las tareas siguientes:
z Supervisar online los valores del cdigo del programa y de las vistas Supervisar
z Realizar cambios online
z Configurar trazas online
z Supervisar trazas online
z Interactuar con la mquina mediante visualizaciones integradas en modalidad online para
realizar diagnsticos y pruebas
z Leer el estado de controladores y dispositivos
z Detectar errores potenciales de lgica de programacin mediante la funcin de depuracin
EIO0000000071 04/2014
27
28
EIO0000000071 04/2014
SoMachine
Interfaz de usuario de SoMachine Logic Builder
EIO0000000071 04/2014
Captulo 2
Interfaz de usuario de SoMachine Logic Builder
Pgina
30
36
42
44
49
51
EIO0000000071 04/2014
29
Cuando abre Logic Builder, se ofrece un diseo de pantalla predeterminado. En este documento
se describen las posiciones predeterminadas.
Puede adaptar los elementos en funcin de los requisitos individuales segn se describen en el
captulo Personalizacin de la interfaz de usuario (vase pgina 44). Puede ver y modificar la
configuracin actual en el cuadro de dilogo Personalizar. Est disponible de forma predeterminada en el men Herramientas.
Tambin puede organizar las vistas y las ventanas en cualquier momento desplazndolas,
acoplando/desacoplando las vistas, cambiando el tamao de las ventanas o bien cerrndolas. Las
posiciones se guardan con el proyecto. Cuando vuelve a abrir un proyecto, los elementos estn
colocados en las posiciones en las que se dejaron cuando se guard el proyecto. Las posiciones
de las vistas se guardan por separado en perspectivas (vase pgina 47).
30
EIO0000000071 04/2014
1
2
3
4
5
Barra de mens
Barra de herramientas
Navegadores de varias fichas: rboles de Dispositivos, Herramientas, Aplicaciones
Vista Mensajes
Barra de estado e informacin
EIO0000000071 04/2014
31
Vista de catlogo de varias fichas: catlogo de hardware: Controlador, HMI & iPC, Devices & Modules,
Varios; catlogo de software: Variables, Activos, Macros, Herramientas, Bibliotecas
Vista del editor de varias fichas
Componentes estndar
En la pantalla de Logic Builder se incluyen los siguientes componentes que estn visibles de forma
predeterminada:
Componente
Descripcin
Barra de mens
Barra de herramientas
Vista Mensajes
32
EIO0000000071 04/2014
Componente
Descripcin
EIO0000000071 04/2014
33
Descripcin
Ln
Col
Ch
Nmero de caracteres.
(En este contexto, un carcter puede ser un solo carcter o dgito, o bien una
tabla que incluya, por ejemplo, 4 columnas).
Haga doble clic en uno de los campos para abrir el cuadro de dilogo Ir a la lnea. Aqu puede
introducir una posicin distinta en la que se sita el cursor.
El estado de la modalidad de edicin se indica con las abreviaturas siguientes:
Abreviatura
Descripcin
INS
Modalidad de insercin
OVR
Modalidad de sobrescritura
34
Texto
Descripcin
Programa cargado
Programa inalterado
Programa modificado
(modificacin en lnea)
Programa modificado
(descarga completa)
EIO0000000071 04/2014
Color de fondo
Descripcin
RUN
Verde
Programa en ejecucin.
STOP
Rojo
Programa detenido.
PARAR EN PI
Rojo
El siguiente campo de estado slo est disponible si el controlador, en funcin de un ajuste en la descripcin del
dispositivo, admite una supervisin que es independiente del ciclo.
EN EL CICLO
Blanco
Rojo
EIO0000000071 04/2014
35
36
EIO0000000071 04/2014
EIO0000000071 04/2014
37
1
2
3
4
z
z
z
38
Nodo raz
Dispositivo programable (con aplicaciones)
Nombre de dispositivo simblico
Nombre de dispositivo definido en el archivo de descripcin de dispositivo
Cada entrada del rbol Dispositivos muestra el smbolo, el nombre simblico (editable) y el
tipo de dispositivo (el nombre del dispositivo segn se especifica en la descripcin del
dispositivo).
Un dispositivo es programable o configurable. El tipo de dispositivo determina la posible
posicin en el rbol y tambin los recursos adicionales que pueden insertarse debajo del
dispositivo.
En un proyecto, puede configurar uno o varios dispositivos programables, con independencia
del fabricante o el tipo (multirecurso, multidispositivo, conexin en red).
Configure la comunicacin, los parmetros y la asignacin de E/S de un dispositivo en el
dilogo de dispositivo (editor de dispositivos). Para abrir el editor de dispositivos, haga doble
clic en el nodo de dispositivo del rbol Dispositivos (consulte la descripcin del editor de
dispositivos (vase pgina 101)).
En modalidad online, el estado de un dispositivo se indica mediante un icono delante de la
entrada del dispositivo:
EIO0000000071 04/2014
z
z
z
Tambin puede ejecutar la aplicacin activa en un dispositivo de simulacin que est disponible
automticamente de forma predeterminada en el sistema de programacin. Por tanto, no es
necesario ningn dispositivo de destino real para probar el comportamiento online de una
aplicacin (al menos, que no dependa de recursos de hardware para la ejecucin). Al pasar al
modo de simulacin (vase SoMachine, Comandos de men, Ayuda en lnea), la entrada del rbol
Dispositivos se muestra en cursiva y puede iniciar sesin en la aplicacin.
Tambin puede conectarse al controlador en modo de configuracin en lnea (consulte el captulo
Modo de configuracin en lnea (vase SoMachine, Comandos de men, Ayuda en lnea)) sin
tener que cargar primero una aplicacin real en el controlador. Esto resulta muy til para la puesta
en marcha inicial de un sistema de E/S porque puede acceder a las E/S y probarlas en la
configuracin del controlador antes de compilar y cargar un programa de aplicacin real.
Para obtener informacin sobre la conversin de referencias de dispositivo al abrir proyectos,
consulte la publicacin SoMachine - Compatibilidad y migracin - Gua del usuario.
EIO0000000071 04/2014
39
40
EIO0000000071 04/2014
EIO0000000071 04/2014
41
de la barra de herramientas
42
EIO0000000071 04/2014
EIO0000000071 04/2014
43
44
EIO0000000071 04/2014
Descripcin
La vista se sita encima.
EIO0000000071 04/2014
45
46
EIO0000000071 04/2014
Visualizacin de vistas ocultas: para mostrar una vista oculta, haga clic en el botn Ocultar hacia
la izquierda.
El comando Ocultar, que est disponible de forma predeterminada en el men Ventana,
proporciona una manera alternativa de ocultar una vista y volverla a mostrar.
No se puede volver a colocar la barra de estado e informacin en el borde inferior de la interfaz de
usuario (vase pgina 31).
Perspectivas
Las perspectivas se utilizan para guardar el diseo de las vistas de SoMachine. Guarda si las
vistas Mensajes y Supervisar estn abiertas y en qu posicin se sitan las ventanas de vista
(acopladas o independientes).
De forma predeterminada, SoMachine proporciona 4 perspectivas para los siguientes casos de
uso en el men Ventana Cambiar perspectiva o en la tabla de perspectiva de la barra de
herramientas.
Nombre de
perspectiva
Caso de uso
Navegadores (en el
lado izquierdo)
Vistas de catlogo
(en el lado derecho)
Vistas en la parte
inferior de la pantalla
Configuracin del
dispositivo
Para
aadir/configurar
dispositivos.
Mensajes (en
modalidad Ocultar)
Configuracin
lgica
Para aadir/crear
lgica.
Mensajes (en
modalidad Ocultar)
CODESYS Classic
Vistas estndar de
CoDeSys
z Dispositivos
z POU
En lnea
Para modalidad
online.
modalidad
Ocultar)
z Supervisar 1
47
Accin
Cambie el tamao de las vistas, bralas o cirrelas en funcin de sus necesidades individuales.
48
EIO0000000071 04/2014
49
Para abrir la vista online del objeto, active la modalidad online y haga clic en Aceptar. Para ver
la vista offline, active la modalidad offline.
Si el objeto es un bloque de funciones, el campo Instancia de bloque de funciones contendr
una lista de las instancias utilizadas actualmente en la aplicacin.
En tal caso, las opciones disponibles son:
z Seleccione una de las instancias y active la modalidad online o la modalidad offline.
z O bien seleccione la opcin Implementacin, que, independientemente de la instancia
seleccionada, abrir la vista de implementacin bsica del bloque de funciones. La opcin
Implementacin no tiene ningn efecto en los objetos no instanciados.
Para obtener ms informacin sobre las vistas online de cada editor, consulte la descripcin del
editor correspondiente.
La barra de estado (vase pgina 31) proporciona informacin sobre el estado actual de la
aplicacin.
50
EIO0000000071 04/2014
Men Archivo
Varios comandos del men Archivo no estn disponibles porque se llevan a cabo estas tareas en
SoMachine Central. Para obtener ms informacin, consulte SoMachine Central - Gua del
usuario (vase SoMachine Central, Manual del usuario).
El men Archivo contiene los comandos siguientes:
Smbolo
Comando
Mtodo abreviado
Descarga de origen...
Imprimir...
Configuracin de pgina...
EIO0000000071 04/2014
51
Men Editar
El men Editar contiene comandos para trabajar en los editores (editores de lenguajes, editor de
declaraciones).
Smbolo
Comando
Mtodo abreviado
Deshacer
CTRL + Z
Rehacer
CTRL + Y
Cortar
MAYS + SUPR
Copiar
CTRL + INSERT
Pegar
MAYS + INSERT
Eliminar
SUPR
Seleccionar todo
CTRL + A
Buscar/Reemplazar
Avanzado
52
CTRL + F
Reemplazar
CTRL + H
Buscar siguiente
F3
CTRL + F3
Buscar anterior
SHIFT + F3
MAYS + CTRL + F3
Examinar
Buscar
Ir a la definicin
Modalidad de sobrescritura
INS
EIO0000000071 04/2014
Smbolo
Comando
Mtodo abreviado
Ir a la lnea...
Make Uppercase
MAYS + CTRL + C
Make Lowercase
CTRL + V
Go To Matching Bracket
Marcadores
Activar/desactivar marcador
CTRL + F12
Marcador siguiente
F12
Marcador anterior
MAYS + F12
Borrar marcadores
Accesibilidad...
F2
Buscador FFB...
Declarar variable...
MAYS + F2
Mensaje siguiente
F4
Mensaje anterior
MAYS + F4
Men Ver
El men Ver contiene comandos para activar las vistas estndar particulares. Se mostrarn en
una ventana en la interfaz de usuario. Tenga en cuenta tambin el men (vase pgina 60)
Ventana
Smbolo
Comando
Mtodo abreviado
Navegadores
Navegadores clsicos
EIO0000000071 04/2014
Dispositivos
Aplicaciones
Herramientas
53
Smbolo
Comando
Mtodo abreviado
Dispositivos
POU
Catlogo de hardware
Controlador
Varios
Catlogo de software
Variables
Activos
Macros
Herramientas
Bibliotecas
Mensajes
ALT + 2
Supervisar
Supervisar 1...4
54
EIO0000000071 04/2014
Smbolo
Comando
Mtodo abreviado
Ver todos los forzados
Puntos de interrupcin
Pila de llamadas
Propiedades...
Men Proyecto
El men Proyecto contiene comandos para la gestin de los objetos de proyecto y la informacin
general sobre el proyecto, la copia (fusin) y exportacin de proyectos, as como el control de
cdigo de origen y la administracin de usuarios.
Smbolo
Comando
Mtodo abreviado
Agregar objeto
Agregar dispositivo...
Accin...
Propiedad...
Transicin...
Convertir dispositivo...
Buscar dispositivos...
Actualizar dispositivo...
Agregar carpeta...
Modificar objeto
EIO0000000071 04/2014
55
Smbolo
Comando
Mtodo abreviado
Documentar...
Comparar...
Exportar PLCOpenXML...
Importar PLCOpenXML...
Exportar...
Importar...
Administracin de usuarios
56
Permisos...
EIO0000000071 04/2014
Men Compilar
El men Compilar contiene comandos para compilar el proyecto, es decir, para realizar una
ejecucin previa a la compilacin que incluye una comprobacin sintctica. Comandos para
eliminar la informacin de compilacin ms reciente (limpiar) que cubre la generacin de Cambio
en lnea y cdigo offline.
Smbolo
Comando
Mtodo abreviado
Generar todo
Compilar
F11
Compilar de nuevo
Crear cdigo
Limpiar
Limpiar todo
Men En lnea
El men En lnea contiene comandos para iniciar y cerrar sesin en el controlador, cargar el
proyecto en el controlador y reiniciar.
Smbolo
Comando
Mtodo abreviado
Inicio de sesin
ALT + F8
Cerrar sesin
CTRL + F8
Descarga
Cambio en lnea
Descarga mltiple...
Reset caliente
Reset fro
Reset origen
EIO0000000071 04/2014
57
Smbolo
Comando
Mtodo abreviado
Simulacin
Advanced Configuration
Men Debug
El men Debug contiene comandos para controlar la ejecucin del programa en el controlador
(iniciar, detener) y llevar a cabo acciones de depuracin (puntos de interrupcin, ejecucin paso
a paso, escritura y forzado).
Smbolo
Comando
Mtodo abreviado
Iniciar
F5
Detener
MAYS + F8
Ciclo individual
CTRL + F5
Nuevo punto de
interrupcin...
Alternar punto de
interrupcin...
F9
F10
Paso a paso
F8
MAYS + F10
Definir la siguiente
instruccin
Mostrar la siguiente
instruccin
Escribir valores
CTRL + F7
F7
58
EIO0000000071 04/2014
Smbolo
Comando
Mtodo abreviado
ALT + F7
Control de proceso
Modo de visualizacin
Binario
Decimal
Hexadecimal
Men Herramientas
El men Herramientas contiene comandos para abrir herramientas que sirven para preparar el
entorno para trabajar en un proyecto (como la instalacin de bibliotecas y dispositivos, la
personalizacin de la interfaz de usuario, las opciones de los editores, cargar y guardar).
Smbolo
Comando
Mtodo abreviado
Repositorio de bibliotecas...
Repositorio de plantillas...
Repositorio de dispositivos...
Automatizacin
OPC [Mi_controlador]...
Personalizar...
Opciones...
EIO0000000071 04/2014
59
Men Ventana
El men Ventana contiene comandos para organizar las ventanas en la interfaz de usuario (como
la posicin, abrir, cerrar). Consulte tambin el men (vase pgina 53) Ver.
Smbolo
Comando
Mtodo abreviado
Siguiente editor
CTRL + F6
Editor anterior
CTRL + MAYS + F6
Cambiar perspectiva
En lnea
CODESYS Classic
Configuracin lgica
Guardar perspectiva
Flotante
Acoplar
Ocultar
Panel siguiente
F6
Panel anterior
MAYS + F6
smbolo
del editor
Ventana <n>
Ventanas...
60
EIO0000000071 04/2014
Men Ayuda
El men Ayuda contiene comandos para obtener ayuda online e informacin sobre el sistema de
programacin.
Smbolo
Comando
Mtodo abreviado
Contenido...
CTRL + MAYS + F1
ndice...
CTRL + MAYS + F2
Buscar...
Acerca de...
EIO0000000071 04/2014
61
62
EIO0000000071 04/2014
SoMachine
Conceptos bsicos
EIO0000000071 04/2014
Captulo 3
Conceptos bsicos
Conceptos bsicos
Introduccin y conceptos bsicos
Descripcin general
SoMachine es un sistema de programacin de controladores independiente del dispositivo.
De acuerdo con la norma IEC 61131-3, admite todos los lenguajes de programacin estndar.
Adems, permite incluir rutinas C. Permite programar mltiples dispositivos de controlador en un
mismo proyecto.
Para obtener ms informacin, consulte el captulo Crear archivos del sistema de tiempo de
ejecucin (vase SoMachine, Comandos de men, Ayuda en lnea).
Orientacin a objetos
La esencia de la orientacin a objetos queda patente no slo en la disponibilidad de elementos y
funciones de programacin adecuados, sino tambin en la gestin de estructuras y versiones de
SoMachine y en la organizacin del proyecto. La utilizacin multidispositivo de un proyecto de
SoMachine se basa en el uso conjunto de unidades de programacin instanciadas. Puede clonar
aplicaciones, as como combinar dispositivos de controlador configurables y programables en un
solo proyecto.
Tratamiento de la versin
Puede realizarse la instalacin simultnea de diversas versiones de componentes de SoMachine
y trabajar con la combinacin de versiones que se desee. Esto tambin es aplicable al uso de
distintas versiones de compilador especficas del dispositivo. Se pueden aadir funciones
individuales sin tener que actualizar toda la versin.
Para obtener informacin ms detallada, consulte SoMachine - Compatibilidad y migracin - Gua
del usuario.
EIO0000000071 04/2014
63
Conceptos bsicos
Descripcin
Objetos de programacin
(POU) (vase pgina 169)
Objetos de recurso
(Dispositivos)
Generacin de cdigo
La generacin de cdigo mediante compiladores integrados y el posterior uso del cdigo de
mquina resultante ofrecen un tiempo de ejecucin breve.
Transferencia de datos al dispositivo controlador
La transferencia de datos entre SoMachine y el dispositivo se realiza mediante una puerta de
enlace (componente) y un sistema de tiempo de ejecucin. Se proporciona una funcionalidad
online completa para controlar un programa en el dispositivo.
Lenguajes de programacin compatibles
Se admiten los lenguajes de programacin indicados en el estndar IEC IEC 61131 mediante
editores adaptados especficamente:
z FBD/LD/IL editor (vase pgina 279) para diagrama de bloques de funciones (FBD), diagrama
de contactos (LD) y lista de instrucciones (IL)
z Editor SFC (vase pgina 353) para diagrama funcional secuencial
z Editor ST (vase pgina 389) para texto estructurado
Adems, SoMachine proporciona un editor para programacin en CFC que no forma parte del
estndar IEC:
z Editor CFC (vase pgina 333) para diagrama de funcin continua
CFC es una extensin de los lenguajes de programacin del estndar IEC.
64
EIO0000000071 04/2014
SoMachine
Configuracin
EIO0000000071 04/2014
Parte II
Configuracin
Configuracin
Contenido de esta parte
Esta parte contiene los siguientes captulos:
Captulo
Pgina
Gestin de dispositivos
67
99
EIO0000000071 04/2014
65
Configuracin
66
EIO0000000071 04/2014
SoMachine
Gestin de dispositivos
EIO0000000071 04/2014
Captulo 4
Gestin de dispositivos
Gestin de dispositivos
Contenido de este captulo
Este captulo contiene las siguientes secciones:
Seccin
Apartado
Pgina
4.1
68
4.2
71
4.3
Actualizacin de dispositivos
81
4.4
Conversin de dispositivos
83
4.5
Conversin de proyectos
88
EIO0000000071 04/2014
67
Gestin de dispositivos
Seccin 4.1
Adicin de dispositivos mediante el mtodo de arrastrar y soltar
Accin
1
Para abrir el Catlogo de hardware, haga clic en el botn Catlogo de hardware
barra de herramientas de SoMachine Logic Builder si todava no est abierto.
68
de la
EIO0000000071 04/2014
Gestin de dispositivos
Accin
1
Para abrir el Catlogo de hardware, haga clic en el botn Catlogo de hardware
barra de herramientas de SoMachine Logic Builder si todava no est abierto.
de la
Accin
1
Para abrir el Catlogo de hardware, haga clic en el botn Catlogo de hardware
barra de herramientas de SoMachine Logic Builder si todava no est abierto.
de la
Seleccione una entrada de dispositivo de campo en la vista de catlogo Devices & Modules,
arrstrela al rbol Dispositivos y sultela en el subnodo adecuado de un controlador.
NOTA: SoMachine expande y resalta los subnodos adecuados.
Resultado: El dispositivo de campo se aade al rbol Dispositivos, debajo del subnodo del
controlador.
EIO0000000071 04/2014
69
Gestin de dispositivos
Accin
1
Para abrir el Catlogo de hardware, haga clic en el botn Catlogo de hardware
barra de herramientas de SoMachine Logic Builder si todava no est abierto.
de la
Accin
1
Para abrir el Catlogo de software, haga clic en el botn
SoMachine Logic Buildersi todava no est abierto.
de la barra de herramientas de
70
EIO0000000071 04/2014
Gestin de dispositivos
Seccin 4.2
Adicin de dispositivos mediante men contextual o signo ms
Pgina
Adicin de un controlador
72
73
75
77
80
EIO0000000071 04/2014
71
Gestin de dispositivos
Adicin de un controlador
Introduccin
Como alternativa al mtodo de arrastrar y soltar los dispositivos en el rbol Dispositivos, haga
clic en el signo ms de color verde que se muestra en el nodo pertinente del rbol. Otra alternativa
es hacer clic con el botn derecho en un nodo del rbol para aadir un dispositivo adecuado
mediante el men contextual. Se abrir el cuadro de dilogo Agregar dispositivo, que le permite
determinar si el dispositivo se adjuntar, insertar o conectar al nodo seleccionado
(vase SoMachine, Comandos de men, Ayuda en lnea).
Cuando se agrega un controlador a su proyecto, automticamente se agregan muchos nodos al
rbol Dispositivos. Estos subnodos son especficos de cada controlador, dependiendo de las
funciones que proporcione el controlador.
El siguiente prrafo describe el procedimiento general para aadir un controlador. Para obtener
ms informacin acerca de un controlador en concreto, consulte el manual de programacin de
ese controlador.
Adicin de un controlador
Para aadir un dispositivo al proyecto de SoMachine, haga lo siguiente:
Paso
Accin
Seleccione un nodo de proyecto y haga clic en el signo ms de color verde del nodo, o haga clic
con el botn derecho en el nodo del proyecto y seleccione el comando Agregar dispositivo... en
el men contextual.
Resultado: Se abre el cuadro de dilogo Agregar dispositivo.
72
EIO0000000071 04/2014
Gestin de dispositivos
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
z
z
Utilice solo software aprobado por Schneider Electric para este equipo.
Actualice el programa de aplicacin siempre que cambie la configuracin de hardware fsica.
Accin
Seleccione un nodo de controlador y haga clic en el signo ms de color verde del nodo, o haga clic con
el botn derecho del ratn en el nodo de controlador y seleccione el comando Agregar dispositivo... en
el men contextual.
Resultado: Se abre el cuadro de dilogo Agregar dispositivo.
Elija el dispositivo de ampliacin que desee aadir al controlador en la lista Dispositivo que aparece a
continuacin.
Para cambiar el nombre del dispositivo de ampliacin, escrbalo en el cuadro de texto Nombre.
NOTA: El nombre no puede contener espacios. Si no cambia el nombre del dispositivo de ampliacin,
se le asignar uno de forma predeterminada.
Asignar un nombre significativo al dispositivo de ampliacin puede facilitar la organizacin del proyecto.
73
Gestin de dispositivos
74
EIO0000000071 04/2014
Gestin de dispositivos
Tipo de
interfaz
Descripcin
Gestor ASCII
Lnea serie
Administrador de red de
SoMachine
z Lnea serie
Modbus IOScanner
Lnea serie
Administrador de Modbus
Lnea serie
CANopen optimizado
CAN
Rendimiento de CANopen
CAN
CANmotion
CAN
Dispositivo esclavo de
Modbus TCP
Ethernet
EtherNet/IP
Ethernet
EIO0000000071 04/2014
(mx. 1)
z Ethernet
(mx. 3)
75
Gestin de dispositivos
76
Accin
En el rbol Dispositivos, seleccione la interfaz de bus (Lnea serie, CAN0, CAN1, Ethernet)
y haga clic en el signo ms de color verde del nodo o haga clic con el botn derecho en el nodo
de interfaz de bus y ejecute el comando Agregar dispositivo en el men contextual.
Resultado: Se abre el cuadro de dilogo Agregar dispositivo.
Haga clic en el botn Cerrar para cerrar el cuadro de dilogo Agregar dispositivo.
EIO0000000071 04/2014
Gestin de dispositivos
Paso
Accin
EIO0000000071 04/2014
77
Gestin de dispositivos
Esta estructura debe estar instalada y activa dentro de la aplicacin de usuario al realizar pruebas,
depurar y poner en marcha la aplicacin. Cuando la mquina y su aplicacin de control ya se han
puesto en marcha y validado, entonces sera posible deshabilitar este cdigo de la ejecucin para
reducir el trfico en la red CANopen.
Sin embargo, si durante el ciclo vital de una aplicacin (y de la mquina o proceso que sta
controla), se aaden o sustituyen esclavos en el sistema operativo, la estructura de diagnstico
debera continuar activa en la aplicacin.
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
z
z
Utilice la estructura de datos g_aNetDiagnosis para supervisar las respuestas del esclavo
CAN a los comandos de configuracin.
Compruebe que la aplicacin no se inicie ni ponga la mquina o el proceso en un estado
operativo, en caso de recibir mensajes de cancelacin de SDO de cualquiera de los
esclavos CAN.
78
EIO0000000071 04/2014
Gestin de dispositivos
EIO0000000071 04/2014
79
Gestin de dispositivos
80
EIO0000000071 04/2014
Gestin de dispositivos
Seccin 4.3
Actualizacin de dispositivos
Actualizacin de dispositivos
Actualizacin de dispositivos
Introduccin
La funcin de actualizar dispositivos le permite reemplazar un dispositivo seleccionado en el rbol
Dispositivos
z por otra versin del mismo dispositivo o
z por un tipo de dispositivo diferente.
Actualizacin de dispositivos
Para reemplazar un dispositivo de su proyecto de SoMachine por otra versin o por un dispositivo
diferente, proceda de la siguiente manera:
Paso Accin
1 Seleccione el dispositivo que desea reemplazar en el rbol Dispositivos y ejecute el comando
Actualizar dispositivo... en el men Proyecto.
O
Haga clic con el botn derecho en el dispositivo que desea reemplazar en el rbol Dispositivos y
seleccione el comando Actualizar dispositivo... en el men contextual.
Resultado: Se abre el cuadro de dilogo Actualizar dispositivo.
O
Haga clic con el botn derecho en el dispositivo que desea reemplazar en el rbol Dispositivos y
seleccione el comando Agregar dispositivo... en el men contextual. En el cuadro de dilogo
Agregar dispositivo, seleccione Accin: Actualizar el dispositivo.
Resultado: El cuadro de dilogo Agregar dispositivo se convierte en el cuadro de dilogo
Actualizar dispositivo.
2 Desde la lista Dispositivo:, elija el dispositivo que debe reemplazar al dispositivo actual.
Para seleccionar una versin especfica del dispositivo, seleccione las opciones Mostrar todas las
versiones (slo para expertos) y/o Mostrar versiones antiguas.
3 Si es necesario distinguir los dispositivos, cambie el nombre de su dispositivo escribiendo el nuevo
nombre en el cuadro de texto Nombre. De lo contrario, se utilizar el mismo nombre para el
dispositivo actualizado.
Si el dispositivo se actualiza por un tipo de dispositivo diferente, entonces la descripcin del tipo de
dispositivo (entre parntesis despus del nombre del dispositivo) se adaptar automticamente.
Asignar un nombre significativo al dispositivo puede facilitar la organizacin del proyecto.
4 Haga clic en el botn Actualizar dispositivo.
Resultado: El dispositivo que se ha seleccionado en el rbol Dispositivos se reemplaza por el
nuevo tipo de dispositivo o la nueva versin. El nuevo tipo de dispositivo o la nueva versin se
muestra ahora en el nodo seleccionado en el rbol Dispositivos.
EIO0000000071 04/2014
81
Gestin de dispositivos
82
EIO0000000071 04/2014
Gestin de dispositivos
Seccin 4.4
Conversin de dispositivos
Conversin de dispositivos
Conversin de dispositivos
Introduccin
SoMachine 4.0 y versiones posteriores permiten convertir un dispositivo que se ha configurado en
su proyecto en un dispositivo distinto pero compatible. SoMachine convierte de forma automtica
el dispositivo configurado actualmente en el dispositivo seleccionado y muestra los cambios
realizados en la vista Mensajes.
El comando Convertir dispositivo puede aadir o eliminar mdulos automticamente. Estos
cambios de hardware influyen, igualmente, en el direccionamiento y las bibliotecas.
Para evitar un comportamiento imprevisto tras la conversin de un dispositivo:
Asegrese de que el nuevo dispositivo admita todas las funciones y los puertos de
comunicacin necesarios en el proyecto.
z Evite el uso de direcciones directas en la aplicacin.
z Haga una copia de seguridad del proyecto en el disco duro del PC antes de convertir un
dispositivo.
z
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
z
z
Confirme que las direcciones directas utilizadas en la aplicacin (por ejemplo, %IB5) se hayan
convertido correctamente tras la conversin de dispositivo.
Verifique que el proyecto modificado contenga las configuraciones previstas y proporcione la
funcionalidad prevista despus de convertir el dispositivo.
ATENCIN
PRDIDA DE DATOS
Haga una copia de seguridad del proyecto en el disco duro del PC antes de convertir un
dispositivo.
El incumplimiento de estas instrucciones puede causar lesiones o dao al equipo.
EIO0000000071 04/2014
83
Gestin de dispositivos
Conversin de un dispositivo
Para convertir un dispositivo en un dispositivo compatible, siga estos pasos:
Paso
84
Accin
Haga una copia de seguridad del proyecto en el disco duro del PC ejecutando el comando Archivo
Guardar proyecto como... antes de convertir un dispositivo.
Haga clic con el botn derecho en un dispositivo que desee convertir del rbol Dispositivos.
EIO0000000071 04/2014
Gestin de dispositivos
Paso
Accin
Si todava no ha realizado una copia de seguridad del proyecto, haga clic en Cancelar para detener el
proceso sin los cambios y realice una copia de seguridad antes de reiniciar el proceso.
Para iniciar la conversin, haga clic en Aceptar.
Resultado: El dispositivo configurado se convierte en el dispositivo seleccionado en la lista. Se mantiene
la informacin que ha introducido si los mdulos relacionados siguen disponibles. Las modificaciones o
configuraciones que no se han podido convertir se indican en la vista Mensajes.
EIO0000000071 04/2014
85
Gestin de dispositivos
Caso especial: Conversin de un dispositivo HMI en otro dispositivo HMI con una resolucin de
pantalla ms alta
Al igual que los dems dispositivos, tambin puede convertir un dispositivo HMI en otro dispositivo
HMI. En este caso, el cuadro de dilogo Convertir dispositivo incorpora una opcin adicional
para dispositivos HMI que permite la adaptacin automtica a una resolucin de pantalla ms alta.
Cuadro de dilogo Convertir dispositivo para dispositivos HMI
86
EIO0000000071 04/2014
Gestin de dispositivos
Si el dispositivo HMI nuevo dispone de una pantalla ms grande y, por consiguiente, mayor
resolucin, la opcin Ajustar a una mayor resolucin de pantalla estar habilitada de forma
predeterminada. Adapta automticamente los contenidos de los paneles HMI y las ventanas
emergentes, as como las fuentes de los paneles HMI, al aumento de la resolucin de pantalla del
nuevo dispositivo HMI.
NOTA: Este proceso no se puede deshacer automticamente. Compruebe y, si es necesario,
adapte manualmente los contenidos de los paneles despus de la conversin.
EIO0000000071 04/2014
87
Gestin de dispositivos
Seccin 4.5
Conversin de proyectos
Conversin de proyectos
Conversin de proyectos de SoMachine Basic y Twido
Introduccin
Con SoMachine, puede convertir un proyecto de SoMachine Basic o TwidoSoft/TwidoSuite y el
controlador configurado en lgica de SoMachine seleccionable o un controlador HMI
(vase pgina 981). El controlador y la lgica correspondiente se convierten y se integran en el
proyecto de SoMachine abierto actualmente en Logic Builder. Para llevar esto a cabo, ejecute el
comando Archivo Convertir proyecto de SoMachine Basic o Archivo Convertir
proyecto de Twido. Si los comandos no estn disponibles, puede insertarlos en un men de su
eleccin utilizando el cuadro de dilogo Herramientas Personalizar (vase SoMachine,
Comandos de men, Ayuda en lnea).
NOTA: Verifique que el proyecto de SoMachine Basic o TwidoSoft/TwidoSuite sea vlido antes de
convertirlo a SoMachine.
Para ayudar a evitar un comportamiento no deseado despus de convertir un proyecto, verifique
que el controlador de destino admita todas las funciones y los puertos de comunicacin que
requiera su proyecto.
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
z
z
z
Verifique que el programa del controlador de destino contenga las configuraciones esperadas
y que proporcione las funciones previstas despus de convertir el proyecto.
Depure, verifique y valide por completo la funcionalidad del programa convertido antes de
ponerlo en servicio.
Antes de convertir un programa, verifique que el programa de origen sea vlido, es decir, que
pueda descargarse en el controlador de origen.
88
EIO0000000071 04/2014
Gestin de dispositivos
Accin
Especifique la ruta de acceso al archivo del proyecto de SoMachine Basic o Twido en el cuadro Archivo
de proyecto, o haga clic en el botn ... para buscar el archivo.
EIO0000000071 04/2014
89
Gestin de dispositivos
Paso
Accin
Consulte la categora Conversin de proyecto de la vista Mensajes y verifique los errores y alertas
detectados y enumerados.
Biblioteca de TwidoEmulationSupport
La biblioteca (vase Biblioteca Twido Emulation Support, Gua de la biblioteca) de TwidoEmulationSupport contiene funciones y bloques de funciones que proporcionan funcionalidad de
SoMachine Basic y TwidoSoft/TwidoSuite en una aplicacin de SoMachine. La biblioteca de
TwidoEmulationSupport se integra automticamente en el proyecto de SoMachine con el
controlador convertido.
Conversin del programa de aplicacin
El programa de aplicacin de origen se convierte en un programa de controlador nico
denominado Principal en el proyecto de SoMachine. Por cada POU de SoMachine Basic libre o
subrutina de Twido, se crea un programa aparte en SoMachine (subprograma). El lenguaje de
programacin que se utiliza para el programa Principal y los subprogramas se determina de
acuerdo con el lenguaje de implementacin seleccionado en el cuadro de dilogo Convertir
proyecto de SoMachine Basic/Convertir proyecto de Twido.
Por cada objeto de lenguaje (como objetos de memoria o bloques de funciones) que utilice el
programa de aplicacin, se crear una variable global. Se crearn listas de variables globales
(vase pgina 219) distintas para cada categora de objeto (una para bits de memoria, otra para
palabras de memoria, etc.).
Se aplican las restricciones siguientes para la conversin de programas de aplicacin en relacin
con la estructura del programa:
z En SoMachine, no es posible saltar a una etiqueta (vase pgina 319) de otro programa, como
z del programa Principal a un subprograma, o
z de un subprograma a otro subprograma o al programa Principal.
90
EIO0000000071 04/2014
Gestin de dispositivos
z
z
rea de constantes
En SoMachine, slo existe el rea de palabras de memoria para los objetos de memoria:
rea
EIO0000000071 04/2014
91
Gestin de dispositivos
El grfico proporciona una descripcin general de las diferentes disposiciones de las direcciones
%MD y %MF en SoMachine Basic/Twido y SoMachine.
1
2
92
Informacin adicional
%MW
Se asignan a la misma direccin %MW. Por cada objeto %MW, se crea una
variable global de tipo INT.
Ejemplo
%MW2 se asigna a %MW2.
%M
%KW
EIO0000000071 04/2014
Gestin de dispositivos
La relacin entre objetos %KW, %KD y %KF es la misma que para objetos %MW, %MD y %MF. Por
ejemplo, %KD4/%KF4 se asignan a la misma ubicacin que %KW4. Las direcciones %KD/%KF
impares no pueden asignarse.
Acceso remoto
Un dispositivo remoto puede acceder a los objetos de memoria (%MW, %MD, %MF y %M) mediante
servicios Modbus:
z Si un dispositivo remoto accede a objetos %MW, %MD o %MF en la aplicacin de origen, este
acceso seguir estando disponible en la aplicacin SoMachine.
z Si un dispositivo remoto accede a objetos %M en la aplicacin de origen, este acceso ya no
estar disponible en la aplicacin SoMachine.
Conversin de bloques de funciones
Para bloques de funciones en SoMachine Basic/Twido, la biblioteca de TwidoEmulationSupport
proporciona bloques de funciones con funciones compatibles:
Bloque de funciones de SoMachine Basic/Twido Bloque de funciones de la biblioteca de
TwidoEmulationSupport
temporizadores %TM
FB_Timer
contadores %C
FB_Counter
registro %R
FB_FiFo/FB_LiFo
tambor %DR
FB_Drum
FB_ShiftBitRegister
FB_StepCounter
programa %SCH
FB_ScheduleBlock
PID
FB_PID
intercambio/mensaje %MSG
FB_EXCH
EIO0000000071 04/2014
93
Gestin de dispositivos
Informacin adicional
%S0
%S1
%S4
%S5
%S6
%S7
%S13
%S18
94
%SW63...65
%SW114
EIO0000000071 04/2014
Gestin de dispositivos
La conversin no admite otras variables del sistema. Si el programa de aplicacin de origen utiliza
una variable del sistema no admitida, se genera un mensaje en la categora Conversin de
proyecto de la vista (vase SoMachine, Comandos de men, Ayuda en lnea) Mensajes.
Conversin de tablas de animacin
La gestin de tablas de animacin difiere en las aplicaciones de origen y de destino:
z SoMachine Basic/Twido le permiten definir varias listas de animacin identificadas por el
nombre. Cada lista de animacin puede contener varias entradas para objetos que deban
animarse.
z En SoMachine hay 4 listas de supervisin (vase pgina 464) predefinidas
(Supervisar 1...Supervisar 4). Cada lista de supervisin puede contener varias variables que
deben animarse. Una lista de supervisin puede contener variables de diferentes
controladores.
Durante el proceso de conversin, las entradas de las tablas de animacin de origen se aaden
al final de la lista de supervisin Supervisar 1.
Conversin de smbolos
Los smbolos definidos en un proyecto de SoMachine Basic/Twido se transfieren automticamente al proyecto de SoMachine.
Se aplican las siguientes restricciones a la denominacin de smbolos:
Si...
Entonces...
un smbolo no se utiliza en ningn lugar del programa puede descartarse el nombre del smbolo.
de aplicacin,
Para ver la lista completa de modificaciones de smbolos que han sido necesarias, consulte la
vista Mensajes.
EIO0000000071 04/2014
95
Gestin de dispositivos
Conversin de contadores rpidos, contadores de alta velocidad (Twido: contadores muy rpidos)
y generadores de pulsos
Los bloques de funciones que proporciona SoMachine difieren respecto a los bloques de
funciones que proporciona SoMachine Basic/Twido. Sin embargo, la configuracin de los
contadores rpidos, contadores de alta velocidad y generadores de pulsos se convierte en la
medida de lo posible. Por cada bloque de funciones %FC, %HSC/%VFC, %PLS y %PWM que se utiliza
en la aplicacin SoMachine Basic/Twido, se crea un programa en SoMachine. Puede mejorar esta
implementacin bsica de acuerdo con las necesidades de su aplicacin.
Se aplican las siguientes restricciones:
Restriccin
Solucin
96
EIO0000000071 04/2014
Gestin de dispositivos
Descripcin
carpeta Grafcet
estructura de datos
GRAFCET_STATES
programa Grafcet
Las instrucciones de Grafcet del programa de aplicacin se convierten del modo siguiente:
El principio de cada paso de Grafcet se marca mediante una etiqueta con el nombre del paso.
La primera instruccin del paso de Grafcet comprueba si el paso est activo. Si no es as, salta
a la etiqueta del siguiente paso de Grafcet.
z El acceso a %Xi se convierte en un acceso a la variable STATES.Xi.
z Una instruccin de activacin #i de Grafcet se convierte en la definicin del bit de activacin
del estado i y el bit de desactivacin del estado actual.
z Una instruccin de desactivacin #Di de Grafcet se convierte en la definicin del bit de
desactivacin del estado i y el bit de desactivacin del estado actual.
z
EIO0000000071 04/2014
97
Gestin de dispositivos
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
z
z
z
Verifique que el programa del controlador de destino contenga las configuraciones esperadas
y que proporcione las funciones previstas despus de convertir el proyecto.
Depure, verifique y valide por completo la funcionalidad del programa convertido antes de
ponerlo en servicio.
Antes de convertir un programa, verifique que el programa de origen sea vlido, es decir, que
pueda descargarse en el controlador de origen.
98
EIO0000000071 04/2014
SoMachine
Cuadros de dilogo del editor de dispositivos comn
EIO0000000071 04/2014
Captulo 5
Cuadros de dilogo del editor de dispositivos comn
Apartado
Pgina
5.1
100
5.2
Asignacin de E/S
153
EIO0000000071 04/2014
99
Seccin 5.1
Configuracin del dispositivo
100
Pgina
101
Seleccin de controlador
103
Configuracin de comunicacin
120
Configuracin
125
Aplicaciones
127
Archivos
130
Registro
132
Ajustes PLC
134
Usuarios y grupos
137
Distribucin de tareas
149
Estado
151
Informacin
152
EIO0000000071 04/2014
Descripcin
Seleccin de controlador
(vase pgina 103)
Configuracin de comunicacin
(vase pgina 120)
Configuracin de:
z aplicacin asignada para el manejo de E/S
z comportamiento de E/S en estado de detencin
z opciones de ciclo de bus
EIO0000000071 04/2014
102
Ficha
Descripcin
Derechos de acceso
(vase pgina 976)
Distribucin de tareas
(vase pgina 149)
EIO0000000071 04/2014
Seleccin de controlador
Descripcin general
La vista Seleccin de controlador del editor de dispositivos proporciona acceso al servicio
Network Device Identification. Esta vista permite buscar en la red Ethernet dispositivos disponibles
(como controladores o dispositivos HMI) y visualizarlos en una lista. En esta vista, puede
configurar los parmetros para la comunicacin entre los dispositivos (denominados controladores
en este captulo) y el sistema de programacin.
La lista de controladores contiene aquellos controladores de la red que han enviado una respuesta
a la peticin de SoMachine. Puede que el controlador elegido no est incluido en esta lista. Esto
puede deberse a varios motivos. Para ver las posibles causas y las soluciones correspondientes,
consulte el captulo Acceso a controladores - Resolucin de problemas y preguntas frecuentes
(vase pgina 881).
La vista Seleccin de controlador slo se muestra si la comunicacin entre el controlador y el
sistema de programacin se establece mediante la direccin IP. Este es el ajuste predeterminado
para SoMachine V4.0 y versiones posteriores. Puede seleccionar entre un establecimiento de
comunicacin mediante una direccin IP o mediante una ruta activa en el cuadro de dilogo
Configuracin del proyecto Configuracin de comunicacin. Si se selecciona la opcin
Marque mediante "direccin IP", se muestra la vista Seleccin de controlador en el editor de
dispositivos. De lo contrario, se muestra la vista Configuracin de comunicacin.
EIO0000000071 04/2014
103
104
EIO0000000071 04/2014
Descripcin
ptica
ptica y acstica
Actualizacin
EIO0000000071 04/2014
105
Botn
Descripcin
106
EIO0000000071 04/2014
Lista de controladores
La lista de controladores de la parte central de la vista Seleccin de controlador del editor de
dispositivo muestra los controladores que han enviado una respuesta a la exploracin de la red.
Proporcionar informacin sobre cada controlador en diversascolumnas. Es posible adaptar las
columnas que aparecen en la lista de controladores segn sus requisitos personales.
Para ello, haga clic con el botn derecho del ratn en el encabezado de una columna para abrir el
cuadro de dilogo Procesar columnas.
Puede crear su propio diseo para la tabla. Haga clic en Nuevo e introduzca un nombre para el
diseo. Para cambiar columnas de la lista de Posibles columnas a la lista de Columnas
actuales y viceversa, haga clic en los botones con flechas horizontales. Para cambiar el orden de
las columnas en la lista Columnas actuales, haga clic en los botones de flecha arriba y flecha
abajo.
EIO0000000071 04/2014
107
Configuracin de comunicacin
Para establecer los parmetros de comunicacin entre el sistema de programacin y un
controlador, haga lo siguiente:
Paso
Accin
Haga clic con el botn derecho en la entrada de controlador y ejecute el comando Procesar
configuracin de la comunicacin... en el men contextual.
Resultado: Se abre el cuadro de dilogo Procesar configuracin de la comunicacin...
con los ajustes actuales del controlador.
108
EIO0000000071 04/2014
Paso
Accin
Gestione las direcciones IP con cuidado debido a que cada dispositivo de la red necesita una
direccin nica. Si existen varios dispositivos con la misma direccin IP, puede producirse un
funcionamiento impredecible en la red y el equipo asociado.
EIO0000000071 04/2014
109
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
z
z
z
z
z
Accin
Haga clic con el botn derecho del ratn sobre el controlador y seleccione uno de los
comandos:
z Nuevo favorito para crear un grupo de favoritos nuevo.
z Favorite n para
z aadir el controlador seleccionado a la lista de favoritos
z eliminar el controlador seleccionado de la lista de favoritos
z eliminar todos los controladores de la lista de favoritos
z seleccionar un favorito
z cambiar el nombre de un favorito
z eliminar un favorito
110
EIO0000000071 04/2014
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
z
z
z
z
z
Accin
Haga clic con el botn derecho en el controlador de la lista y ejecute el comando Cambiar el
nombre del dispositivo... en el men contextual.
Resultado: Se abre el cuadro de dilogo Cambiar el nombre del dispositivo.
EIO0000000071 04/2014
111
EIO0000000071 04/2014
1
2
3
PC/HMI
enrutador NAT
dispositivo de destino
EIO0000000071 04/2014
113
1
2
3
PC/HMI
enrutador NAT
dispositivo de destino
114
EIO0000000071 04/2014
La informacin que especifique se interpreta como un URL que crea un puente TCP remoto
(utilizando un controlador de bloque TCP) y a continuacin se conecta buscando un controlador
con el Nodename especificado en la puerta de enlace local. La direccin IP se busca en el
Nodename (como MyController (10.128.154.207)) o llamando a un servicio en cada
dispositivo explorado de la puerta de enlace.
NOTA: El enrutador NAT puede estar ubicado en el propio controlador de destino. Puede utilizarlo
para crear un puente TCP a un controlador.
Modalidad de conexin Nodename a travs de pasarela
Si selecciona la opcin Nodename a travs de pasarela en la lista Modalidad de conexin,
puede especificar la direccin de un controlador que reside despus o cerca de un enrutador de
puerta de enlace SoMachine en la red. Especifique el Nodename del controlador, as como la
direccin IP o nombre de host y puerto del enrutador de puerta de enlace SoMachine.
1
2
3
PC/HMI
PC/HMI/dispositivos con puerta de enlace SoMachine instalada
dispositivo de destino
EIO0000000071 04/2014
115
En el grfico se muestra un ejemplo que permite una conexin desde la PCI/HMI al controlador 3
de destino (elemento 4 del grfico) mediante la direccin de salto PC2 (elemento 5 del grfico),
que debe tener una puerta de enlace SoMachine instalada.
1
2
3
4
5
6
7
8
116
PC 1 de salto
controlador de destino 1: MyNotUniqueNodename
controlador de destino 2: MyNotUniqueNodename
controlador de destino 3: MyNotUniqueNodename
PC 2 de salto
PC/HMI
enrutador
Ethernet
EIO0000000071 04/2014
1
2
3
PC/HMI
PC/HMI/dispositivos con puerta de enlace SoMachine instalada
dispositivo de destino
EIO0000000071 04/2014
117
En el grfico se muestra un ejemplo que permite la conexin desde el PC2 de salto (elemento 5
del grfico), que debe tener una puerta de enlace SoMachine instalada en el controlador 3 de
destino (elemento 4 del grfico).
1
2
3
4
5
6
7
8
118
PC 1 de salto
controlador de destino 1: 10.128.156.20
controlador de destino 2: 10.128.156.20
controlador de destino 3: 10.128.156.20
PC 2 de salto
PC/HMI
enrutador
Ethernet
EIO0000000071 04/2014
1
2
3
4
5
PC/HMI
PC/HMI/MODEM
mdem de destino
dispositivo de destino
lnea telefnica
Para establecer una conexin con el mdem, haga clic en el botn MODEM Conectar. En el
cuadro de dilogo Modem Configuration, especifique el nmero de telfono (Nmero de
telfono) del mdem de destino y configure los ajustes de comunicacin. Haga clic en Aceptar
para confirmar y establecer una conexin con el mdem.
Si se detiene la puerta de enlace SoMachine y se vuelve a iniciar, finalizarn las conexiones de la
puerta de enlace local. SoMachine muestra un mensaje que requiere confirmacin antes de que
empiece el proceso de reinicio.
Una vez establecida correctamente la conexin con el mdem, el botn MODEM cambia de
Conectar a Desconectar. La lista de controladores se borra y se actualiza explorando la conexin
de mdem para buscar los controladores conectados. Puede hacer doble clic en un elemento de
la lista de controladores o especificar un Nodename en el cuadro de texto Nodename de destino:
para conectar a un controlador especfico.
Haga clic en el botn MODEM Desconectar para finalizar la conexin de mdem y detener y
reiniciar la puerta de enlace SoMachine. La lista de controladores se borra y se actualiza
explorando la red Ethernet.
EIO0000000071 04/2014
119
Configuracin de comunicacin
Descripcin general
La vista Configuracin de comunicacin del editor de dispositivos se utiliza para configurar los
parmetros para la comunicacin entre el dispositivo y el sistema de programacin.
Slo es visible si la comunicacin entre el dispositivo y el sistema de programacin se establece
mediante la ruta activa. Este es el ajuste predeterminado para SoMachine V3.1 y versiones
anteriores. Puede seleccionar entre un establecimiento de comunicacin mediante una ruta activa
y una direccin IP en el cuadro de dilogo Configuracin del proyecto Configuracin de
comunicacin. Si la opcin Marque mediante "direccin IP" est seleccionada, la vista
Seleccin de controlador se muestra en el editor de dispositivos en lugar de en la vista
Configuracin de comunicacin. Este es el ajuste predeterminado para SoMachine V4.0 y
versiones posteriores.
Vista Configuracin de comunicacin del editor de dispositivos
120
EIO0000000071 04/2014
Los nodos de dispositivo constan de un smbolo seguido de un nombre de nodo y la direccin del
nodo. En la parte derecha de la ventana, se muestran las opciones respectivas: ID del sistema
de destino, Nombre del sistema de destino, Tipo de sistema destino, Fabricante del sistema
de destino y Versin del sistema de destino.
En el campo Seleccionar la ruta de red para el control, se especifica automticamente el canal
de puerta de enlace seleccionando el canal en la estructura del rbol.
EIO0000000071 04/2014
121
Filtro: le permite reducir las entradas de la estructura de rbol a aquellos dispositivos con un
ID de destino que coincida con el del dispositivo configurado en el proyecto.
Orden de clasificacin: le permite ordenar las entradas de la estructura de rbol segn los
campos Nombre o Direccin de nodo en orden alfabtico o ascendente.
122
Botn/comando
Descripcin
Agregar dispositivo...
Eliminar el dispositivo
seleccionado
EIO0000000071 04/2014
Botn/comando
Descripcin
Examinar red
EIO0000000071 04/2014
123
124
Opcin
Descripcin
EIO0000000071 04/2014
Configuracin
Descripcin general
La vista Configuracin slo est disponible en el editor de dispositivos si la opcin Mostrar los
editores genricos de configuracin del cuadro de dilogo Herramientas Opciones
Editor de dispositivos est activada. La vista Configuracin muestra los parmetros
especficos del dispositivo y, si lo permite la descripcin del dispositivo, ofrece la posibilidad de
editar los valores de los parmetros.
Vista Configuracin del editor de dispositivos
EIO0000000071 04/2014
125
126
Elemento
Descripcin
Parmetro
Tipo
Valor
Valor predeterminado
Unidad
Descripcin
EIO0000000071 04/2014
Aplicaciones
Descripcin general
La vista Aplicaciones del editor de dispositivos sirve para explorar y eliminar aplicaciones en el
controlador. Puede haber disponible informacin sobre el contenido de la aplicacin as como
algunos detalles de las propiedades de la aplicacin.
Vista Aplicaciones del editor de dispositivos
EIO0000000071 04/2014
127
128
Elemento
Descripcin
Aplicaciones en el PLC
Eliminar
Eliminar todo
Detalles
Haga clic en este botn para abrir un cuadro de dilogo que muestra
la informacin que se ha definido en la ficha Informacin del cuadro
de dilogo Propiedades del objeto de aplicacin.
Contenido
Actualizar lista
EIO0000000071 04/2014
EIO0000000071 04/2014
129
Archivos
Descripcin general
La vista Archivos del editor de dispositivos sirve para transferir archivos entre el host y el
controlador. Esto significa que puede elegir cualquier archivo de un directorio de la red local para
copiarlo en el directorio de archivos del sistema de tiempo de ejecucin que est conectado en
ese momento o viceversa.
Vista Archivos del editor de dispositivos
130
EIO0000000071 04/2014
Descripcin
Actualiza la lista Tiempo de ejecucin.
Crea una nueva carpeta en la que puede copiar los archivos.
Elimina los archivos o carpetas seleccionados de la lista.
Ubicacin
<< >>
EIO0000000071 04/2014
131
Registro
Descripcin general
La vista Registro del editor de dispositivos sirve para mostrar los eventos que se han registrado
en el sistema de tiempo de ejecucin del controlador.
Incluye:
z eventos al arrancar o apagar el sistema (componentes cargados y sus versiones)
z descarga de aplicacin y descarga de proyecto de arranque
z entradas especficas del cliente
z entradas de registro de controladores de E/S
z entradas de registro del servidor de datos
Vista Registro del editor de dispositivos
132
EIO0000000071 04/2014
Descripcin
Ponderacin
Marca de hora
fecha y hora
por ejemplo, 12.01.2007 09:48
Descripcin
Componente
Aqu puede seleccionar un componente concreto para que se muestren slo las
entradas de registro relacionadas con ese componente. La configuracin
predeterminada es <Todos los componentes>.
Registro
Tiempo UTC
Active esta opcin para ver la marca de hora del sistema de tiempo de ejecucin.
Si se desactiva, se muestra la marca de la hora local del ordenador (segn la
zona horaria del sistema operativo).
EIO0000000071 04/2014
133
Ajustes PLC
Descripcin general
La vista Ajustes PLC del editor de dispositivos sirve para configurar ciertos valores generales del
controlador.
Vista Ajustes PLC del editor de dispositivos
134
EIO0000000071 04/2014
Descripcin
NOTA: Establecer la tarea de ciclo de bus como <Sin especificar> puede provocar un comportamiento imprevisto de la aplicacin. Consulte la gua de programacin especfica de su controlador.
EIO0000000071 04/2014
135
ATENCIN
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Si no est seguro de los ajustes de tareas de ciclo de bus, no establezca Tarea de ciclo de bus
en <<Sin especificar>, sino que seleccione una tarea dedicada de la lista.
El incumplimiento de estas instrucciones puede causar lesiones o dao al equipo.
Configuracin adicional
El valor Variables de forzado para la asignacin E/S: slo est disponible si lo admite el
dispositivo. Si la opcin est activada, por cada canal de E/S que se asigne a una variable en el
cuadro de dilogo Asignacin de E/S, se crearn 2 variables globales en cuanto se genere la
aplicacin. Estas variables pueden utilizarse en una visualizacin de HMI para forzar el valor de
E/S. Para obtener ms informacin, consulte el captulo Asignacin de E/S (vase pgina 153).
136
EIO0000000071 04/2014
Usuarios y grupos
Descripcin general
La administracin de usuarios y grupos de derechos de acceso difiere segn el controlador que
utilice. Para la mayora de los dispositivos que admiten la administracin de usuarios online (como
los controladores M258, M241, M251 y LMC8), la vista Usuarios y grupos descrita en este
captulo sirve para gestionar cuentas de usuario y grupos de acceso de usuarios, as como sus
derechos de acceso asociados. Esto le permite controlar el acceso en proyectos y dispositivos de
SoMachine en modalidad online.
Para administrar los derechos de usuario, debe iniciar sesin como usuario Administrator.
ATENCIN
SIN AUTENTICACIN, ACCESO NO AUTORIZADO
z
z
z
z
z
EIO0000000071 04/2014
137
Si desea que determinadas funciones de un controlador slo las puedan ejecutar usuarios
autorizados, la vista Usuarios y grupos le permite definir usuarios, asignar derechos de acceso
y requerir autenticacin de usuario al iniciar sesin.
Para realizar estas acciones, puede crear usuarios y configurar sus derechos de acceso a datos,
herramientas de ingeniera y archivos utilizando los botones del rea Acciones del usuario.
Puede crear grupos de derechos de acceso de usuarios y configurar cada permiso
individualmente utilizando los botones del rea Acciones de grupos.
Vista Usuarios y grupos
La vista Usuarios y grupos le permite gestionar el acceso de usuarios a proyectos y dispositivos.
Los usuarios y los derechos correspondientes son vlidos para todos los dispositivos de un
proyecto.
Vista Usuarios y grupos del editor de dispositivos:
138
EIO0000000071 04/2014
Descripcin
Puede
eliminarse
Puede
cambiarse el
nombre
Pueden
Contrasea
cambiarse los predetermipermisos
nada (puede
cambiarse)
Administrator
El usuario Administrator
no tiene restricciones de
acceso; se utiliza para
configurar derechos de
usuario.
No
No
No
Administrator
Debe
cambiarse con
el primer inicio
de sesin.
Everyone
El usuario Everyone se
utiliza cuando no ha
iniciado sesin.
Si suprime permisos, debe
iniciar sesin con un
usuario que tenga
permisos.
No
No
No se asigna
contrasea.
USER
No
USER
HMI
No
HMI
Developer
Al usuario Developer se le S
otorgan permisos
adecuados para disear un
proyecto.
Developer
EIO0000000071 04/2014
139
Los derechos de acceso de usuarios estn contenidos en grupos y se clasifican en tres reas, o
tipos de acceso, bajo Proteccin de acceso:
z Acceso a datos: incluye el acceso a aplicaciones que intentan leer/escribir datos del
dispositivo, como HMI u OPC.
z Herramientas de ingeniera: incluye acceso a herramientas de programacin, como
SoMachine y Controller Assistant.
z Acceso a archivo: incluye el acceso al sistema de archivos interno o externo, como soportes
externos, protocolo SoMachine, FTP o web.
Si hace clic en el cuadro desplegable de un usuario definido en alguna de las columnas de tipo de
acceso, se presentar una lista de los grupos de derechos de acceso de usuarios que puede elegir
para un determinado usuario y tipo de acceso. Para obtener ms informacin sobre grupos de
derechos de acceso, consulte Administracin de grupos de derechos de acceso
(vase pgina 144).
rea Acciones de usuario
Los botones slo estn disponibles si la opcin Habilitar administracin de usuarios est
activada.
Al hacer clic en un botn se abre un cuadro de dilogo que le solicita que inicie sesin como
usuario Administrador, porque es el nico usuario que tiene derechos para la administracin de
usuarios.
Los botones de Acciones del usuario se utilizan para realizar funciones de administracin
estndar en los usuarios:
140
Botn
Descripcin
Agregar usuario...
Borrar usuario...
Haga clic en este botn para eliminar el usuario de la lista del rea
Proteccin de acceso.
Editar usuario...
Haga clic en este botn para modificar el usuario seleccionado en la lista del
rea Proteccin de acceso. Se abre el cuadro de dilogo Editar usuario.
Corresponde al cuadro de dilogo Agregar usuario (vase arriba), que
contiene la configuracin del usuario definido actualmente.
Para que el usuario est disponible para su uso, active la opcin Activado.
EIO0000000071 04/2014
Cambie las contraseas predeterminadas para todos los usuarios predeterminados (USER, HMI,
Developer). Adems, analice detenidamente las implicaciones de otorgar derechos de acceso al
usuario predeterminado Everyone. Por una parte, otorgar derechos de acceso al usuario
Everyone le permitir ejecutar scripts desde el puerto USB o SD (en funcin de la referencia de
su controlador), que, a su vez, conceder a cualquier persona los derechos de acceso que otorgue
sin tener que iniciar sesin antes.
ADVERTENCIA
ACCESO NO AUTORIZADO A DATOS
z
z
z
EIO0000000071 04/2014
141
Descripcin
Agregar grupo
Haga clic en este botn para crear un nuevo grupo. Se abre el cuadro de
dilogo Grupos personalizados.
Editar grupo
Eliminar grupo...
Haga clic en este botn para eliminar el grupo seleccionado en la lista del
rea Proteccin de acceso.
Nota: Algunos grupos predeterminados no pueden eliminarse
(vase pgina 137).
Descripcin
Acceso a datos
Ninguno
Acceso denegado.
Lectura
dispositivo.
z Lectura de datos no protegidos.
Lectura-Escritura
dispositivo.
z Lectura/escritura de datos no
protegidos.
142
EIO0000000071 04/2014
Descripcin
Herramientas de ingeniera
Ninguno
Supervisar
z Inicio de sesin
z Cargar origen
z Variables de slo lectura
Operate
z Inicio de sesin
z Cargar origen
z Forzar/escribir variables
Programa
Administrate
Ninguno
Acceso denegado.
Lectura
Lectura-Escritura
Leer/escribir archivos no
protegidos.
Lectura/Escritura/Eliminacin
Leer/escribir/eliminar archivos no
protegidos.
Acceso a archivo
EIO0000000071 04/2014
143
Parmetro
Descripcin
Nombre
Tipo de acceso
144
EIO0000000071 04/2014
Parmetro
Descripcin
Restablecer en
La tabla lista las acciones y los permisos disponibles que puede asignar para el tipo de acceso
Acceso a datos:
Acciones disponibles
Permisos
Servidor OPC
Permite al usuario conectarse a un dispositivo en el
servidor OPC utilizando parmetros de inicio de
sesin/contrasea.
z Prohibir
z Lectura
z Lectura/Escritura
HMI
Permite al usuario acceder a Vijeo-Designer
utilizando los parmetros de inicio de
sesin/contrasea.
z Prohibir
z Lectura
z Lectura/Escritura
Servidor web
z Prohibir
Permite al usuario acceder al servidor web utilizando
El usuario no puede acceder al servidor web.
los parmetros de inicio de sesin/contrasea.
z Lectura
El usuario puede acceder al servidor web y leer
variables.
z Lectura/Escritura
El usuario puede acceder al servidor web y leer y
escribir variables.
EIO0000000071 04/2014
145
La tabla enumera las acciones y los permisos disponibles que puede asignar para el tipo de
acceso Herramientas de ingeniera:
Acciones disponibles
Permisos
Inicio de sesin
Permite al usuario conectarse al dispositivo y
acceder a la aplicacin.
Este permiso es un requisito previo para poder
otorgar cualquier otro permiso online.
z Predeterminado
z Prohibir
z Permitir
Restablecer
z Predeterminado
z Predeterminado
z Predeterminado
Variables
z Predeterminado
z Predeterminado
146
EIO0000000071 04/2014
Acciones disponibles
Permisos
z Predeterminado
Ajustes PLC
Permite al usuario acceder a la vista Ajustes PLC
del editor de dispositivos.
z Predeterminado
Descargar
Permite al usuario descargar todas las aplicaciones
o la aplicacin activa actualmente en el dispositivo.
z Predeterminado
Cambio en lnea
Permite al usuario ejecutar el comando Cambio en
lnea.
z Predeterminado
Descarga de imgenes
Permite al usuario descargar imgenes.
z Predeterminado
Cargar origen
Permite al usuario ejecutar el comando Carga de
cdigo de origen.
z Predeterminado
Carga de imgenes
Permite al usuario cargar imgenes.
z Predeterminado
Actualizar dispositivo
Permite al usuario ejecutar el comando Actualizar
dispositivo.
z Predeterminado
z Prohibir
z Cambiar
z Predeterminado
Administracin de dispositivos
Permite al usuario agregar, editar, eliminar,
actualizar y renovar un dispositivo.
z Predeterminado
Crear objetos
Permite al usuario crear objetos en un proyecto.
z Predeterminado
EIO0000000071 04/2014
147
Acciones disponibles
Permisos
Herramientas de desarrollo
Permite al usuario modificar aplicaciones, POU y
dispositivos.
z Predeterminado
Herramientas de visualizacin
Permite al usuario aadir y editar una visualizacin
web y crear visualizaciones en el proyecto actual.
z Predeterminado
Administracin de bibliotecas
Permite al usuario realizar la administracin de
bibliotecas, excepto acceder a la lista de bibliotecas
de un proyecto y mostrar sus propiedades.
z Predeterminado
Frmula
Permite al usuario crear, editar, enviar, cargar y
reproducir una frmula y cargar datos del programa
actual en una frmula.
z Predeterminado
Herramientas de depuracin
Permite al usuario ejecutar comandos de
depuracin, incluidos los puntos de interrupcin.
z Predeterminado
Herramientas SoftMotion
Permite al usuario ejecutar comandos CAM y CNC.
z Predeterminado
Administracin de DTM
Permite al usuario ejecutar comandos de la
herramienta de dispositivo de campo (FDT).
z Predeterminado
La tabla indica las acciones y los permisos disponibles que puede asignar para el tipo de
acceso Acceso a archivo:
148
Acciones disponibles
Permisos
Sistema de archivos
FTP
Removable media
Permite al usuario acceder al archivo mediante FTP,
SoMachine o web.
z
z
z
z
Prohibir
Lectura
Lectura/Escritura
Lectura/Escritura/Eliminacin
EIO0000000071 04/2014
Distribucin de tareas
Descripcin general
En la vista Distribucin de tareas del editor de dispositivos se muestra una tabla con entradas y
salidas y su asignacin a las tareas definidas. Para que la informacin se pueda mostrar, el
proyecto tiene que estar compilado y el cdigo tiene que estar generado. Esta informacin resulta
de utilidad en la resolucin de problemas en el caso de que la misma entrada/salida se actualice
en tareas diferentes con prioridades distintas.
Distribucin de tareas del editor de dispositivos
En la tabla se muestran las tareas ordenadas por prioridad. Haga clic en los encabezados de
columna (nombre de tarea) para mostrar solamente las variables asignadas a esta tarea. Para
mostrar todas las variables de nuevo, haga clic en la primera columna (Canales E/S).
Para abrir la tabla de asignaciones de E/S de un canal, haga doble clic en la entrada o salida.
Una flecha azul indica la tarea del ciclo de bus.
En el ejemplo anterior, la variable usiBK5120Out AT %QB0 se utiliza en 2 tareas diferentes. En
ese caso, la salida, establecida por una sola tarea, la puede sobrescribir la otra tarea; esto puede
provocar que haya un valor no definido. En general, no es recomendable escribir referencias de
salida en ms de una tarea, ya que provoca que el programa sea difcil de depurar y, con
frecuencia, produce resultados imprevistos en el funcionamiento de la mquina o del proceso.
EIO0000000071 04/2014
149
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
No escriba en una variable de salida en ms de una tarea.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao
al equipo.
150
EIO0000000071 04/2014
Estado
Descripcin general
La vista Estado del editor de dispositivos muestra la informacin de estado (por ejemplo, En
ejecucin, Stopped) y mensajes especficos de diagnstico del dispositivo correspondiente, as
como de la tarjeta usada y del sistema de bus interno.
EIO0000000071 04/2014
151
Informacin
Descripcin general
La vista Informacin del editor de dispositivos muestra informacin general del dispositivo
seleccionado en el rbol Dispositivos: Nombre, Fabricante, Tipo, Nmero de versin, Nmero
de modelo, Descripcin, Imagen.
152
EIO0000000071 04/2014
Seccin 5.2
Asignacin de E/S
Asignacin de E/S
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
Pgina
Asignacin de E/S
154
157
162
163
EIO0000000071 04/2014
153
Asignacin de E/S
Descripcin general
La vista Asignacin de E/S del editor de dispositivos se llama Asignacin de E/S de <tipo de
dispositivo> (por ejemplo, Asignacin de E/S de PROFIBUS DP). Sirve para configurar una
asignacin de E/S del controlador. Esto significa que las variables de proyecto utilizadas por la
aplicacin se asignan a las direcciones de entrada, salida y memoria del controlador.
Defina la aplicacin que debe gestionar las E/S en la vista (vase pgina 134) Ajustes PLC.
NOTA: Si el dispositivo lo admite, puede utilizar la modalidad de configuracin online para acceder
a las E/S del hardware sin tener que cargar primero una aplicacin. Para obtener ms informacin,
consulte la descripcin del Modo de configuracin en lnea (vase SoMachine, Comandos de
men, Ayuda en lnea).
Consulte los siguientes captulos:
Trabajo con el cuadro de dilogo Asignacin de E/S (vase pgina 157)
z Asignacin de E/S en modalidad online (vase pgina 162)
z Variables implcitas para forzar E/S (vase pgina 163)
z
z
z
154
EIO0000000071 04/2014
Descripcin
Crear variable en asignacin de E/S Seleccione o deseleccione esta opcin para activar o
desactivar la funcin de asignacin automtica de E/S.
rea Asignacin
A nivel de bit
EIO0000000071 04/2014
155
Elemento
Descripcin
A nivel de mdulo
156
EIO0000000071 04/2014
EIO0000000071 04/2014
157
Descripcin
Canal
Direccin
Tipo
Unidad
Descripcin
Valor actual
Si desea eliminar la fijacin del valor, vuelva a abrir el campo de edicin de la direccin, elimine la
entrada de direccin y cierre con INTRO. La direccin y las direcciones sucesivas identificadas se
establecern de nuevo a los valores que tenan antes de la modificacin manual. El smbolo M se
eliminar.
158
EIO0000000071 04/2014
para la entrada y
para la salida. En esta lnea, escriba el nombre o la ruta de la variable a la que se debe
asignar el canal. Puede asignar una variable de proyecto existente o definir una nueva variable,
que luego ser automticamente declarada como una variable global.
Cuando se asignan variables estructuradas, el editor evitar la introduccin de la variable de
estructura (por ejemplo, en %QB0) conjuntamente con la introduccin de los elementos de
estructura especficos, en este caso en %QB0.1 y QB0.2 ).
Esto significa: cuando hay una entrada principal con un subrbol de entradas de canales de bits
en la tabla de asignacin (como se muestra en la figura siguiente), entonces se puede introducir
una variable en la lnea de la entrada principal, o en las de los subelementos (canales de bits),
pero nunca en ambas.
Para la asignacin en una variable existente, especifique la ruta completa. Por ejemplo:
<nombre de aplicacin>.<ruta de POU>.<nombre de variable>;
Ejemplo: app1.plc_prg.ivar
Para este propsito, puede ser til abrir el asistente Accesibilidad por medio del botn ... En la
columna Asignacin, se mostrar el smbolo
y el valor de la direccin aparecer tachado.
Esto no significa que esta direccin de memoria ya no exista ms. Sin embargo, no se utiliza
directamente porque el valor de la variable existente se gestiona en otra ubicacin de la
memoria y, especialmente en el caso de salidas, ninguna otra variable existente se debe
guardar en esta direccin (%Qxx en la asignacin de E/S) con el fin de evitar ambigedades
durante la escritura de los valores.
EIO0000000071 04/2014
159
NOTA: Alternativamente, una direccin tambin se puede leer o escribir dentro de un cdigo
de programa, como en ST (texto estructurado).
z
NOTA: Si una UNIN est representada por canales de E/S en el cuadro de dilogo de
asignacin, depende del dispositivo el que el elemento raz sea asignable o no.
Si una variable declarada de un tipo de datos determinado es mayor que aquella a la que se est
asignando, el valor de la variable que se est asignando se truncar al tamao de la variable de
destino asignada.
Por ejemplo, si la variable se declara como un tipo de datos WORD y se asigna a un BYTE, slo
8 bits de la palabra se asignarn al byte.
Esto implica que, para la supervisin del valor en el cuadro de dilogo de asignacin, el valor que
se muestra en el elemento raz de la direccin ser el valor de la variable declarada, ya que es
actualmente vlida en el proyecto. En los subelementos debajo de la raz, se supervisarn los
valores de los elementos especficos de la variable asignada. Sin embargo, slo una parte del
valor declarado puede aparecer entre los subelementos.
Existe otra implicacin cuando se asigna una variable declarada a las salidas fsicas. Igual que en
el caso anterior, si asigna un tipo de datos mayor que el tipo de datos de salida, el tipo de datos
de salida puede recibir un valor truncado tal que pueda afectar a su aplicacin en formas
imprevistas.
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Compruebe que el tipo de datos declarado que se est asignando a la E/S fsica es compatible
con el funcionamiento previsto de su mquina.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao
al equipo.
160
Elemento
Descripcin
Restablecer asignacin
EIO0000000071 04/2014
Objetos IEC
Esta parte de la ficha slo est disponible si se ha creado implcitamente una instancia del objeto
de dispositivo, a la que se puede acceder mediante la aplicacin (por ejemplo, con el fin de
reiniciar un bus o para consultar informacin). La disponibilidad y utilizacin de una instancia de
este tipo depende del controlador y se describe en su gua de programacin.
Opciones de ciclo de bus
Esta opcin de configuracin estar disponible para dispositivos con llamadas cclicas antes y
despus de la lectura de las entradas o salidas. Esto le permite establecer una tarea de ciclo de
bus (vase pgina 134) especfica del dispositivo.
De forma predeterminada, ser vlida la configuracin del ciclo de bus de orden superior
(Emplear configuracin de ciclo del bus de orden superior). Esto significa que se buscar en
el rbol Dispositivos la prxima definicin vlida de la tarea de ciclo de bus.
Para asignar una tarea especfica de ciclo de bus, seleccione la que desee en la lista de seleccin.
En la lista se detallan las tareas definidas actualmente en la configuracin de la tarea de la
aplicacin.
EIO0000000071 04/2014
161
162
EIO0000000071 04/2014
EIO0000000071 04/2014
163
Restricciones
z
z
z
z
164
Slo los canales asignados en una variable en la ficha Asignacin E/S (es decir, debe definirse
una variable en la columna Variable independientemente de si es nueva o existente) pueden
forzarse mediante las variables implcitas descritas anteriormente.
Las entradas/salidas sin usar, as como aquellas asignadas mediante una declaracin AT en
un programa de aplicacin, no pueden forzarse.
Los canales de E/S respectivos tienen que estar en uso por lo menos en una tarea.
Las E/S forzadas no se indican en la supervisin (vista de supervisin, cuadro de dilogo
Asignacin de E/S). El valor slo se utiliza implcitamente en el controlador de E/S para escribir
en el dispositivo.
Las entradas forzadas se visualizan correctamente mediante el smbolo rojo de forzado (F); no
as, en cambio, para entradas/salidas forzadas.
EIO0000000071 04/2014
SoMachine
Programa
EIO0000000071 04/2014
Parte III
Programa
Programa
Contenido de esta parte
Esta parte contiene los siguientes captulos:
Captulo
Pgina
Componentes de programa
167
Configuracin de tareas
245
Gestin de aplicaciones
249
EIO0000000071 04/2014
165
Programa
166
EIO0000000071 04/2014
SoMachine
Componentes de programa
EIO0000000071 04/2014
Captulo 6
Componentes de programa
Componentes de programa
Contenido de este captulo
Este captulo contiene las siguientes secciones:
Seccin
Apartado
Pgina
6.1
168
6.2
Bloque de funciones
196
6.3
Objetos de aplicacin
216
6.4
Aplicacin
244
EIO0000000071 04/2014
167
Componentes de programa
Seccin 6.1
Unidad de organizacin de programa (POU)
168
Pgina
POU
169
170
Programa
174
Funcin
177
Mtodo
180
Propiedad
183
Interfaz
185
Propiedad de interfaz
189
Accin
192
194
195
EIO0000000071 04/2014
Componentes de programa
POU
Descripcin general
El trmino unidad de organizacin de programa (POU) se utiliza para todos los objetos de
programacin (programas, bloques de funciones, funciones, etc.) que se utilizan para crear una
aplicacin de controlador.
Gestin de POU
Las POU que se gestionan en el nodo Global del rbol Aplicaciones no son especficas del
dispositivo, pero se pueden instanciar para su uso en un dispositivo (aplicacin). Para ello, las
POU de programa deben invocarse mediante una tarea de la aplicacin respectiva.
Las POU que se insertan en el rbol Aplicaciones explcitamente debajo de una aplicacin slo
las pueden instanciar aplicaciones con sangra debajo de esa aplicacin (aplicacin secundaria).
Para obtener ms informacin, consulte las descripciones del rbol Dispositivos
(vase pgina 37) y del objeto (vase pgina 244) Aplicacin.
Pero POU tambin es el nombre de una subcategora determinada de esos objetos en el men
Agregar objeto. En ese caso, slo incluye programas, bloques de funciones y funciones.
Por tanto, en general, un objeto POU es una unidad de programacin. Es un objeto que se
gestiona de forma independiente del dispositivo en el nodo Global del rbol Aplicaciones o
directamente debajo de una aplicacin en el rbol Aplicaciones. Puede visualizarse y editarse en
una vista de editor. Un objeto POU puede ser un programa, una funcin o un bloque de funciones.
Se pueden configurar determinadas Propiedades (como condiciones de compilacin, etc.) para
cada objeto POU concreto.
Puede consultar una descripcin sobre cmo crear una POU en la seccin Adicin de POU a una
aplicacin (vase pgina 171). Las POU que haya creado se aaden a la vista Activos del
Catlogo de software.
Hay dos maneras de aadir una POU disponible en la vista Activos al proyecto:
z Seleccione una POU en la vista Activos y arrstrela al nodo pertinente del rbol Aplicaciones.
z Seleccione una POU en la vista Activos y arrstrela a la vista del editor de lgica
(vase pgina 277).
Adems de los objetos POU, hay objetos de dispositivo que se utilizan para ejecutar el programa
en el sistema de destino (Recurso, Aplicacin, Configuracin de tareas, etc.). Se gestionan en
el rbol Aplicaciones.
EIO0000000071 04/2014
169
Componentes de programa
170
EIO0000000071 04/2014
Componentes de programa
EIO0000000071 04/2014
171
Componentes de programa
Paso Accin
3 Seleccione el tipo de POU que desee:
z Programa
z Bloque de funciones:
a. Seleccione Extendido y haga clic en el navegador para seleccionar la funcin
de bloque que desee en Accesibilidad.
b. Haga clic en el botn Aceptar.
c. Seleccione Implementado y haga clic en el navegador para seleccionar la
interfaz que desee en Accesibilidad.
d. Haga clic en el botn Aceptar.
e. En el cuadro de lista Lenguaje de implementacin de mtodo, seleccione
el lenguaje de programacin que desee para editar el bloque de funciones.
z Funcin:
a. Haga clic en el botn del navegador para seleccionar el tipo de retorno que
desee en Accesibilidad.
b. Haga clic en el botn Aceptar.
4 En el cuadro de lista Lenguaje de implementacin, seleccione el lenguaje de
programacin que desee para editar el programa.
5 Haga clic en el botn Abrir.
Las POU que ya estn definidas se muestran en la seccin Catlogo de software Activos
POU. Puede aadirlas a su aplicacin arrastrndolas a Aplicaciones y soltndolas en un nodo
Aplicacin. Tambin puede soltar una POU en la vista del editor de lgica.
Asignacin de POU a una tarea
Como mnimo se debe asignar 1 POU a una tarea. Para aadir una POU a una tarea, haga lo
siguiente:
Paso Accin
1 En el nodo Configuracin de tareas del controlador, haga doble clic en la tarea a la
que desee aadir la POU. En la ficha Configuracin, haga clic en Agregar llamada.
Como alternativa, en Aplicaciones , seleccione el nodo de una tarea en la que
desee declarar la POU y haga clic en el signo ms de color verde. Ejecute el
comando POU... de la lista. Haga clic en el botn ....
Resultado: Aparecer el cuadro de dilogo Accesibilidad.
2 En la ficha Categoras del cuadro de dilogo Accesibilidad, seleccione
Programas (proyecto).
3 Haga clic para desactivar la casilla Vista estructurada.
4 En el panel Elementos, seleccione la POU que desee.
5 Haga clic en el botn Aceptar.
172
EIO0000000071 04/2014
Componentes de programa
aplicacin actual
2.
3.
4.
Si una POU con el nombre especificado en la llamada est disponible en una biblioteca del
Administrador de bibliotecas de la aplicacin y tambin en un objeto del nodo Global de
Aplicaciones, no hay ninguna sintaxis para llamar explcitamente a la POU en el nodo Global de
Aplicaciones utilizando nicamente su nombre. En este caso, mueva la biblioteca correspondiente del Administrador de bibliotecas de la aplicacin al Administrador de bibliotecas del
nodo Global de Aplicaciones. Luego, puede llamar a la POU del nodo Global de Aplicaciones
slo por su nombre (y, si es necesario, a la de la biblioteca aadindole delante el espacio de
nombres de la biblioteca).
Consulte tambin el captulo POU para comprobaciones implcitas (vase pgina 195).
EIO0000000071 04/2014
173
Componentes de programa
Programa
Descripcin general
Un programa es una POU que devuelve varios valores durante la operacin. Se conservan todos
los valores desde la ltima vez en que se ejecut el programa hasta la siguiente.
Adicin de un programa
Para asignar un programa a una aplicacin existente, seleccione el nodo de la aplicacin en el
rbol Aplicaciones, haga clic en el signo ms de color verde y ejecute el comando POU... Como
alternativa, haga clic con el botn derecho del ratn en el nodo Aplicacin y ejecute el comando
Agregar objeto POU en el men contextual. Para aadir una POU independiente de la
aplicacin, seleccione el nodo Global del rbol Aplicaciones y ejecute los mismos comandos.
En el cuadro de dilogo Aadir POU, seleccione la opcin Programa, especifique un nombre para
el programa y seleccione el lenguaje de implementacin. Haga clic en Abrir para confirmar. La
vista de editor del nuevo programa se abrir y podr empezar a editar el programa.
Declaracin de un programa
Sintaxis:
PROGRAM <nombre de programa>
Va seguido de las declaraciones de variables de entrada (vase pgina 592), salida
(vase pgina 593) y las variables de programa. Las variables de acceso estn tambin
disponibles como opciones.
Ejemplo de un programa
174
EIO0000000071 04/2014
Componentes de programa
Llamada a un programa
Otra POU puede llamar a un programa. Sin embargo, no se permite una llamada de programa en
una funcin (vase pgina 177). No hay instancias de programas.
Si una POU ha llamado a un programa y los valores del programa se han modificado, estos
cambios se conservarn hasta que se vuelva a llamar a un programa. Esto se aplica aunque se
llame desde otra POU. Tenga en cuenta que esto es diferente de la llamada a un bloque de
funciones. Cuando se llama a un bloque de funciones, slo se cambian los valores en la instancia
en cuestin del bloque de funciones. Los cambios slo entran en vigor cuando se vuelve a llamar
a la instancia.
Con el fin de establecer parmetros de entrada o salida en el transcurso de una llamada de
programa, en los editores de texto de lenguaje (por ejemplo, ST), asigne valores a los parmetros
despus del nombre de programa entre parntesis. Para los parmetros de entrada, utilice :=
para esta asignacin, como con la inicializacin de variables (vase pgina 583) en la posicin de
declaracin. Para los parmetros de salida, utilice =>. Consulte el ejemplo siguiente.
Si el programa se inserta mediante Accesibilidad utilizando la opcin Insertar con argumentos
en la vista de implementacin de un editor de lenguaje de texto, se visualizar automticamente
segn esta sintaxis con todos los parmetros, aunque no es necesario que asigne estos
parmetros.
Ejemplo para llamadas de programa
Programa en IL:
CAL
LD
ST
PRGexample
in_var:= 33
PRGexample.out_var
erg
(
)
PRGexample
in_var:= 33
out_var=> erg
(
,
)
Ejemplo en ST
PRGexample(in_var:= 33);
erg := PRGexample.out_var;
Ejemplo con asignacin de parmetros (Accesibilidad utilizando la opcin Insertar con
argumentos, como se ha descrito anteriormente):
PRGexample (in_var:=33, out_var=>erg );
Ejemplo en FBD
EIO0000000071 04/2014
175
Componentes de programa
Programa en FBD:
176
EIO0000000071 04/2014
Componentes de programa
Funcin
Descripcin general
Una funcin es una POU que produce exactamente un elemento de datos (que puede estar
formado por varios elementos, como campos o estructuras) cuando se procesa. La llamada en
lenguajes textuales puede ocurrir como un operador en expresiones.
Adicin de una funcin
Para asignar la funcin a una aplicacin existente, seleccione el nodo de la aplicacin en el rbol
Aplicaciones, haga clic en el signo ms de color verde y ejecute el comando POU... Como
alternativa, haga clic con el botn derecho del ratn en el nodo Aplicacin y ejecute el comando
Agregar objeto POU en el men contextual. Para aadir una POU independiente de la
aplicacin, seleccione el nodo Global del rbol Aplicaciones y ejecute los mismos comandos.
En el cuadro de dilogo Aadir POU, seleccione la opcin Funcin. Especifique un Nombre
(<nombre de la funcin:>) y un Tipo de retorno (<tipo de datos>) para la nueva funcin y
seleccione el lenguaje de implementacin deseado. Para elegir el tipo de datos de retorno, haga
clic en ... para abrir el cuadro de dilogo Accesibilidad. Haga clic en Abrir para confirmar. Se
abre la vista de editor para la nueva funcin y puede empezar la edicin.
EIO0000000071 04/2014
177
Componentes de programa
178
EIO0000000071 04/2014
Componentes de programa
5
3
22
result
Ejemplo:
fun(formal1 := actual1, actual2); // -> error message
fun(formal2 := actual2, formal1 := actual1); // same semantics as the f
ollowing:
fun(formal1 := actual1, formal2 := actual2);
De acuerdo con el estndar IEC 61131-3, las funciones pueden tener salidas adicionales. Deben
asignarse en la llamada de la funcin. En ST, por ejemplo, de acuerdo con la sintaxis siguiente:
out1 => <variable salida 1> | out2 => <variable salida 2> | ...otras variables de salida
Ejemplo
La funcin fun se define con 2 variables de entrada, in1 e in2. El valor de retorno de fun se
graba en las variables de salida (vase pgina 593) definidas localmente (VAR_OUTPUT) loc1 y
loc2.
fun(in1 := 1, in2 := 2, out1 => loc1, out2 => loc2);
EIO0000000071 04/2014
179
Componentes de programa
Mtodo
Descripcin general
La funcionalidad Mtodo slo est disponible si se selecciona en el conjunto de caractersticas
usado actualmente (Opciones Caractersticas Conjunto predefinido de caractersticas).
Puede utilizar mtodos para describir una secuencia de instrucciones ya que son compatibles con
la programacin orientada a objetos. A diferencia de una funcin, un mtodo no es una POU
independiente, sino que se debe asignar a un bloque de funciones (vase pgina 196). Se puede
considerar una funcin que contiene una instancia del bloque de funciones respectivo. Como tal,
tiene un valor de retorno, una parte de declaracin propia para variables temporales y parmetros.
Tambin, como medio de programacin orientada a objetos, puede utilizar interfaces
(vase pgina 185) para organizar los mtodos disponibles en un proyecto. Una interfaz es una
coleccin de prototipos de mtodos. Esto significa que un mtodo asignado a una interfaz slo
contiene una parte de declaracin, pero sin implementacin. Adems, en la declaracin no se
permiten variables locales y estticas, sino variables de entrada, salida y entrada/salida. La
implementacin del mtodo se debe realizar en el bloque de funciones que implementa la interfaz
(vase pgina 207) y utiliza el mtodo.
NOTA: Al copiar o desplazar un mtodo o una propiedad de una POU a una interfaz, las
implementaciones contenidas se eliminan de forma automtica. Al copiar o desplazar de una
interfaz a una POU, se solicita especificar el lenguaje de implementacin deseado.
Insercin de un mtodo
Para asignar un mtodo a un bloque de funciones o a una interfaz, seleccione el nodo de bloque
de funciones o de interfaz adecuado en Aplicaciones , haga clic en el signo ms de color verde
y ejecute el comando Mtodo. Como alternativa, puede hacer clic con el botn derecho del ratn
en el nodo del bloque de funciones o de la interfaz y ejecutar el comando Agregar objeto
Mtodo en el men contextual.
En el cuadro de dilogo Aadir mtodo, introduzca un Nombre, el Tipo de retorno deseado, el
Lenguaje de implementacin: y el Modificador de acceso (vase a continuacin). Para elegir
el tipo de retorno, haga clic en el botn ... para abrir el cuadro de dilogo Accesibilidad...
Modificador de acceso: por motivos de compatibilidad, los modificadores de acceso son
opcionales. El modificador PUBLIC est presente como equivalente a no establecer ningn
modificador.
Como alternativa, seleccione una de las opciones de la lista de seleccin:
z PRIVADO: el acceso en el mtodo se restringe al bloque de funciones.
z PROTEGIDO: el acceso en el mtodo se restringe al bloque de funciones y su derivacin.
z INTERNO: el acceso en el mtodo se restringe al espacio de nombres (biblioteca) actual.
z FINAL: no es posible el acceso de sobrescritura en el mtodo. Permite la generacin de cdigo
optimizado.
180
EIO0000000071 04/2014
Componentes de programa
NOTA: Los modificadores de acceso son vlidos a partir de la versin del compilador 3.4.4.0 y,
por lo tanto, se pueden utilizar como modificadores en versiones anteriores. Para obtener ms
informacin, consulte la tabla de asignacin de versiones del compilador SoMachine/CoDeSys en
SoMachineCompatibilidad y migracin - Gua del usuario (vase SoMachine - Compatibilidad y
migracin, Gua del usuario).
Haga clic en Abrir para confirmar. Se abrir la vista del editor de mtodos.
Declaracin de un mtodo
Sintaxis:
METHOD <modificador acceso> <nombre mtodo> : <tipo datos retorno>VAR_INPUT
... END_VAR
Para obtener una descripcin sobre cmo declarar mtodos de manejo de interfaces, consulte el
captulo Interfaz (vase pgina 185).
Llamada a un mtodo
Las llamadas a mtodos tambin se conocen como llamadas a funciones virtuales. Para obtener
informacin adicional, consulte el captulo Invocacin de mtodos (vase pgina 209).
Para llamar a un mtodo, tenga en cuenta lo siguiente:
Los datos de un mtodo son temporales y slo son vlidos durante la ejecucin del mtodo
(variables de pila). Esto significa que las variables y los bloques de funciones declarados en un
mtodo se reinicializan en cada llamada al mtodo.
z En el cuerpo de un mtodo, se permite el acceso a las variables de instancia del bloque de
funciones.
z Si es necesario, utilice el puntero THIS (vase pgina 213), que siempre apunta a la instancia
actual.
z No se puede acceder a las variables VAR_IN_OUT o VAR_TEMP del bloque de funciones en un
mtodo.
z Slo se permite que los mtodos definidos en una interfaz (vase pgina 185) tengan variables
de entrada, salida y entrada/salida, pero no cuerpo (parte de la implementacin).
z Los mtodos como las funciones pueden tener salidas adicionales. Se deben asignar durante
la invocacin al mtodo (vase pgina 209).
z
EIO0000000071 04/2014
181
Componentes de programa
Descripcin
Init
Reinit
Exit
Las propiedades (vase pgina 183) y las propiedades de interfaz (vase pgina 189) constan de
un mtodo de acceso Set o Get.
Llamada al mtodo tambin cuando la aplicacin est detenida
En el archivo de descripcin del dispositivo, se puede definir que siempre se llame a un
determinado mtodo con una tarea cclica por una determinada instancia de bloque de funciones
(de un mdulo de biblioteca). Si este mtodo tiene los siguientes parmetros de entrada, tambin
se procesa cuando la aplicacin activa no se est ejecutando.
Ejemplo
VAR_INPUT
pTaskInfo : POINTER TO DWORD;
pApplicationInfo: POINTER TO _IMPLICIT_APPLICATION_INFO;
END_VAR
El programador puede comprobar el estado de la aplicacin mediante pApplicationInfo y
definir qu debe suceder.
IF pApplicationInfo^.state = RUNNING THEN <instructions> END_IF
182
EIO0000000071 04/2014
Componentes de programa
Propiedad
Descripcin general
La funcionalidad Propiedad slo est disponible si se selecciona en el conjunto de caractersticas
usado actualmente (Opciones Caractersticas Conjunto predefinido de caractersticas).
Est disponible una propiedad en extensin al estndar IEC 61131-3 como mtodo de
programacin orientada a objetos. Se compone de un par de mtodos de acceso (Get, Set). Se
llaman automticamente en el acceso de lectura o escritura al bloque de funciones que tenga la
propiedad.
Para insertar una propiedad como objeto debajo de un programa (vase pgina 174) o un nodo
del bloque de funciones (vase pgina 196), seleccione el nodo en el rbol Aplicaciones, haga
clic en el signo ms de color verde y ejecute el comando Propiedad. Como alternativa, haga clic
con el botn derecho en el nodo y ejecute el comando Agregar objeto Propiedad en el men
contextual.
En el cuadro de dilogo Add Property, especifique el Nombre, Tipo de retorno, Lenguaje de
implementacin deseado y, opcionalmente, un Modificador de acceso.
Estn disponibles los mismos modificadores de acceso que para los mtodos (vase pgina 180):
PUBLIC
z PRIVATE
z PROTECTED
z INTERNAL
z FINAL
z
EIO0000000071 04/2014
183
Componentes de programa
Ejemplo:
El bloque de funciones FB1 utiliza una variable local milli. Esta variable est determinada por
las propiedades Get y Set:
Ejemplo de Get
seconds := milli / 1000;
Ejemplo de Set
milli := seconds * 1000;
Puede escribir la propiedad del bloque de funciones (mtodo Set); por ejemplo, con
fbinst.seconds := 22;
(fbinst es la instancia de FB1).
Puede leer la propiedad del bloque de funciones (mtodo Get); por ejemplo, con
testvar := fbinst.seconds;
En el siguiente ejemplo, la propiedad Prop1 se asigna al bloque de funciones fb:
Una propiedad puede tener variables locales adicionales pero ninguna entrada adicional y, a
diferencia de una funcin (vase pgina 177) o un mtodo (vase pgina 180), ninguna salida
adicional.
NOTA: Al copiar o desplazar un mtodo o una propiedad de una POU a una interfaz, las
implementaciones contenidas se eliminan de forma automtica. Al copiar o desplazar de una
interfaz a una POU, se solicita especificar el lenguaje de implementacin deseado.
Supervisin de una propiedad
Una propiedad se puede supervisar en la modalidad online con ayuda de la supervisin en lnea
(vase pgina 392) o de una lista de supervisin (vase pgina 464). La condicin previa para la
supervisin de una propiedad es la adicin del pragma {attribute
monitoring:=variable} (consulte el captulo Attribute Monitoring (vase pgina 637)) en
la parte superior de su definicin.
184
EIO0000000071 04/2014
Componentes de programa
Interfaz
Descripcin general
La funcionalidad Interfaz slo est disponible si se selecciona en el conjunto de caractersticas
usado actualmente (Opciones Caractersticas Conjunto predefinido de caractersticas).
El uso de interfaces es un medio de programacin orientada a objetos. Una POU con interfaces
describe un conjunto de mtodos (vase pgina 180) y prototipos de propiedad
(vase pgina 183). Prototipo significa que slo contiene declaraciones, pero que no contiene
implementaciones. La interfaz podra describirse como la cscara vaca de un bloque de funciones
(vase pgina 196). Debe implementarse (vase pgina 207) en la declaracin del bloque de
funciones para que se realice en las instancias del bloque de funciones. Hasta que no forme parte
de una definicin del bloque de funciones, puede completarse con el cdigo de programacin
especfico del bloque de funciones. Un bloque de funciones puede implementar una o varias
interfaces.
Mediante el uso de bloques de funciones diferentes, puede ejecutarse el mismo mtodo con
parmetros idnticos pero con cdigo de implementacin diferente. Por tanto, se puede
utilizar/llamar a una interfaz en cualquier POU sin la necesidad de que la POU identifique el bloque
de funciones concreto que est relacionado.
Ejemplo de definicin y uso de interfaz en un bloque de funciones
Una interfaz IFT se inserta debajo de una aplicacin. Contiene 2 mtodos: Method1 y Method2.
Ni la interfaz ni los mtodos contienen ningn cdigo de implementacin. Slo la parte de
declaracin de los mtodos se completar con las declaraciones de variables que se desee:
Interfaz con 2 mtodos:
Ahora pueden insertarse 1 o varios bloques de funciones, que implementan la interfaz ITF
definida ms arriba.
EIO0000000071 04/2014
185
Componentes de programa
Cuando el bloque de funciones POU se aade al rbol Aplicaciones, los mtodos Method1 y
Method2 se insertan automticamente debajo, conforme se ha definido mediante ITF. Aqu
pueden completarse con cdigo de implementacin especfico del bloque de funciones.
Uso de la interfaz en la definicin del bloque de funciones
Una interfaz puede extender otras interfaces mediante EXTENDS (consulte el ejemplo siguiente,
Ejemplo para extender una interfaz (vase pgina 188)) en la definicin de la interfaz. Tambin se
pueden extender los bloques de funciones.
186
EIO0000000071 04/2014
Componentes de programa
Propiedades de interfaz
Una interfaz tambin puede definir una propiedad de interfaz, que consta de los mtodos de
descriptor de acceso Get y Set. Para obtener ms informacin sobre las propiedades, consulte
los captulos Propiedad (vase pgina 183) y Propiedad de interfaz (vase pgina 189). Una
propiedad en una interfaz, como los mtodos que puede incluir, slo es un prototipo, lo que
significa que no contiene cdigo de implementacin. Al igual que los mtodos, se aade automticamente al bloque de funciones, que implementa la interfaz. En el bloque de funciones podr
completarse con cdigo de programacin especfico.
Consideraciones
Tenga en cuenta lo siguiente:
No se permite declarar variables en la interfaz. La interfaz no tiene cuerpo (parte de implementacin) ni acciones. En la interfaz slo se define una coleccin de mtodos y esos mtodos slo
se permite que tengan variables de entrada, variables de salida y variables de entrada/salida.
Las variables declaradas con el tipo de una interfaz se tratan como referencias.
Un bloque de funciones que implementa una interfaz debe tener asignados mtodos y
propiedades con exactamente el mismo nombre que tienen en la interfaz. Deben contener
entradas, salidas y entradas/salidas tambin con el mismo nombre.
NOTA: Al copiar o desplazar un mtodo o una propiedad de una POU a una interfaz, las
implementaciones contenidas se eliminan de forma automtica. Al copiar o desplazar de una
interfaz a una POU, se solicita especificar el lenguaje de implementacin deseado.
Insercin de una interfaz
Para aadir una interfaz en una aplicacin, seleccione el nodo Aplicacin en el rbol
Aplicaciones, o en Catlogo de software Activos haga clic en el signo ms de color verde y
seleccione Aadir otros objetos... Interfaz. Como alternativa, ejecute el comando Agregar
objeto Interfaz. Si selecciona el nodo Global antes de ejecutar el comando, la nueva interfaz
estar disponible para todas las aplicaciones.
En el cuadro de dilogo Add Interface, escriba un nombre para la nueva interfaz (<nombre de
interfaz>). Como alternativa, puede activar la opcin Extendido: si desea que la interfaz actual
sea una extensin (vase pgina 204) de otra interfaz.
EIO0000000071 04/2014
187
Componentes de programa
Haga clic en Agregar para confirmar la configuracin. Se abrir la vista del editor de la nueva
interfaz.
Declaracin de una interfaz
Sintaxis
INTERFACE <nombre de interfaz>
Para una interfaz que extiende a otra:
INTERFACE <nombre de interfaz> EXTENDS <nombre de interfaz base>
Ejemplo
INTERFACE interface1 EXTENDS interface_base
Adicin de una coleccin de mtodos
Para completar la definicin de la interfaz, aada la coleccin de mtodos que desee. Para este
fin, seleccione el nodo de la interfaz en el rbol Aplicaciones o en Catlogo de software
Activos y ejecute el comando Mtodo de interfaces... Se abrir el cuadro de dilogo Add
Interface Method para definir un mtodo que formar parte de la interfaz. Como alternativa,
seleccione el nodo de la interfaz en el rbol Aplicaciones, haga clic en el signo ms de color verde
y seleccione Mtodo de interfaces. Aada tantos mtodos como desee y recuerde que slo se
permite que esos mtodos tengan variables de entrada, variables de salida y variables de
entrada/salida, pero no cuerpo (parte de implementacin).
188
EIO0000000071 04/2014
Componentes de programa
Propiedad de interfaz
Descripcin general
Adems de los mtodos y programas, tambin puede utilizarse una propiedad, disponible como
un medio de programacin orientada a objetos, en la definicin de una interfaz
(vase pgina 185). En este caso, se denomina propiedad de interfaz. Para agregarla a la interfaz
seleccionada en el rbol Aplicaciones, haga clic en el signo ms de color verde y ejecute el
comando Propiedad de interfaz... Como alternativa, haga clic con el botn derecho del ratn en
el nodo de interfaz y ejecute el comando Agregar objeto Propiedad de interfaz en el men
contextual.
Para obtener ms informacin sobre una propiedad y sus mtodos, consulte Propiedad
(vase pgina 183)
Una propiedad de interfaz ampla la descripcin de una interfaz. Al igual que la interfaz, slo define
que los mtodos de descriptor de acceso Get o Set (puede utilizar ambos o slo uno de ellos)
pertenecen a la interfaz; sin embargo, no se proporciona cdigo de implementacin para ellos.
Cuando se ampla un bloque de funciones con una interfaz que contiene propiedades, estas
propiedades y sus descriptores de acceso Get o Set se insertan automticamente en el rbol
Dispositivos debajo del objeto del bloque de funciones. Pueden editarse para aadir el cdigo
de implementacin deseado.
Ejemplo
En la figura siguiente, la interfaz NamedItem tiene una propiedad Name con un mtodo de
descriptor de acceso Get y Set. El descriptor de acceso Get de este ejemplo est destinado para
su uso en la lectura del nombre de cualquier elemento de un bloque de funciones que implementa
la interfaz. El descriptor de acceso Set puede utilizarse para escribir un nombre en este bloque
de funciones. Ambos mtodos pueden editarse en la definicin de interfaz, pero posteriormente
en el bloque de funciones.
El bloque de funciones FB_Name_xy1 se ha aadido al rbol Dispositivos, de forma que se
implementa la interfaz (FUNCTION_BLOCK FB_Name_xy1 IMPLEMENTS NamedItem). Por
tanto, la propiedad Name con los mtodos Get y Set se ha insertado automticamente debajo de
FB_Name_xy1. Aqu puede editar los mtodos de descriptor de acceso; por ejemplo, en el modo
en que la variable name_of_xy1 se lee y, por tanto, se got el nombre de un elemento. En otro
bloque de funciones que tambin implementa la misma interfaz, el mtodo Get puede rellenarse
con otro cdigo. Este cdigo puede proporcionar el nombre de cualquier otro elemento. El mtodo
Set del ejemplo se utiliza para escribir un nombre, definido por el programa PLC_PRG (abc),
en el bloque de funciones FB_Name_xy2.
EIO0000000071 04/2014
189
Componentes de programa
190
EIO0000000071 04/2014
Componentes de programa
Implementacin de cdigo en los mtodos de descriptor de acceso Get y Set debajo de los 2
bloques de funciones
FB_Name_xy1.Get
VAR
END_VAR
name := name_of_xy1;
FB_Name_xy2.Get
VAR
END_VAR
name := name_of_xy2;
FB_Name_xy2.Set
VAR
END_VAR
name_got_from_PLC_PRG:=name;
Acceso a los bloques de funciones mediante el programa PLC_PRG
PROGRAM PLC_PRG
VAR
FBxy1_inst: FB_Name_xy1;
FBxy2_inst: FB_Name_xy2;
namexy1: STRING;
namexy2: STRING;
END_VAR
//get name out of fb
namexy1:=FBxy1_inst.Name;
namexy2:=FBxy2_inst.Name;
//write name to fb
FBxy2_inst.Name:=abc;
EIO0000000071 04/2014
191
Componentes de programa
Accin
Descripcin general
Puede definir acciones y asignarlas a bloques de funciones (vase pgina 196) y programas
(vase pgina 174). Una accin es una implementacin adicional. Se puede crear en un lenguaje
diferente al de la implementacin bsica. A cada accin se le da un nombre.
Las acciones trabajan con los datos del bloque de funciones o programa al cual pertenecen. Las
acciones utilizan variables de entrada/salida y variables locales definidas y no contienen sus
propias declaraciones.
Ejemplo de una accin de un bloque de funciones
En la ilustracin siguiente se muestra una accin en FB:
En este ejemplo, cada llamada del bloque de funciones FB1 incrementa o reduce la variable de
salida out, en funcin del valor de la variable de entrada in. Si se invoca la accin Reset del
bloque de funciones, la variable de salida out se establece en 0. En ambos casos se escribe la
misma variable out.
Insercin de una accin
Para aadir una accin, seleccione el nodo correspondiente del programa o bloque de funciones
en el rbol Aplicaciones o en el nodo Global del rbol Aplicaciones, haga clic en el signo ms
de color verde y ejecute el comando Accin... Como alternativa, haga clic con el botn derecho
en el nodo del programa o bloque de funciones y ejecute el comando Agregar objeto Accin.
En el cuadro de dilogo Agregar accin, defina el Nombre de la accin y el Lenguaje de
implementacin deseado.
192
EIO0000000071 04/2014
Componentes de programa
NOTA: El estndar IEC slo reconoce las acciones del diagrama funcional secuencial (SFC).
Estas acciones son una parte esencial que contiene las instrucciones que se procesarn en pasos
concretos del diagrama.
EIO0000000071 04/2014
193
Componentes de programa
Accin
1.
Aada el objeto POU que desee al nodo Global del rbol Aplicaciones de su
proyecto como cualquier objeto interno y defina las respectivas variables de
entrada y salida.
NOTA: Defina las variables locales en los bloques de funciones externos. No las
defina en funciones o mtodos externos. Las variables VAR_STAT no se pueden
utilizar en el sistema de tiempo de ejecucin.
2.
En el sistema de tiempo de ejecucin, se tiene que implementar una funcin, bloque de funciones
o mtodo equivalente. En una descarga de programa, el equivalente para cada POU externa se
busca en el sistema de tiempo de ejecucin. Si se encuentra el equivalente, se vincula.
194
EIO0000000071 04/2014
Componentes de programa
ATENCIN
FUNCIONALIDAD DE COMPROBACIONES IMPLCITAS INCORRECTAS
No modifique la parte de declaracin de una funcin de comprobacin implcita, a fin de
conservar su integridad funcional.
El incumplimiento de estas instrucciones puede causar lesiones o dao al equipo.
NOTA: A partir de SoMachine V4.0, despus de eliminar la funcin de comprobacin implcita
(como CheckBounds) de la aplicacin, no se puede utilizar Cambio en lnea; solamente se puede
realizar una descarga. Aparecer el mensaje correspondiente.
EIO0000000071 04/2014
195
Componentes de programa
Seccin 6.2
Bloque de funciones
Bloque de funciones
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
196
Pgina
Informacin general
197
200
201
204
Implementacin de interfaces
207
Invocacin de mtodos
209
Puntero SUPER
211
Puntero THIS
213
EIO0000000071 04/2014
Componentes de programa
Informacin general
Descripcin general
Un bloque de funciones es una POU (vase pgina 169) que proporciona 1 o ms valores durante
el proceso de un programa de controlador. A diferencia de una funcin, los valores de las variables
de salida y las variables internas necesarias pueden persistir de una ejecucin del bloque de
funciones a la siguiente. Por lo tanto, la invocacin de un bloque de funciones con los mismos
argumentos (parmetros de entrada) no siempre tiene por qu producir los mismos valores de
salida.
Adems de la funcionalidad descrita por el estndar IEC11631-3, se admite la programacin
orientada a objetos, y pueden definirse bloques de funciones como extensiones
(vase pgina 204) de otros bloques de funciones. Pueden incluir definiciones de interfaz
(vase pgina 207) relativas a la Invocacin de mtodos (vase pgina 209). Por consiguiente,
puede utilizarse la herencia al programar con bloques de funciones.
Para llamar a un bloque de funciones siempre se utiliza una instancia (vase pgina 200), que es
una reproduccin (copia) del bloque de funciones.
Adicin de un bloque de funciones
Para aadir un bloque de funciones a una aplicacin existente, seleccione el nodo correspondiente en Catlogo de software Activos o en el rbol Aplicaciones, haga clic en el signo ms
de color verde y seleccione POU... Como alternativa, puede hacer clic con el botn derecho en el
nodo y ejecutar el comando Agregar objeto POU. Para crear un bloque de funciones
independiente de una aplicacin, seleccione el nodo Global del rbol Aplicaciones o de Activos.
En el cuadro de dilogo Agregar objeto, seleccione la opcin Bloque de funciones, especifique
un Nombre (<identificador>) de bloque de funciones y seleccione el Lenguaje de implementacin que desee.
Adems, puede especificar las siguientes opciones:
Opcin
Descripcin
Extendido
Implementado
EIO0000000071 04/2014
197
Componentes de programa
Opcin
Descripcin
Modificador de acceso
Lenguaje de
Seleccione el lenguaje de programacin que desee para
implementacin de mtodo todos los objetos de mtodo creados mediante la
implementacin de la interfaz, independientemente del
establecido para el bloque de funciones en cuestin.
Haga clic en Agregar para confirmar la configuracin. Se abre la vista de editor para el nuevo
bloque de funciones y puede empezar la edicin.
Declaracin de un bloque de funciones
Sintaxis
FUNCTION_BLOCK <modificador de acceso> <nombre del bloque de funciones> | EXTENDS
<nombre del bloque de funciones> | IMPLEMENTS <lista de nombres de interfaz separados por
comas>
A esto le sigue la declaracin de las variables.
198
EIO0000000071 04/2014
Componentes de programa
Ejemplo
El ejemplo FBexample de la siguiente figura tiene 2 variables de entrada y 2 variables de salida,
out1 y out2.
out1 es la suma de las 2 entradas, y out2 es el resultado de una comparacin de igualdad.
Ejemplo de un bloque de funciones en ST
EIO0000000071 04/2014
199
Componentes de programa
200
EIO0000000071 04/2014
Componentes de programa
Slo puede accederse a las variables de entrada y salida de un bloque de funciones desde
fuera de una instancia de bloque de funciones, pero no a sus variables internas.
El acceso a una instancia de bloque de funciones est limitado a la POU (vase pgina 169)
en la que se ha declarado, a menos que se haya declarado globalmente.
Al llamar a la instancia, pueden asignarse los valores deseados a los parmetros de bloque de
funciones. Consulte el prrafo siguiente, Asignacin de parmetros durante la llamada.
Las variables de entrada/salida (VAR_IN_OUT) de un bloque de funciones se proporcionan
como punteros.
En SFC, las llamadas de bloque de funciones slo pueden tener lugar en pasos.
El nombre de la instancia del bloque de funciones puede utilizarse como parmetro de entrada
para una funcin u otro bloque de funciones.
Todos los valores de un bloque de funciones se conservan hasta el siguiente procesamiento
del bloque de funciones. Por tanto, las llamadas de bloque de funciones no siempre devuelven
los mismos valores de salida, aunque se realicen con argumentos idnticos.
NOTA: Si al menos 1 de las variables del bloque de funciones es una variable remanente, la
instancia total se almacena en el rea de datos Retain.
EIO0000000071 04/2014
201
Componentes de programa
202
EIO0000000071 04/2014
Componentes de programa
EIO0000000071 04/2014
203
Componentes de programa
EIO0000000071 04/2014
Componentes de programa
Ejemplo
FUNCTION_BLOCK FB_Base
VAR_INPUT
END_VAR
VAR_OUTPUT
iCnt : INT;
END_VAR
VAR
END_VAR
THIS^.METH_DoIt();
THIS^.METH_DoAlso();
METHOD METH_DoIt : BOOL
VAR
END_VAR
iCnt := -1;
METH_DoIt := TRUE;
METHOD METH_DoAlso : BOOL
VAR
END_VAR
METH_DoAlso := TRUE;
FUNCTION_BLOCK FB_1 EXTENDS FB_Base
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
END_VAR
// Calls the method defined under FB_1
THIS^.METH_DoIt();
THIS^.METH_DoAlso();
// Calls the method defined under FB_Base
SUPER^.METH_DoIt();
SUPER^.METH_DoAlso();
METHOD METH_DoIt : BOOL
VAR
END_VAR
iCnt := 1111;
METH_DoIt := TRUE;
EIO0000000071 04/2014
205
Componentes de programa
PROGRAM PLC_PRG
VAR
Myfb_1: FB_1;
iFB: INT;
iBase: INT;
END_VAR
Myfb_1();
iBase := Myfb_1.iCnt_Base;
iFB := Myfb_1.iCnt_THIS;
206
EIO0000000071 04/2014
Componentes de programa
Implementacin de interfaces
Descripcin general
Para admitir la programacin orientada a objetos, un bloque de funciones puede implementar
varias interfaces (vase pgina 185) que permiten utilizar mtodos (vase pgina 180).
Sintaxis
FUNCTION_BLOCK <nombre de bloque de funciones> IMPLEMENTS <nombre de
interfaz_1>|,<nombre de interfaz_2>, ..., <nombre de interfaz_n>
Un bloque de funciones que implementa una interfaz debe contener todos los mtodos y
propiedades (propiedad de interfaz (vase pgina 189)) definidas por esa interfaz. Se incluyen el
nombre, las entradas y la salida del mtodo o propiedad concretos, que deben ser exactamente
los mismos.
Por este motivo, al crear un nuevo bloque de funciones que implemente una interfaz, todos los
mtodos y propiedades definidos en esa interfaz se insertarn automticamente debajo del nuevo
bloque de funciones en el rbol Aplicaciones.
NOTA: Si despus se aaden mtodos a la definicin de interfaz, no se aadirn automticamente a los bloques de funciones correspondientes. Ejecute el comando Implementar
interfaces... (vase SoMachine, Comandos de men, Ayuda en lnea) para realizar esta
actualizacin explcitamente.
Ejemplo
INTERFACE I1 incluye el mtodo GetName:
METHOD GetName : STRING
Cada bloque de funciones A y B implementa la interfaz I1:
FUNCTION_BLOCK A IMPLEMENTS I1
FUNCTION_BLOCK B IMPLEMENTS I1
As, en los dos bloques de funciones, el mtodo GetName debe estar disponible y se insertar
automticamente debajo de cada uno cuando los bloques de funciones se inserten en el rbol
Aplicaciones.
Tenga en cuenta esta declaracin de una variable de tipo I1:
FUNCTION DeliverName : STRING
VAR_INPUT
l_i : I1;
END_VAR
Esta entrada puede recibir todos los bloques de funciones que implementan la interfaz I1.
Ejemplo de llamadas a funciones:
DeliverName(l_i := A_instance); // call with instance of type A
DeliverName(l_i := B_instance); // call with instance of type B
EIO0000000071 04/2014
207
Componentes de programa
NOTA: Para poder llamar a un mtodo, debe asignarse una instancia de un bloque de funciones
a una variable de tipo interfaz. Una variable de tipo interfaz siempre es una referencia a la instancia
de bloque de funciones asignada.
De este modo, una llamada al mtodo de interfaz produce una llamada a la implementacin del
bloque de funciones. En cuanto se asigna la referencia, la direccin correspondiente se supervisa
en modalidad online. En caso contrario, si todava no se ha asignado ninguna referencia, se
mostrar el valor 0 en la supervisin en modalidad online.
Para este ejemplo, consulte la parte de implementacin de la funcin DeliverName:
DeliverName := l_i.GetName(); // in this case it depends on the "real"
type of l_i whether A.GetName or B.GetName is called
NOTA: Consulte tambin la posibilidad de extender un bloque de funciones (vase pgina 204)
utilizando la palabra clave EXTENDS en la declaracin.
208
EIO0000000071 04/2014
Componentes de programa
Invocacin de mtodos
Descripcin general
La programacin orientada a objetos con bloques de funciones, aparte de ofrecer extensin
(vase pgina 204) mediante EXTENDS, admite el posible uso de interfaces (vase pgina 207) y
herencias. Esto requiere invocaciones de mtodos con resolucin dinmica, tambin
denominadas llamadas de funcin virtuales.
Las llamadas de funcin virtuales necesitan algo ms de tiempo que las llamadas de funcin
normales, y se utilizan en los siguientes casos:
z cuando se realiza una llamada mediante un puntero a un bloque de funciones (pfub^.method)
z Cuando se llama a un mtodo de una variable de interfaz (interface1.method).
z Cuando un mtodo llama a otro mtodo del mismo bloque de funciones.
z Cuando se realiza una llamada mediante una referencia a un bloque de funciones.
z Cuando a VAR_IN_OUT de un tipo de bloque de funciones bsico se le puede asignar una
instancia de un tipo de bloque de funciones derivado.
Las llamadas de funcin virtuales permiten que la misma llamada en un cdigo fuente de
programa invoque diferentes mtodos durante el tiempo de ejecucin.
Para obtener informacin ms detallada, consulte:
Mtodo (vase pgina 180) para obtener ms informacin sobre mtodos.
z Puntero THIS (vase pgina 213) para obtener ms informacin sobre el uso del puntero THIS.
z Puntero SUPER (vase pgina 211) para obtener ms informacin sobre el puntero SUPER.
z
Mtodos de llamada
Segn el estndar IEC 61131-3 , los mtodos como las funciones (vase pgina 177) normales
pueden tener salidas adicionales. Deben asignarse a la llamada de mtodo segn la sintaxis
siguiente:
<mtodo>(in1:=<valor> |, ms asignaciones de entrada, out1 => <variable de salida 1> | out2 =>
<variable de salida 2> | ...ms asignaciones de salida)
Como resultado, la salida del mtodo se escribe en las variables de salida declaradas localmente
tal como se especifica en la llamada.
EIO0000000071 04/2014
209
Componentes de programa
Ejemplo
Supongamos que los bloques de funciones fub1 y fub2 extienden (EXTEND) el bloque de
funciones fubbase e implementan (IMPLEMENT) interface1. Se incluye el mtodo method1.
Posible uso de las interfaces y llamadas de mtodo:
PROGRAM PLC_PRG
VAR_INPUT
b : BOOL;
END_VAR
VAR
pInst : POINTER TO fubbase;
instBase : fubbase;
inst1 : fub1;
inst2 : fub2;
instRef : REFERENCE to fubbase;
END_VAR
IF b THEN
instRef REF= inst1;
(* Reference to fub1 *)
pInst := ADR(instBase);
ELSE
instRef REF= inst2;
(* Reference to fub2 *)
pInst := ADR(inst1);
END_IF
pInst^.method1();
(* If b is true, fubbase.method1 is c
alled, else fub1.method1 is called *)
instRef.method1();
(* If b is true, fub1.method1 is call
ed, else fub2.method1 is called *)
Supongamos que fubbase del ejemplo anterior contiene 2 mtodos, method1 y method2. fub1
anula method2, pero no method1.
Se llama a method1 como se muestra en el ejemplo anterior.
pInst^.method1(); (* If b is true fubbase.method1 is called, else fub1.
method1 is called *)
Para realizar la llamada mediante el puntero THIS, consulte Puntero THIS (vase pgina 213).
210
EIO0000000071 04/2014
Componentes de programa
Puntero SUPER
Descripcin general
Para cada bloque de funciones est disponible automticamente un puntero con el nombre
SUPER. Apunta a las instancias del bloque de funciones bsico, de las que se crea el bloque de
funciones con la herencia del bloque de funciones bsico.
Esto proporciona una solucin eficaz para el problema siguiente:
z
SUPER ofrece acceso a los mtodos de implementacin de la clase base. Con la palabra clave
SUPER se puede llamar a un mtodo vlido en la instancia de clase base (objeto padre). Por lo
tanto, no se lleva a cabo ningn enlace de nombre dinmico.
Ejemplo
ST
SUPER^.METH_DoIt();
FBD/CFC/LD
EIO0000000071 04/2014
211
Componentes de programa
Ejemplo
La variable local iVarB sobrecarga la variable de bloque de funciones iVarB.
FUNCTION_BLOCK FB_Base
VAR_OUTPUT
iCnt : INT;
END_VAR
METHOD METH_DoIt : BOOL
iCnt := -1;
METHOD METH_DoAlso : BOOL
METH_DoAlso := TRUE;
FUNCTION_BLOCK FB_1 EXTENDS FB_Base
VAR_OUTPUT
iBase: INT;
END_VAR
// Calls the method defined under FB_1
THIS^.METH_DoIt();
THIS^.METH_DoAlso();
// Calls the method defined under FB_Base
SUPER^.METH_DoIt();
SUPER^.METH_DoAlso();
iBase := SUPER^.iCnt;
METHOD METH_DoIt : BOOL
iCnt := 1111;
METH_DoIt := TRUE;
END_VAR
ROGRAM PLC_PRG
VAR
myBase: FB_Base;
myFB_1: FB_1;
iTHIS: INT;
iBase: INT;
END_VAR
myBase();
iBase := myBase.iCnt;
myFB_1();
iTHIS := myFB_1.iCnt;
212
EIO0000000071 04/2014
Componentes de programa
Puntero THIS
Descripcin general
Para cada bloque de funciones est disponible automticamente un puntero con el nombre THIS.
Apunta a su propia instancia de bloque de funciones.
Esto proporciona una solucin eficaz para los problemas siguientes:
z Si una variable declarada a nivel local en el mtodo oculta una variable de bloque de funciones.
z Si desea referenciar un puntero a su propia instancia de bloque de funciones para el uso en
una funcin.
THIS slo se puede utilizar en mtodos y en la implementacin del bloque de funciones asociado.
THIS se debe escribir en maysculas. No se aceptan otras redacciones.
Debido a que THIS es un puntero al bloque de funciones que hereda, tiene que quitarle la
referencia para obtener la direccin de este bloque de funciones principal: THIS^.METHDoIt.
Llamada de THIS en distintos lenguajes de implementacin
Lenguaje de implementacin
Ejemplo
ST
THIS^.METH_DoIt();
FBD/CFC/LD
EIO0000000071 04/2014
213
Componentes de programa
Ejemplo 1
La variable local iVarB deja en segundo plano la variable de bloque de funciones iVarB.
FUNCTION_BLOCK fbA
VAR_INPUT
iVarA: INT;
END_VAR
iVarA := 1;
FUNCTION_BLOCK fbB EXTENDS fbA
VAR_INPUT
iVarB: INT := 0;
END_VAR
iVarA := 11;
iVarB := 2;
METHOD DoIt : BOOL
VAR_INPUT
END_VAR
VAR
iVarB: INT;
END_VAR
iVarB := 22; // Here the local iVarB is set.
THIS^.iVarB := 222; // Here the function block variable iVarB is se
t, although iVarB is overloaded.
PROGRAM PLC_PRG
VAR
MyfbB: fbB;
END_VAR
MyfbB(iVarA:=0 , iVarB:= 0);
MyfbB.DoIt();
214
EIO0000000071 04/2014
Componentes de programa
Ejemplo 2
Llamada de funcin que necesita una referencia a su propia instancia.
FUNCTION funA
VAR_INPUT
pFB: fbA;
END_VAR
...;
FUNCTION_BLOCK fbA
VAR_INPUT
iVarA: INT;
END_VAR
...;
FUNCTION_BLOCK fbB EXTENDS fbA
VAR_INPUT
iVarB: INT := 0;
END_VAR
iVarA := 11;
iVarB := 2;
METHOD DoIt : BOOL
VAR_INPUT
END_VAR
VAR
iVarB: INT;
END_VAR
iVarB := 22;
//Here the local iVarB is set.
funA(pFB := THIS^);
//Here funA is called with THIS^.
PROGRAM PLC_PRG
VAR
MyfbB: fbB;
END_VAR
MyfbB(iVarA:=0 , iVarB:= 0);
MyfbB.DoIt();
EIO0000000071 04/2014
215
Componentes de programa
Seccin 6.3
Objetos de aplicacin
Objetos de aplicacin
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
216
Pgina
217
219
222
Variables persistentes
230
Archivo externo
232
Lista de texto
234
Coleccin de imgenes
241
EIO0000000071 04/2014
Componentes de programa
EIO0000000071 04/2014
217
Componentes de programa
Ejemplo
El ejemplo siguiente contiene 2 DUT, que definen las estructuras struct1 y struct2; struct2
extiende struct1, lo que significa que puede utilizar struct2.a en su implementacin para
acceder a la variable a.
TYPE struct1 :
STRUCT
a:INT;
b:BOOL;
END_STRUCT
END_TYPE
TYPE struct2 EXTENDS struct1 :
STRUCT
c:DWORD;
d:STRING;
END_STRUCT
END_TYPE
218
EIO0000000071 04/2014
Componentes de programa
EIO0000000071 04/2014
219
Componentes de programa
220
EIO0000000071 04/2014
Componentes de programa
EIO0000000071 04/2014
221
Componentes de programa
222
EIO0000000071 04/2014
Componentes de programa
NOTA: Slo se transfieren a la aplicacin remota las matrices cuyos lmites estn definidos por un
literal o una constante. En este caso las expresiones constantes no estn permitidas para la
definicin de lmites. Ejemplo: arrVar : ARRAY[0..g_iArraySize-1] OF INT ; no se
transfiere arrVar : ARRAY[0..10] OF INT ; se transfiere.
NOTA: Para obtener ms informacin, consulte el captulo Comunicacin de red
(vase pgina 895).
EIO0000000071 04/2014
223
Componentes de programa
224
EIO0000000071 04/2014
Componentes de programa
Accin
Comentario
EIO0000000071 04/2014
225
Componentes de programa
226
Accin
Comentario
EIO0000000071 04/2014
Componentes de programa
Accin
Comentario
EIO0000000071 04/2014
227
Componentes de programa
Paso
3
Accin
Comentario
228
Accin
Comentario
EIO0000000071 04/2014
Componentes de programa
Accin
Comentario
EIO0000000071 04/2014
229
Componentes de programa
Variables persistentes
Descripcin general
Este objeto es una lista de variables globales que slo contiene las variables persistentes de una
aplicacin. Por lo tanto, debe asignarse a una aplicacin. Para ello, debe insertarse en el rbol
Aplicaciones seleccionando el nodo correspondiente, haciendo clic en el signo ms de color
verde y seleccionando Aadir otros objetos Variables persistentes...
Edite una lista de variables persistentes en el editor GVL (vase pgina 425).
VAR_GLOBAL PERSISTENT RETAIN ya est predefinido en la primera lnea.
Lista de variables persistentes
Las variables persistentes slo se reinicializan con Reset (origen) <aplicacin>. Para obtener
ms informacin, consulte la descripcin de las variables remanentes (vase pgina 596).
Tambin puede consultar la descripcin de los comandos especiales para gestionar variables
persistentes (vase SoMachine, Comandos de men, Ayuda en lnea).
230
EIO0000000071 04/2014
Componentes de programa
EIO0000000071 04/2014
231
Componentes de programa
Archivo externo
Descripcin general
La funcionalidad Archivo externo slo est disponible si se selecciona en el conjunto de
caractersticas usado actualmente (Opciones Caractersticas Conjunto predefinido de
caractersticas).
Para agregar un archivo externo al nodo Global del rbol Aplicaciones o del rbol Herramientas,
seleccione el nodo Global, haga clic en el signo ms de color verde y ejecute los comandos
Aadir otros objetos Archivo externo...
Haga clic en el botn ... para abrir el cuadro de dilogo y examinar un archivo. La ruta de este
archivo se especifica en el cuadro de texto Ruta de archivo. En el cuadro de texto Nombre, el
nombre del archivo elegido se especifica automticamente sin extensin. Puede editar este
campo para definir otro nombre para el archivo con el cual debe gestionarse en el proyecto.
Cuadro de dilogo Aadir archivo externo:
232
EIO0000000071 04/2014
Componentes de programa
Descripcin de la seccin Qu desea hacer con el archivo externo? del cuadro de dilogo
Seleccione una de las opciones siguientes:
Opcin
Descripcin
Guardar el vnculo.
Incrustar en el proyecto.
Descripcin
No hacer nada.
Descripcin
Abrir
EIO0000000071 04/2014
233
Componentes de programa
Lista de texto
Descripcin general
La funcionalidad Lista de texto slo est disponible si se selecciona en el conjunto de
caractersticas usado actualmente (Opciones Caractersticas Conjunto predefinido de
caractersticas).
Una lista de texto es un objeto gestionado globalmente en el nodo Global del rbol Aplicaciones
o asignado a una aplicacin en el rbol Aplicaciones.
Sirve para lo siguiente:
soporte en varios idiomas para textos estticos (vase pgina 235) y dinmicos
(vase pgina 236), e informacin sobre herramientas en visualizaciones y en la gestin de
alarmas
z intercambio de texto dinmico
z
Las listas de texto pueden exportarse y (re)importarse (vase pgina 239). La exportacin es
necesaria si debe proporcionarse un archivo de idioma en formato XML para una visualizacin de
destino, pero tambin puede ser til para traducciones.
Posibles formatos de listas de texto:
z texto
z XML
Puede activar el soporte de Unicode (vase pgina 239).
Cada lista de texto se define de forma exclusiva mediante su espacio de nombre. Contiene
cadenas de texto referenciadas de forma exclusiva en la lista mediante un identificador (ID,
compuesto de una secuencia de caracteres) y un identificador de idioma. La lista de texto que
debe utilizarse se especifica al configurar el texto de un elemento de visualizacin.
En funcin del idioma definido en la visualizacin, se mostrar en modalidad online la cadena de
texto correspondiente. El idioma empleado en una visualizacin se cambia mediante la entrada
Cambio de idioma. Esto se lleva a cabo mediante una accin de ratn que ha configurado en el
elemento de visualizacin en cuestin. Cada lista de texto debe contener al menos un idioma
predeterminado y, opcionalmente, otros idiomas que desee definir. Si no se encuentra ninguna
entrada que coincida con el idioma establecido actualmente en SoMachine, se utilizar el idioma
predeterminado de la lista de texto. Cada texto puede contener definiciones de formato
(vase pgina 239).
Estructura bsica de una lista de texto
234
Identificador (ndice)
Predeterminado
<Idioma 1>
<cadena exclusiva de
caracteres>
<Idioma 2>
...
<cadena exclusiva de
caracteres>
<texto xyz en el
idioma 1>
...
<texto xyz en el
idioma 2>
EIO0000000071 04/2014
Componentes de programa
EIO0000000071 04/2014
235
Componentes de programa
Ejemplo de GlobalTextList
Crear la lista global de texto
AVISO
MODIFICACIN ACCIDENTAL DE IDENTIFICADORES
No modifique los identificadores al editar la lista exportada.
El incumplimiento de estas instrucciones puede causar dao al equipo.
236
EIO0000000071 04/2014
Componentes de programa
Ejemplo detallado
En este ejemplo se explica cmo configurar un elemento de visualizacin, que muestra el mensaje
correspondiente cuando se detecta un error en una aplicacin que procesa eventos de error
identificados mediante ID numricos asignados a una variable entera ivar_err.
Proporcione una lista de texto dinmico denominada ErrorList en la que el texto de los mensajes
para los ID 0 a 4 se definan en los idiomas Alemn, Ingls y Predeterminado:
Para utilizar los ID de error en la configuracin de la visualizacin, defina una variable STRING,
como por ejemplo strvar_err. Para asignar el valor entero de ivar_err a strvar_err, utilice
strvar_err:=INT_TO_STRING(ivar_err);.
strvar_err puede especificarse como parmetro Textindex en la configuracin de las
propiedades Dynamic texts de un elemento de visualizacin. El elemento mostrar el mensaje
apropiado en modalidad online.
EIO0000000071 04/2014
237
Componentes de programa
238
Para crear una lista de texto para textos dinmicos (vase pgina 236), aada un objeto Lista
de texto al proyecto en el rbol Aplicaciones. Para crear una lista de texto especfica de la
aplicacin, seleccione un nodo de la aplicacin. Para crear una lista global de texto, seleccione
el nodo Global. A continuacin, haga clic en el signo ms de color verde del nodo seleccionado
y ejecute el comando Aadir otros objetos Lista de texto... Cuando haya especificado un
nombre de lista y haya confirmado el cuadro de dilogo Add Textlist, la nueva lista se insertar
debajo del nodo seleccionado y se abrir una vista del editor de listas de texto.
Para obtener una lista de texto para textos estticos (vase pgina 235) (GlobalTextList),
asigne texto a la propiedad Texto en la categora Textos de un objeto de visualizacin para
obtener la vista creada automticamente, o genrela explcitamente mediante el comando
Crear la lista global de texto.
Para abrir una lista de texto existente para su edicin, seleccione el objeto de lista en el rbol
Aplicaciones o el nodo Global del rbol Aplicaciones. Haga clic con el botn derecho en el
nodo de lista de texto y ejecute el comando Modificar objeto, o haga doble clic en el nodo de
lista de texto. Consulte la tabla Estructura bsica de una lista de texto para saber cmo se
estructura una lista de texto.
Para aadir un nuevo texto predeterminado en una lista de texto, utilice el comando Insertar
texto o edite el campo respectivo en la lnea vaca de la lista. Para editar un campo en una lista
de texto, haga clic en el campo para seleccionarlo y, a continuacin, vuelva a hacer clic en el
campo o pulse la barra espaciadora para obtener un cuadro de edicin. Introduzca los
caracteres deseados y cierre el cuadro de edicin pulsando RETORNO.
EIO0000000071 04/2014
Componentes de programa
EIO0000000071 04/2014
239
Componentes de programa
240
EIO0000000071 04/2014
Componentes de programa
Coleccin de imgenes
Descripcin general
La funcionalidad Coleccin de imgenes slo est disponible si se selecciona en el conjunto de
caractersticas usado actualmente (Opciones Caractersticas Conjunto predefinido de
caractersticas).
Las colecciones de imgenes son tablas que definen la ruta de archivo, una vista previa y un ID
de cadena para cada imagen. Si se especifica el ID y (para un acceso exclusivo) adicionalmente
el nombre de archivo de imagen, se puede hacer referencia a la imagen, por ejemplo, cuando se
inserta en una visualizacin (configuracin de las propiedades de un elemento de imagen;
consulte Uso de imgenes gestionadas en colecciones de imgenes (vase pgina 242)).
NOTA: Se recomienda reducir el tamao de un archivo de imagen tanto como sea posible antes
de aadirlo a una coleccin de imgenes. De lo contrario, el tamao del proyecto y la carga y
almacenamiento de las aplicaciones de visualizacin, incluidas las imgenes, pueden resultar
muy grandes.
Estructura de una coleccin de imgenes
Ejemplo de una coleccin de imgenes
Elemento
Descripcin
ID
Nombre de archivo
Imagen
EIO0000000071 04/2014
241
Componentes de programa
242
EIO0000000071 04/2014
Componentes de programa
EIO0000000071 04/2014
243
Componentes de programa
Seccin 6.4
Aplicacin
Aplicacin
Aplicacin
Descripcin general
Una aplicacin es un conjunto de objetos que se necesitan para ejecutar una instancia
determinada del programa de controlador en un dispositivo de hardware concreto (controlador).
Con esta finalidad, los objetos independientes gestionados en el nodo Global del rbol
Aplicaciones se instancian y se asignan a un dispositivo. Esto se corresponde con el concepto
de programacin orientada a objetos. Sin embargo, tambin puede utilizar las POU puramente
especficas de la aplicacin.
Una aplicacin se representa mediante un objeto de aplicacin en el rbol Aplicaciones. Debajo
de una entrada de aplicacin, inserte los objetos que definen el conjunto de recursos de la
aplicacin.
Hay una aplicacin disponible para cada controlador. No se pueden aadir ms aplicaciones.
Una parte de cada aplicacin es Configuracin de tareas, que controla la ejecucin de un
programa (instancias de POU o POU especficas de la aplicacin). Adems, puede tener
asignados objetos de recurso como listas de variables globales, entre otros. Estos, a diferencia de
los gestionados en el nodo Global del rbol Aplicaciones, solamente los puede utilizar la
aplicacin en cuestin y sus subobjetos. Para ver las reglas, consulte la descripcin de la
organizacin y configuracin de objetos en el rbol Dispositivos (vase pgina 40).
Consideraciones
Al iniciar sesin con una aplicacin en un dispositivo de destino (controlador o destino de
simulacin), se efectan dos comprobaciones: qu aplicacin est en el controlador en ese
momento? Se corresponden los parmetros de la aplicacin del controlador con los de la
aplicacin de SoMachine? Los correspondientes mensajes indican las discrepancias y ofrecen
algunas formas de continuar en este caso. Tambin tiene la posibilidad de suprimir la aplicacin
del controlador. Consulte la descripcin del comando Inicio de sesin (vase pgina 254) para
obtener ms detalles.
244
EIO0000000071 04/2014
SoMachine
Configuracin de tareas
EIO0000000071 04/2014
Captulo 7
Configuracin de tareas
Configuracin de tareas
Contenido de este captulo
Este captulo contiene los siguiente apartados:
Apartado
Pgina
Configuracin de tareas
246
Adicin de tareas
247
EIO0000000071 04/2014
245
Configuracin de tareas
Configuracin de tareas
Descripcin general
La Configuracin de tareas define 1 o varias tareas para controlar el procesamiento de un
programa de aplicacin.
Es un objeto de recurso para una aplicacin (vase pgina 244). Se tiene que insertar en el rbol
Aplicaciones bajo un nodo de aplicacin. Una tarea puede llamar a una POU de un programa
especfico de la aplicacin que est slo disponible en el rbol Aplicaciones, bajo la aplicacin.
Tambin puede llamar a un programa que se gestiona en el nodo Global del rbol Aplicaciones.
En este ltimo caso, la aplicacin instanciar el programa que est disponible a nivel global.
Puede editar una configuracin de tareas en el editor de tarea (vase pgina 453).
En la modalidad online, el editor de tarea proporciona una vista de supervisin que ofrece
informacin sobre los ciclos, tiempos de ciclo y estado de tarea.
Como funcionalidad adicional de la configuracin de tareas, la vista de supervisin, si es
compatible con el dispositivo, permite un anlisis dinmico de las POU que estn controladas por
una tarea. Proporciona informacin acerca de los tiempos de ciclo, la cantidad de llamadas de
bloques de funciones y las lneas de cdigo no utilizadas.
246
EIO0000000071 04/2014
Configuracin de tareas
Adicin de tareas
Introduccin
Puede aadir tareas a la aplicacin mediante el rbol Aplicaciones.
Procedimiento
Paso Accin
1 En el rbol Aplicaciones, seleccione el nodo Configuracin de tareas, haga clic en
el signo ms de color verde y ejecute el comando Tarea...
Como alternativa, puede hacer clic con el botn derecho en el nodo Configuracin
de tareas y seleccionar Agregar objeto Tarea... en el men contextual.
Resultado: Se abre el cuadro de dilogo Agregar tarea.
2 En el cuadro de dilogo Agregar tarea, escriba un nombre en el cuadro de texto
Nombre:.
Nota: El nombre no puede contener espacios ni tener ms de 32 caracteres.
3 Haga clic en Agregar.
EIO0000000071 04/2014
247
Configuracin de tareas
248
EIO0000000071 04/2014
SoMachine
Gestin de aplicaciones
EIO0000000071 04/2014
Captulo 8
Gestin de aplicaciones
Gestin de aplicaciones
Contenido de este captulo
Este captulo contiene las siguientes secciones:
Seccin
Apartado
Pgina
8.1
Informacin general
250
8.2
252
8.3
Ejecucin de aplicaciones
269
8.4
Mantenimiento de aplicaciones
271
EIO0000000071 04/2014
249
Gestin de aplicaciones
Seccin 8.1
Informacin general
Informacin general
Introduccin
Introduccin
Para ejecutar una aplicacin, primero es necesario conectar el PC al controlador y descargar la
aplicacin al controlador.
NOTA: Debido a la limitacin de tamao de la memoria, algunos controladores no pueden
almacenar el origen de la aplicacin, sino slo una aplicacin compilada que se ejecute. Esto
significa que no se podr cargar el origen de la aplicacin del controlador a un PC.
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
z
z
250
EIO0000000071 04/2014
Gestin de aplicaciones
Aplicacin de arranque
La aplicacin de arranque es la que se ejecuta al iniciar el controlador. Esta aplicacin se
almacena en la memoria del controlador. Para configurar la descarga de la aplicacin de arranque,
haga clic con el botn derecho en el nodo Aplicacin del rbol Aplicaciones y seleccione el
comando Propiedades.
Al final de una descarga correcta de una nueva aplicacin, aparecer un mensaje para preguntarle
si desea crear la aplicacin de arranque.
Puede crear una aplicacin de arranque manualmente de las siguientes maneras:
z En modalidad offline: Haga clic en En lnea Crear aplicacin de inicio para guardar esta
aplicacin en un archivo.
z En modalidad online, con el controlador en modalidad de detencin: Ejecute el comando
(vase SoMachine, Comandos de men, Ayuda en lnea) En lnea Crear aplicacin de
inicio para descargar la aplicacin de arranque en el controlador.
EIO0000000071 04/2014
251
Gestin de aplicaciones
Seccin 8.2
Compilacin y descarga de aplicaciones
252
Pgina
Compilar aplicaciones
253
Inicio de sesin
254
257
258
EIO0000000071 04/2014
Gestin de aplicaciones
Compilar aplicaciones
Descripcin general
SoMachine proporciona diferentes procedimientos de compilacin en el men Compilar
(vase SoMachine, Comandos de men, Ayuda en lnea). Estos procedimientos sirven para
gestionar las comprobaciones sintcticas, ya sea solamente en los objetos cambiados o en todos
los objetos de la aplicacin activa.
Puede realizar una generacin de cdigo offline para comprobar los errores de compilacin antes
de descargar el cdigo en el dispositivo. Para que el inicio de sesin sea correcto, la generacin
de cdigo debe haberse completado sin detectar errores.
Generacin de cdigo, informacin de compilacin
El cdigo mquina no se generar hasta que el proyecto Aplicacin (vase pgina 244) est
descargado en el dispositivo de destino (controlador, destino de simulacin). En cada descarga,
la informacin de compilacin, que contiene el cdigo y un ID de referencia de la aplicacin
cargada, se almacena en el directorio del proyecto en un archivo llamado <nombre de
proyecto>.<nombre de dispositivo>.<ID de aplicacin>.compileinfo. El archivo compileinfo se
elimina cuando se ejecuta el comando Limpiar o Limpiar todo.
La generacin del cdigo no se lleva a cabo cuando el proyecto se compila mediante los
comandos de compilacin (de forma predeterminada en el men Compilar). El proceso de
compilacin comprueba el proyecto para detectar si hay errores de programacin. Los errores de
programacin que se detecten se muestran en la vista Mensajes (categora de mensajes
Generacin).
Durante la generacin de cdigo, pueden detectarse y mostrarse errores adicionales. Estos
errores solamente los puede detectar el generador de cdigo o estn provocados por la
asignacin de memoria.
EIO0000000071 04/2014
253
Gestin de aplicaciones
Inicio de sesin
Descripcin general
El comando Online Inicio de sesin conecta la aplicacin al dispositivo de destino (controlador
o destino de la simulacin) y, de este modo, cambia a la modalidad online.
El mtodo abreviado predeterminado es ALT + F8.
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
z
z
Modo de Marcar
Valor predeterminado
para la versin de
SoMachine
Direccin IP
V4.0 y posteriores
Seleccin de controlador
(vase pgina 103)
ruta activa
V3.1 y anteriores
Configuracin de comunicacin
(vase pgina 120)
254
EIO0000000071 04/2014
Gestin de aplicaciones
Accin
1
Ejecute el comando Online Inicio de sesin o haga clic en el botn Inicio de sesin
en la barra de herramientas o pulse ALT + F8.
Resultado: Puesto que no se ha establecido ninguna direccin de destino antes, se abre la vista
Seleccin de controlador del editor de dispositivos. Se muestra un cuadro de mensaje que
indica que no se ha definido una direccin vlida.
2
3
Ejecute el comando Online Inicio de sesin o haga clic en el botn Inicio de sesin
en la barra de herramientas o pulse ALT + F8.
Resultado: Se muestra un cuadro de mensaje para informarle de los riesgos potenciales.
4
EIO0000000071 04/2014
Haga clic en Cancelar para anular la operacin de inicio de sesin o pulse ALT + F para
confirmar el mensaje e iniciar sesin en el controlador seleccionado.
Resultado: Si pulsa ALT + F, se establece la conexin con el controlador y se puede descargar
la aplicacin (vase pgina 258).
255
Gestin de aplicaciones
Accin
1
Ejecute el comando Online Inicio de sesin o haga clic en el botn Inicio de sesin
en la barra de herramientas o pulse ALT + F8.
Resultado: Puesto que no se ha establecido ninguna direccin de destino antes, se abre la vista
Configuracin de comunicacin del editor de dispositivos. Se muestra un cuadro de mensaje
que indica que la ruta activa no se ha establecido y que se est explorando la red.
2
3
Ejecute el comando Online Inicio de sesin o haga clic en el botn Inicio de sesin
en la barra de herramientas o pulse ALT + F8.
Resultado: Se muestra un cuadro de mensaje para informarle de los riesgos potenciales.
4
256
Haga clic en Cancelar para anular la operacin de inicio de sesin o pulse ALT + F para
confirmar el mensaje e iniciar sesin en el controlador seleccionado.
Resultado: Si pulsa ALT + F, se establece la conexin con el controlador y se puede descargar
la aplicacin (vase pgina 258).
EIO0000000071 04/2014
Gestin de aplicaciones
EIO0000000071 04/2014
257
Gestin de aplicaciones
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
z
z
258
EIO0000000071 04/2014
Gestin de aplicaciones
Aplicacin de arranque
La aplicacin de arranque es la que se ejecuta al iniciar el controlador. Esta aplicacin se
almacena en la memoria del controlador. Para configurar la descarga de la aplicacin de arranque,
haga clic con el botn derecho del ratn en el nodo Aplicacin de la vista Dispositivos y
seleccione el comando Propiedades.
Al final de una descarga correcta de una nueva aplicacin, aparecer un mensaje para preguntarle
si desea crear la aplicacin de arranque.
Puede crear una aplicacin de arranque manualmente de las siguientes maneras:
z En modalidad offline: Haga clic en En lnea Crear aplicacin de inicio para guardar la
aplicacin de arranque en un archivo.
z En modalidad online, con la aplicacin en modalidad STOP: Haga clic en En lnea Crear
aplicacin de inicio para descargar la aplicacin de arranque en el controlador.
Modalidades de funcionamiento
El mtodo de descarga variar segn la relacin entre la aplicacin cargada y la aplicacin que se
desee descargar. Los tres casos son los siguientes:
z Caso 1: La aplicacin del controlador es la misma que la que se desea cargar. En este caso,
no se produce ninguna descarga: slo se conecta SoMachine al controlador.
z Caso 2: Se han realizado modificaciones en la aplicacin que se ha cargado en el controlador
en comparacin con la aplicacin de SoMachine. En este caso, puede especificar si desea
descargar toda la aplicacin modificada o partes de esta, o bien mantenerla tal cual en el
controlador.
z Caso 3: Ya hay disponible una versin diferente o nueva de la aplicacin en el controlador. En
este caso, se le solicitar si debe sustituirse esa aplicacin.
z Caso 4: La aplicacin todava no est disponible en el controlador. En este caso, se le solicitar
que confirme la descarga.
Descarga de la aplicacin en el controlador: Caso 1
La aplicacin del controlador es la misma que la que se desea cargar. En este caso, no se produce
ninguna descarga: slo se conecta SoMachine al controlador.
Paso
Accin
EIO0000000071 04/2014
259
Gestin de aplicaciones
Accin
Iniciar sesin con modificacin en lnea Slo se volvern a cargar en el controlador las partes
modificadas de un proyecto que ya est en ejecucin.
Iniciar sesin con descarga La aplicacin modificada se vuelve a cargar por completo en el controlador.
Iniciar sesin sin modificaciones No se cargarn las modificaciones.
NOTA: Si selecciona la opcin Iniciar sesin sin modificaciones, los cambios que realice en la aplicacin
SoMachine no se descargarn en el controlador. En este caso, la barra de estado e informacin de
SoMachine mostrar EN EJECUCIN como estado operativo e indicar Programa modificado
(modificacin en lnea). Esto difiere de las opciones Iniciar sesin con modificacin en lnea o Iniciar
sesin con descarga, donde la barra de estado e informacin indica Programa inalterado.
NOTA: En este caso, la supervisin de variables es posible, pero el flujo lgico puede ser confuso, porque
los valores de las salidas del bloque de funciones pueden no coincidir con los valores de las entradas.
Ejemplos
En LD, los estados de los contactos se supervisan en funcin de las variables afectadas. Esto puede tener
como resultado que se muestre un contacto animado en azul seguido de un enlace azul (que indica el valor
TRUE, verdadero), aunque la bobina conectada a este contacto muestre que es falso. En el flujo lgico
de ST, parece que se ejecute una instruccin IF o un bucle, pero en realidad no se ejecuta porque la
expresin de la condicin es diferente en el proyecto y en el controlador.
3
NOTA: Consulte la gua de programacin del controlador para ver informacin importante sobre
seguridad relativa a la descarga de aplicaciones.
260
EIO0000000071 04/2014
Gestin de aplicaciones
Accin
2a
En caso de que el controlador no est en modalidad de ejecucin y desee cargar una aplicacin diferente
de la que se encuentra actualmente en el controlador, aparece el mensaje siguiente:
Consulte los mensajes de peligro siguientes antes de hacer clic en S para descargar la nueva aplicacin
en el controlador, o en No para cancelar la operacin.
2b
En caso de que el controlador est en modalidad de ejecucin y desee cargar una aplicacin diferente
de la que se encuentra actualmente en el controlador, aparece el mensaje siguiente:
Consulte los mensajes del compilador siguientes antes de hacer clic en S para descargar la nueva
aplicacin en el controlador, o en No para cancelar la operacin.
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Verifique que tenga la aplicacin correcta antes de confirmar la descarga.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao
al equipo.
Si hace clic en S , la aplicacin en ejecucin en el controlador se sobrescribir.
EIO0000000071 04/2014
261
Gestin de aplicaciones
Para ayudar a prevenir la prdida de informacin, cancele esta operacin haciendo clic en No y
ejecute antes el comando Carga de cdigo de origen. La aplicacin actualmente disponible en
su controlador se cargar en el PC. A continuacin, puede compararla con la que tiene previsto
descargar.
Descarga de la aplicacin en el controlador: Caso 4
La aplicacin todava no est disponible en el controlador.
Paso
Accin
En caso de que la aplicacin todava no est disponible en el controlador, se le solicitar que confirme
la descarga. Para este fin, se muestra un cuadro de dilogo con el texto siguiente:
NOTA: Consulte la gua de programacin del controlador para ver informacin importante sobre
seguridad relativa a la descarga de aplicaciones.
262
EIO0000000071 04/2014
Gestin de aplicaciones
Cambio en lnea
El comando Cambio en lnea modifica el programa de aplicacin en ejecucin y no afecta a un
proceso de reinicio:
z El cdigo del programa puede comportarse de forma distinta despus de una inicializacin
completa debido a que la mquina mantiene su estado.
z Las variables de puntero mantienen sus valores desde el ltimo ciclo. Si hay un puntero en una
variable que ha cambiado su tamao debido a un cambio en lnea, el valor dejar de ser
correcto. Verifique que las variables de puntero se vuelvan a asignar en cada ciclo.
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Pruebe minuciosamente el cdigo de la aplicacin para comprobar su correcto funcionamiento
antes de poner el sistema en funcionamiento.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao
al equipo.
NOTA: Para obtener informacin especfica, consulte el captulo sobre la descripcin de los
estados del controlador en la gua de programacin de su controlador.
Si el proyecto de aplicacin actualmente en ejecucin en el controlador se ha modificado en el
sistema de programacin desde que se descarg por ltima vez, slo se cargarn los objetos
modificados del proyecto en el controlador mientras el programa est en ejecucin.
EIO0000000071 04/2014
263
Gestin de aplicaciones
264
Elemento
Descripcin
Active esta opcin para mantener sin cambios el programa que est
en ejecucin en el controlador. Posteriormente puede realizarse una
descarga explcita, de forma que se carga el proyecto de aplicacin
completo. Tambin es posible que se le vuelva a solicitar si debe
realizarse un cambio en lnea en el siguiente inicio de sesin.
Detalles
EIO0000000071 04/2014
Gestin de aplicaciones
Para obtener ms informacin, consulte el captulo Inicio de sesin (vase pgina 254).
Si el cambio en lnea comportar cambios considerables en el cdigo de descarga, como por
ejemplo posibles desplazamientos de direcciones del puntero o redirecciones necesarias de
referencias de interfaz (vase pgina 185), se mostrar otro cuadro de mensaje despus de
confirmar el cuadro de dilogo Cambio en lnea con Aceptar, antes de realizar la descarga. Le
informa acerca de los efectos que debe tener en cuenta y proporciona la opcin de cancelar la
operacin de cambio en lnea.
EIO0000000071 04/2014
265
Gestin de aplicaciones
266
EIO0000000071 04/2014
Gestin de aplicaciones
EIO0000000071 04/2014
267
Gestin de aplicaciones
268
EIO0000000071 04/2014
Gestin de aplicaciones
Seccin 8.3
Ejecucin de aplicaciones
Ejecucin de aplicaciones
Ejecucin de aplicaciones
Introduccin
En esta parte se muestra cmo iniciar o detener una aplicacin.
RUN/STOP con SoMachine
El controlador se puede iniciar y detener mediante la ejecucin de SoMachine en un PC conectado
al controlador.
Haga clic en En lnea Inicio Aplicacin [Nombre de aplicacin: Lgica PLC] o CTRL + F5,
o bien en el botn Inicio Aplicacin [Nombre de aplicacin: Lgica Plc] de la barra de mens
para iniciar la aplicacin.
Haga clic en En lnea Parada Aplicacin [Nombre de aplicacin: Lgica PLC] o
CTRL +MAYS + F5, o bien en el botn Parada Aplicacin [Nombre de aplicacin: Lgica
Plc] de la barra de mens para detener la aplicacin.
Entrada RUN/STOP para controladores
Algunos controladores permiten configurar una entrada RUN/STOP para controlar el inicio y la
detencin de la aplicacin.
Estado
Descripcin
Flanco
ascend
ente
Inicio de la aplicacin.
EIO0000000071 04/2014
269
Gestin de aplicaciones
ADVERTENCIA
INICIO NO DESEADO DE LA MQUINA O DEL PROCESO DE ACTIVACIN
z
z
270
EIO0000000071 04/2014
Gestin de aplicaciones
Seccin 8.4
Mantenimiento de aplicaciones
Mantenimiento de aplicaciones
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
Pgina
Supervisin
272
Depuracin
273
EIO0000000071 04/2014
271
Gestin de aplicaciones
Supervisin
Descripcin general
En modalidad online, hay varias opciones para mostrar los valores actuales de los objetos del
controlador:
z
z
z
Puede ver los valores de los objetos en una pantalla de editor de programa mientras est en
modalidad online. Para obtener informacin detallada, consulte la descripcin del editor
correspondiente.
Puede ver los valores de los objetos en la vista online del editor de declaraciones. Para obtener
informacin detallada, consulte la descripcin del editor de declaraciones (vase pgina 413).
Puede ver objetos de forma independiente en listas mediante el comando Supervisar. Para
obtener informacin detallada, consulte la descripcin de la vista de supervisin/editor de lista
de supervisin (vase pgina 464). Para insertar una variable en una vista de supervisin,
seleccinela y ejecute el comando Add watchlist en el men contextual.
Puede visualizar valores mediante el muestreo de trazas: registro y visualizacin de valores de
variables desde el controlador. Para obtener informacin detallada, consulte la descripcin de
la funcionalidad de objetos de traza (vase pgina 524).
Puede ver los valores de los objetos contenidos en frmulas: conjuntos de variables definidos
por el usuario para escribir y supervisar las variables en el controlador. Consulte la descripcin
del gestor de frmulas (vase pgina 503).
272
EIO0000000071 04/2014
Gestin de aplicaciones
Depuracin
Descripcin general
Para evaluar errores de programacin potenciales, puede utilizar la funcionalidad de depuracin
en modalidad online. Tambin puede, hasta cierto punto, depurar su aplicacin en modo de
simulacin. Si bien la simulacin evita la necesidad de conectarse al hardware fsico, existen
limitaciones por las que es posible que deba llevar a cabo la depuracin en lnea.
Puede establecer puntos de interrupcin en ciertas posiciones para forzar una interrupcin de la
ejecucin. Por cada punto de interrupcin pueden establecerse ciertas condiciones, como qu
tareas se identifican y en qu ciclos debe ser efectivo el punto de interrupcin (puntos de
interrupcin condicionales). Consulte la descripcin sobre puntos de interrupcin en este captulo.
Existen funciones de ejecucin paso a paso que permiten ejecutar un programa en pasos
controlados. Consulte el prrafo Ejecucin paso a paso (vase pgina 274).
En cada interrupcin, puede examinar los valores actuales de las variables. Puede visualizar una
pila de llamadas (vase SoMachine, Comandos de men, Ayuda en lnea) para la posicin del
paso actual.
Puede activar la funcin Control de proceso para realizar el seguimiento de las partes ejecutadas
del programa de aplicacin. A diferencia de la funcin de supervisin estndar, que slo muestra
el valor de una variable entre 2 ciclos de ejecucin, Control de flujo proporciona el valor en cada
paso de ejecucin concreto, exactamente en el momento de la ejecucin.
Puntos de interrupcin
Un punto de interrupcin que se defina en un programa de aplicacin provocar una interrupcin
durante la ejecucin del programa. Slo la tarea que llegue al punto de interrupcin (en lo
sucesivo, denominada tarea de depuracin) se detendr; sin embargo, las dems se seguirn
ejecutando. Las posiciones posibles de los puntos de interrupcin dependen del editor. En cada
caso, hay un punto de interrupcin al final de una POU.
NOTA: Las E/S gestionadas por la tarea de depuracin no se actualizarn en la detencin de un
punto de interrupcin. Esto se aplica aunque la opcin Actualizar E/S en parada est activada en
la ficha Ajustes PLC del editor de dispositivos (vase pgina 134).
Consulte el captulo Comandos relacionados con los puntos de interrupcin para ver una
descripcin de los comandos relacionados con los puntos de interrupcin. El cuadro de dilogo
Puntos de interrupcin (vase SoMachine, Comandos de men, Ayuda en lnea) proporciona
una descripcin general de todos los puntos de interrupcin, lo que le permite aadir, eliminar y
modificar puntos de interrupcin.
EIO0000000071 04/2014
273
Gestin de aplicaciones
Descripcin
Punto de interrupcin activado
Punto de interrupcin desactivado
Parada en el punto de interrupcin en
modalidad online
Posicin actual del paso
Se indica con una flecha amarilla delante de
la lnea respectiva y una sombra amarilla
detrs de la operacin en cuestin.
274
EIO0000000071 04/2014
Gestin de aplicaciones
EIO0000000071 04/2014
275
Gestin de aplicaciones
276
EIO0000000071 04/2014
SoMachine
Editores de lgica
EIO0000000071 04/2014
Parte IV
Editores de lgica
Editores de lgica
Contenido de esta parte
Esta parte contiene los siguientes captulos:
Captulo
9
Pgina
Editor FBD/LD/IL
279
333
11
353
12
389
10
EIO0000000071 04/2014
277
Editores de lgica
278
EIO0000000071 04/2014
SoMachine
Editor FBD/LD/IL
EIO0000000071 04/2014
Captulo 9
Editor FBD/LD/IL
Editor FBD/LD/IL
Contenido de este captulo
Este captulo contiene las siguientes secciones:
Seccin
Apartado
Pgina
9.1
280
9.2
Elementos FBD/LD/IL
312
9.3
Elementos LD
330
EIO0000000071 04/2014
279
Editor FBD/LD/IL
Seccin 9.1
Informacin sobre el editor FBD/LD/IL
280
Pgina
Editor FBD/LD/IL
281
282
283
284
Modificadores y operadores en IL
286
289
Trabajo en el editor IL
294
301
305
306
EIO0000000071 04/2014
Editor FBD/LD/IL
Editor FBD/LD/IL
Descripcin general
Existe un editor combinado para editar las POU en los lenguajes FBD (diagrama de bloques de
funciones (vase pgina 282)), LD (diagrama de contactos (vase pgina 283)) e IL (lista de
instrucciones (vase pgina 284)).
Por lo tanto, se utiliza un conjunto comn de comandos y elementos y se efecta una conversin
interna automtica entre los 3 lenguajes. En modalidad offline, el programador puede pasar de una
vista de editor a otra (men Ver).
Tenga en cuenta que hay algunos elementos especiales que no se pueden convertir, por lo que
solamente se mostrarn en el lenguaje correspondiente. Adems, hay algunos componentes que
no se pueden convertir sin ambigedades de IL a FBD y viceversa y que, por lo tanto, se
normalizarn como FBD en la conversin; concretamente, la negacin de expresiones y las
asignaciones de salida explcita/implcita.
Puede definir el comportamiento, el aspecto y los mens del editor FBD/LD/IL en los cuadros de
dilogo Personalizar y Opciones. Tambin dispone de opciones para definir la visualizacin de
comentarios y direcciones.
El editor se abre en una ventana doble. Cuando se edita un objeto programado en FBD/LD/IL, la
parte superior contiene un editor de declaraciones (vase pgina 414) y la parte inferior contiene
el rea de codificacin.
El lenguaje de programacin para un objeto nuevo se especifica al crear el objeto.
Para obtener ms informacin, consulte:
Trabajo en el editor FBD y LD (vase pgina 289)
z Trabajo en la vista del editor IL (vase pgina 294)
z
EIO0000000071 04/2014
281
Editor FBD/LD/IL
282
EIO0000000071 04/2014
Editor FBD/LD/IL
EIO0000000071 04/2014
283
Editor FBD/LD/IL
284
EIO0000000071 04/2014
Editor FBD/LD/IL
Ejemplo
PROGRAM IL
VAR
inst1: TON;
dwVar: DWORD;
dwRes: DWORD;
t1:
TIME;
tout1: TIME;
inst2: TON;
bVar: BOOL;
END_VAR
LD
bVar
ST
inst1.IN
JMPC
ml
CAL
inst1(
PT:=t1,
ET:=>tout1)
LD
inst1.Q
ST
inst2.IN
ml:
LD
dwVar
ADD
230
ST
dwRes
variable
starts timer with risin...
EIO0000000071 04/2014
285
Editor FBD/LD/IL
Modificadores y operadores en IL
Modificadores
Puede utilizar los siguientes modificadores en Lista de instrucciones (vase pgina 284).
C
Operadores
En la siguiente tabla se muestran los operadores que se pueden utilizar en combinacin con los
modificadores especificados.
El acumulador guarda el valor actual, resultante de la operacin anterior.
286
Operador
Modificadores
Significado
Ejemplo
LD
ST
S bVar1
R bVar1
AND
N,(
AND bVar2
OR
N,(
OR xVar
XOR
N,(
XOR N, (bVar
1,bVar2)
NOT
ADD
ADD
(iVar1
,iVar2)
SUB
SUB iVar2
EIO0000000071 04/2014
Editor FBD/LD/IL
Operador
Modificadores
Significado
Ejemplo
MUL
Multiplicacin de acumulador y
operando; el resultado se copia en el
acumulador.
MUL iVar2
DIV
DIV 44
GT
GT 23
GE
GE iVar2
EQ
EQ iVar2
NE
LE
LE 5
LT
LT cVar1
JMP
CN
JMPN next
CAL
CN
CAL prog1
RET
RET
RET
RET
CN
RETCN
287
Editor FBD/LD/IL
Ejemplo
Programa IL de ejemplo con diversos modificadores:
LD
ANDN
JMPC
LDN
ST
m1:
LD
ST
288
TRUE
bVar1
m1
bVar2
bRes
bVar2
bRes
EIO0000000071 04/2014
Editor FBD/LD/IL
EIO0000000071 04/2014
289
Editor FBD/LD/IL
Los comandos para trabajar en el editor estn disponibles de forma predeterminada en el men
IL, FBD, LD (vase pgina 305). Los comandos de uso frecuente tambin estn disponibles en
el men contextual. Los elementos que se puedan insertar a travs del comando de men
depende de la posicin actual del cursor o de la seleccin actual (se puede utilizar la
multiseleccin, consulte Seleccin (vase pgina 291) ms adelante).
Tambin puede arrastrar elementos con el ratn desde las herramientas (vase pgina 313)
hasta la ventana del editor o desde una posicin dentro del editor hasta otra (arrastrar y soltar).
Para ello, seleccione el elemento que se va a arrastrar con un clic del ratn, mantenga pulsado
el botn del ratn y arrastre el elemento a la red correspondiente en la vista del editor. En
cuanto llegue a la red, todas las posiciones de insercin posibles para el tipo de elemento
correspondiente se indicarn mediante marcadores de posicin de color gris. Cuando mueva
el cursor del ratn a una de estas posiciones, el marcador se volver de color verde y podr
soltar el botn del ratn para insertar el elemento en esa posicin.
z
z
290
Puede utilizar los comandos para cortar, copiar, pegar y eliminar disponibles en el men Editar
para organizar los elementos. Tambin puede copiar un elemento mediante el mtodo de
arrastrar y soltar: seleccione el elemento en una red con un clic del ratn, pulse la tecla CTRL
y, mientras mantiene pulsados el botn del ratn y la tecla, arrastre el elemento a la posicin
de destino. En cuanto se llegue a ella (marcador de posicin de color verde), se aadir un
signo ms al smbolo del cursor. Luego, suelte el botn del ratn para insertar el elemento.
Para ver las posiciones posibles del cursor, consulte Posiciones de cursor en FBD, LD e IL
(vase pgina 301).
La insercin de mdulos EN/ENO se gestiona de forma distinta en el editor FBD y LD.
Consulte la descripcin del comando Insertar llamada de mdulo para obtener ms
informacin (la insercin de mdulos EN/ENO no se admite en el editor IL).
EIO0000000071 04/2014
Editor FBD/LD/IL
Desplazamiento en el editor
z
z
z
z
z
z
z
Puede utilizar las teclas de flecha para ir a la posicin del cursor (vase pgina 301) siguiente
o anterior. Esto tambin se puede hacer entre redes. El desplazamiento con las teclas y
sigue el flujo de la seal, que suele ir de izquierda a derecha y viceversa. En el caso de los
saltos de lnea, la posicin actual del cursor tambin se puede dejar bajo la posicin que est
marcada en ese momento. Si pulsa la tecla o , la seleccin pasa al elemento siguiente que
est por encima o por debajo de la posicin actual si este elemento est en el mismo grupo
lgico (por ejemplo, un pin de un mdulo). Si no existe un grupo de este tipo, pasa al elemento
contiguo ms cercano por encima o por debajo. El desplazamiento por los elementos
conectados en paralelo se efecta en la primera derivacin.
Pulse la tecla Inicio para ir al primer elemento. Pulse la tecla FIN para ir al ltimo elemento de
la red.
Utilice la tecla TAB para ir a la posicin del cursor (vase pgina 301) anterior o siguiente
dentro de una red.
Pulse CTRL + INICIO para desplazarse al principio del documento y marcar la primera red.
Pulse CTRL + FIN para desplazarse al final del documento y marcar la ltima red.
Pulse RE PG para desplazarse 1 pantalla hacia arriba y marcar el rectngulo que est ms
arriba.
Pulse AV PG para desplazarse 1 pantalla hacia abajo y marcar el rectngulo que est ms
arriba.
Seleccin
z
Puede seleccionar un elemento, incluida una red, tomando la posicin del cursor correspondiente con un clic del ratn o con las teclas de flecha o TAB. Los elementos seleccionados
estarn sombreados en rojo. Consulte tambin Posiciones de cursor en FBD, LD e IL
(vase pgina 301).
En el editor LD, tambin puede seleccionar las lneas entre los elementos para ejecutar
comandos; por ejemplo, para insertar otro elemento en esa posicin.
Se puede efectuar una seleccin mltiple de elementos o redes; para ello, mantenga pulsada
la tecla CTRL mientras selecciona los elementos que desee uno tras otro.
EIO0000000071 04/2014
291
Editor FBD/LD/IL
292
EIO0000000071 04/2014
Editor FBD/LD/IL
Editor LD
EIO0000000071 04/2014
293
Editor FBD/LD/IL
Trabajo en el editor IL
Descripcin general
El editor Lista de instrucciones (vase pgina 284) (IL) es un editor de tablas. La estructura de red
de los programas FBD o LD tambin se representa en un programa IL. Bsicamente, una red
(vase pgina 315) es suficiente en un programa IL, pero teniendo en cuenta el cambio entre FBD,
LD e IL tambin puede utilizar redes para la estructuracin de un programa IL.
Consulte tambin la configuracin general del editor en el cuadro de dilogo Opciones, categora
IL, FBD, LD.
Informacin sobre herramientas
La informacin sobre herramientas contiene informacin sobre las variables o los parmetros del
mdulo.
Consulte Trabajo en el editor FBD y LD (vase pgina 289).
Insercin y organizacin de los elementos
z
z
z
z
z
Los comandos para trabajar en el editor estn disponibles en el men IL, FBD, LD. Los
comandos de uso frecuente tambin estn disponibles en el men contextual.
Las unidades de programacin que sean elementos se insertan cada una en la posicin actual
del cursor a travs de los comandos Insertar, disponibles en el men IL, FBD, LD.
Puede utilizar los comandos cortar, copiar, pegar y eliminar disponibles en el men Editar, para
organizar los elementos.
Consulte tambin algo de informacin sobre el lenguaje de programacin Lista de instrucciones
- IL (vase pgina 284).
Los operadores con funcionalidad EN/ENO slo se pueden insertar dentro del editor FBD y LD.
En este captulo se describe cmo se estructura el editor de tablas, cmo se puede navegar en el
editor y cmo utilizar operandos complejos, llamadas y saltos.
294
EIO0000000071 04/2014
Editor FBD/LD/IL
Cada lnea de programa est escrita en una fila de la tabla, estructurada en campos por las
columnas de la tabla:
Columna Contiene...
Descripcin
operador
operando
EIO0000000071 04/2014
295
Editor FBD/LD/IL
Columna Contiene...
Descripcin
direccin
comentario de
smbolo
comentario de
operandos
Navegacin en la tabla
z
z
z
z
z
z
z
z
z
z
z
296
Teclas de flecha ARRIBA y ABAJO: desplazamiento al campo por encima o por debajo.
TAB: desplazamiento dentro de una lnea al campo de la derecha.
MAYS+TAB: desplazamiento dentro de una lnea al campo de la izquierda.
ESPACIO: abre el campo seleccionado para su edicin. Como alternativa, realiza una
pulsacin del ratn sobre el campo. Si procede, el asistente Accesibilidad estar disponible a
travs del botn ... Puede cerrar un campo de edicin abierto presionando INTRO, lo que
confirma las entradas actuales, o presionando ESC para cancelar las entradas realizadas.
CTRL+INTRO: introduce una nueva lnea debajo de la actual.
SUPR: borra la lnea actual, o sea, donde haya seleccionado actualmente cualquier campo.
Cortar, Copiar, Pegar: para copiar 1 o varias lneas, seleccione al menos 1 campo de la lnea
o lneas y ejecute el comando Copiar. Para cortar una lnea, utilice el comando Cortar. Pegar
insertar las lneas copiadas o cortadas previamente antes de la lnea donde actualmente se
ha seleccionado un campo. Si no se ha seleccionado ningn campo, se insertarn en el
extremo de la red.
CTRL+INICIO desplaza hasta el principio del documento y marca la primera red.
CTRL+FIN desplaza hasta el final del documento y marca la ltima red.
RE PG desplaza hacia arriba 1 pantalla y marca el rectngulo superior.
AV PG desplaza hacia abajo 1 pantalla y marca el rectngulo superior.
EIO0000000071 04/2014
Editor FBD/LD/IL
EIO0000000071 04/2014
stRotate
stRotate
1
stRotate
1
stRotate
297
Editor FBD/LD/IL
Llamadas a funciones
Introduzca el nombre de la funcin en el campo del operador. Proporcione el parmetro de entrada
(primero) como operando en una operacin LD precedente. Si hay ms parmetros, proporcione
el siguiente en la misma lnea de la del nombre de la funcin. Puede aadir ms parmetros en
esta lnea, separados por comas o en lneas posteriores.
El valor de retorno de la funcin se almacenar en el acumulador. Se aplica la siguiente restriccin
relativa a la norma IEC.
NOTA: No es posible una llamada de funcin con varios valores de retorno. Slo se puede utilizar
1 valor de retorno para una operacin subsiguiente.
Ejemplo: Se llama a la funcin GeomAverage, que tiene 3 parmetros de entrada. El primer
parmetro es dado por X7 en una operacin precedente. El segundo, 25, es dado por el nombre
de la funcin. El tercero es dado por la variable tvar, en la misma lnea o en la posterior. El valor
de retorno se asigna a la variable Ave.
Cdigo ST correspondiente:
Ave := GeomAverage(X7, 25, tvar);
Llamada de funcin en IL:
LD
GeomAverage
ST
X7
25
tvar
Ave
EIO0000000071 04/2014
Editor FBD/LD/IL
EIO0000000071 04/2014
Inst.ResetAction()
299
Editor FBD/LD/IL
Llamada de mtodo
Para realizarse como una llamada de funcin, el nombre de la instancia con el nombre de mtodo
anexado se introducir en la primera columna (operador).
Ejemplo: Llamada de mtodo Home.
Cdigo ST correspondiente:
Z := IHome.Home(TRUE, TRUE, TRUE);
Llamada de mtodo en IL:
LD
IHome.Home
ST
TRUE
TRUE
TRUE
Z
Salto
Un salto (vase pgina 318) se programa con JMP en la primera columna (operador) y un nombre
de etiqueta en la segunda columna (operando). La etiqueta se ha de definir en la red de destino
en el campo etiqueta (vase pgina 319).
La lista de instrucciones que precede al salto incondicional tiene que terminar con uno de los
siguientes comandos: ST, STN, S, R, CAL, RET u otro JMP.
Este no es el caso de un salto condicional (vase pgina 318). La ejecucin del salto depende del
valor cargado.
Ejemplo: Instruccin de salto condicional; en caso de que bCallRestAction sea TRUE, el
programa debe saltar a la red marcada con Cont.
Instruccin de salto condicional en IL:
LDN
JMPC
300
bCallResetAction
Cont
EIO0000000071 04/2014
Editor FBD/LD/IL
En la imagen de la izquierda, las posibles posiciones del cursor estn marcadas por un marco rojo.
La imagen de la derecha muestra un mdulo con el cursor colocado en el campo AND. Tenga en
cuenta la posibilidad de introducir direcciones en lugar de nombres de variables si est
configurada adecuadamente en el cuadro de dilogo Opcionesdel editor FBD, LD e IL.
(2) En cada entrada:
EIO0000000071 04/2014
301
Editor FBD/LD/IL
(5) Justo antes de una bifurcacin sobre una asignacin antes de un salto o una instruccin de
retorno:
(6) En la posicin ms a la derecha del cursor en la red o en cualquier parte de la red fuera de las
otras posiciones del cursor. Esto seleccionar toda la red:
302
EIO0000000071 04/2014
Editor FBD/LD/IL
EIO0000000071 04/2014
303
Editor FBD/LD/IL
Puede aadir nuevas redes en el lado ms a la izquierda del editor. La insercin de una nueva red
antes de una red existente slo es posible antes de la red 1.
(15) Al principio o al final de una red:
Puede aadir contactos y bloques de funciones al principio de una red en el campo Comenzar
aqu. Puede aadir los elementos retorno, salto y bobina al final de una red en el campo Insertar
salida o salto aqu.
304
EIO0000000071 04/2014
Editor FBD/LD/IL
z
z
Para obtener una descripcin de los comandos, consulte el captulo Comandos del editor
FBD/LD/IL.
Para obtener la configuracin del men, consulte la descripcin del men Personalizar.
EIO0000000071 04/2014
305
Editor FBD/LD/IL
Supervisin
Si la supervisin en lnea no se desactiva explcitamente en el cuadro de dilogo Opciones, se
complementar en el editor FBD o LD con pequeas ventanas de supervisin detrs de cada
variable o mediante una columna de supervisin adicional que muestra los valores reales
(supervisin en lnea). Esto es as incluso para entradas y salidas de bloques de funciones sin
asignar.
La ventana de supervisin en lnea de una variable muestra un pequeo tringulo rojo en la
esquina superior izquierda si la variable est forzada (vase pgina 309) actualmente y un
tringulo azul en la esquina inferior izquierda si est preparada actualmente para la escritura o el
forzado. En LD para contactos y bobinas, el valor preparado actualmente (TRUE o FALSE)
aparecer justo debajo del elemento.
Ejemplo de una variable que est actualmente forzada y preparada para suprimir el forzado
Ejemplo de variable de contacto preparada actualmente para la escritura o el forzado con el valor
TRUE
306
EIO0000000071 04/2014
Editor FBD/LD/IL
EIO0000000071 04/2014
307
Editor FBD/LD/IL
Abra una funcin haciendo doble clic o ejecute el comando Examinar - Ir a la definicin en el
men contextual. Consulte la descripcin de la Interfaz de usuario en modalidad online
(vase pgina 49) para obtener ms informacin.
308
EIO0000000071 04/2014
Editor FBD/LD/IL
Forzado/escritura de variables
En la modalidad online, puede preparar un valor para forzar o escribir una variable en el editor de
declaraciones (vase pgina 419) o dentro del editor. Haga doble clic en una variable en el editor
para abrir el cuadro de dilogo siguiente:
Cuadro de dilogo Preparar valor
EIO0000000071 04/2014
309
Editor FBD/LD/IL
1
2
310
Editor FBD/LD/IL
Cuando se llegue a una posicin de punto de interrupcin durante la ejecucin paso a paso o el
procesamiento del programa, se mostrar una flecha amarilla en el smbolo del punto de
interrupcin y el rea sombreada en rojo pasar a ser amarilla.
Posiciones de parada mostradas en FBD
EIO0000000071 04/2014
311
Editor FBD/LD/IL
Seccin 9.2
Elementos FBD/LD/IL
Elementos FBD/LD/IL
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
312
Pgina
Herramientas FBD/LD/IL
313
Red en FBD/LD/IL
315
Asignacin en FBD/LD/IL
317
Salto en FBD/LD/IL
318
Etiqueta en FBD/LD/IL
319
Mdulos en FBD/LD/IL
320
321
322
Bifurcacin simultnea
325
Set/Reset en FBD/LD/IL
328
Bobina Set/Reset
329
EIO0000000071 04/2014
Editor FBD/LD/IL
Herramientas FBD/LD/IL
Descripcin general
El editor FBD/LD/IL (vase pgina 281) proporciona herramientas que ofrecen elementos de
programacin para su insercin en la ventana del editor mediante el mtodo de arrastrar y soltar.
Abra las herramientas ejecutando el comando Herramientas que est en el men Visualizar.
Los elementos disponibles para insertar dependern de la vista de editor activa actualmente
(consulte la descripcin correspondiente de los comandos de insercin).
Los elementos se clasifican en categoras: General (elementos generales como Red,
Asignacin, etc.), Operadores lgicos, Operadores matemticos, Otros operadores (por
ejemplo, SEL, MUX, LIMIT y MOVE), Bloques de funciones (por ejemplo,
R_TRIG, F_TRIG, RS, SR, TON, TOF, CTD, CTU), Elementos de diagrama de
contactos y POU (definido por el usuario).
La categora POU muestra todas las POU que se han definido bajo la misma aplicacin que el
objeto FBD/LD/IL, que est abierto en el editor. Si se ha asignado un mapa de bits a una POU en
sus propiedades, se mostrar delante del nombre de POU. En caso contrario, se utilizar el icono
estndar para indicar el tipo de POU. La lista se actualizar automticamente cuando se aadan
o eliminen POU de la aplicacin.
La categora Otros operadores contiene entre los operadores SEL, MUX, LIMIT y MOVE un
elemento de conversin de marcadores de posicin. Puede arrastrar este elemento y colocarlo en
la posicin apropiada de la red. El tipo de conversin se establece automticamente en funcin
del tipo necesario de la posicin de insercin. Sin embargo, en algunas situaciones no se puede
determinar automticamente el tipo de conversin necesario. En este caso, cambie manualmente
el elemento.
Para desplegar las carpetas de categoras, haga clic en el botn que muestra el nombre de
categora respectivo. Como se puede ver en la imagen siguiente, la categora General est
desplegada, mientras que las dems estn contradas. En la imagen se muestra un ejemplo de
insercin de un elemento Asignacin mediante el mtodo de arrastrar y soltar desde las
herramientas.
Slo la seccin General de las herramientas est desplegada:
EIO0000000071 04/2014
313
Editor FBD/LD/IL
Para insertar un elemento en el editor, seleccinelo en las herramientas haciendo clic en l con el
ratn y, a continuacin, arrstrelo y sultelo en la ventana del editor. Las posibles posiciones de
insercin se indicarn mediante marcadores de posicin, que aparecen mientras se dibuje el
elemento (con el botn del ratn presionado) en la ventana del editor. Las posiciones posibles ms
cercanas se indicarn en verde. Al soltar el botn del ratn, el elemento se insertar en la posicin
verde.
Si arrastra un elemento de mdulo a un elemento de mdulo existente, el nuevo sustituir al
antiguo. Si ya se han asignado entradas y salidas, permanecern segn se han definido, pero no
se conectarn al nuevo mdulo.
314
EIO0000000071 04/2014
Editor FBD/LD/IL
Red en FBD/LD/IL
Descripcin general
Una red es la entidad bsica de un programa FBD (vase pgina 282) o LD (vase pgina 283).
En el editor FBD/LD, las redes se muestran en una lista vertical. Cada red est indicada en el lado
izquierdo con un nmero de red de serie y tiene una estructura que consta de una expresin lgica
o aritmtica, un programa, funcin o llamada de bloque de funciones y, en algunos casos,
instrucciones de retorno o salto.
El Editor IL (vase pgina 284), dada la base de editor comn con los editores FBD y LD, tambin
utiliza el elemento de red. Si un objeto inicialmente se program en FBD o LD y posteriormente se
convirti a IL, las redes seguirn estando presentes en el programa IL. Por el contrario, si empez
programando un objeto en IL, necesitar como mnimo 1 elemento de red que pueda contener
todas las instrucciones, pero tambin puede utilizar redes adicionales para estructurar el
programa.
Opcionalmente, se puede asignar un ttulo, un comentario y una etiqueta (vase pgina 319) a
una red.
Puede activar o desactivar la disponibilidad de los campos de ttulo y comentario en el cuadro de
dilogo de opciones del editor FBD, LD e IL. Si la opcin est activada, haga clic en la red justo
debajo del borde superior para abrir un campo de edicin para el ttulo. Asimismo, para introducir
un comentario, abra un campo de edicin directamente debajo del campo de ttulo. El comentario
puede tener varias lneas. Pulse INTRO para insertar saltos de lnea. Pulse CTRL + INTRO para
finalizar la introduccin del texto del comentario.
La visualizacin o no de un comentario de red y la forma en que se muestra en el editor se define
en el cuadro de dilogo de opciones del editor FBD, LD e IL.
Para aadir una etiqueta (vase pgina 319) y asignarle un salto (vase pgina 318), utilice el
comando Insertar etiqueta. Si se define una etiqueta, se mostrar debajo del campo de ttulo y
comentario. Y si estos campos no estn disponibles, directamente debajo del borde superior de la
red.
EIO0000000071 04/2014
315
Editor FBD/LD/IL
Puede establecer una red como comentario. Esto indica que la red no se procesa, sino que se
muestra y se gestiona como un comentario. Para ello, utilice el comando Conectar/desconectar
comentarios.
En una red seleccionada actualmente (posicin del cursor 6 (vase pgina 301)), puede aplicar
los comandos predeterminados para copiar, cortar, insertar y eliminar.
NOTA: Al hacer clic con el botn derecho (posicin del cursor 6 (vase pgina 301)) en ttulos,
comentarios o etiquetas, se seleccionar nicamente esa entrada en lugar de toda la red. De este
modo, la ejecucin de los comandos predeterminados no afecta a la red.
Para insertar una red, utilice el comando Insertar red o arrstrela desde las herramientas
(vase pgina 313). Una red, junto con todos sus elementos, tambin se puede copiar o mover
(vase pgina 289) mediante el mtodo de arrastrar y soltar en el editor.
Tambin puede crear subredes (vase pgina 322) insertando bifurcaciones.
Red RET
En la modalidad online, se mostrar una red vaca adicional debajo de las redes existentes. En
lugar de tener asignado un nmero de red, se identifica mediante RET.
Representa la posicin en la que la ejecucin regresar a la POU de llamada y proporciona una
posicin de parada (vase pgina 306) posible.
316
EIO0000000071 04/2014
Editor FBD/LD/IL
Asignacin en FBD/LD/IL
Descripcin general
En funcin de la posicin del cursor (vase pgina 301) seleccionada en FBD o en LD, se
insertar una asignacin directamente delante de la entrada seleccionada (posicin del cursor 2
(vase pgina 301)), directamente despus de la salida seleccionada (posicin del cursor 4
(vase pgina 301)) o al final de la red (posicin del cursor 6 (vase pgina 301)). En una red LD,
la asignacin se mostrar como una bobina (vase pgina 332). Como alternativa, puede
arrastrar el elemento de asignacin desde las herramientas (vase pgina 313) o bien utilizar el
mtodo de arrastrar y soltar para copiarlo o moverlo (vase pgina 289) a la vista del editor.
Tras la insercin, la cadena de texto ??? puede sustituirse por el nombre de la variable que se va
a asignar. Para ello, utilice el botn ... para abrir el asistente Accesibilidad.
En IL (vase pgina 284), las asignaciones se programan mediante instrucciones LD y ST.
Consulte Modificadores y operadores en IL (vase pgina 286).
EIO0000000071 04/2014
317
Editor FBD/LD/IL
Salto en FBD/LD/IL
Descripcin general
En funcin de la posicin del cursor (vase pgina 301) seleccionada en FBD (vase pgina 282)
o en LD (vase pgina 283), se insertar un salto directamente delante de la entrada seleccionada
(posicin del cursor 2), directamente despus de la salida seleccionada (posicin del cursor 4) o
al final de la red (posicin del cursor 6). Como alternativa, puede arrastrar el elemento de salto
desde las herramientas (vase pgina 313) o bien utilizar el mtodo de arrastrar y soltar para
copiarlo o moverlo (vase pgina 289) al editor.
Tras la insercin, puede sustituir el texto ??? introducido automticamente por la etiqueta a la cual
debe asignarse el salto.
En IL (vase pgina 284), el salto se inserta mediante una instruccin JMP. En este contexto,
consulte la descripcin de los modificadores y operadores en IL (vase pgina 286).
318
EIO0000000071 04/2014
Editor FBD/LD/IL
Etiqueta en FBD/LD/IL
Descripcin general
Debajo del campo de comentario de red, cada red FBD (vase pgina 282), LD
(vase pgina 283) o IL tiene un campo de entrada de texto para definir una etiqueta. La etiqueta
es un identificador opcional de la red y se puede direccionar cuando se define un salto
(vase pgina 318). Puede estar formada por una secuencia de caracteres cualquiera.
Posicin de una etiqueta en una red
EIO0000000071 04/2014
319
Editor FBD/LD/IL
Mdulos en FBD/LD/IL
Descripcin general
Un mdulo, que se puede insertar en una red FBD (vase pgina 282), LD (vase pgina 283) o
IL (vase pgina 284), es un elemento complejo y puede representar funciones adicionales como
temporizadores, contadores, operaciones aritmticas o tambin programas, funciones IEC y
bloques de funciones IEC.
Un mdulo puede tener una o varias entradas y salidas; lo puede proporcionar una biblioteca del
sistema o se puede programar. Sin embargo, al menos 1 entrada y 1 salida deben asignarse a
valores booleanos.
Si se proporciona con el mdulo respectivo y si la opcin Mostrar smbolo de mdulo est
activada, se mostrar un icono dentro del mdulo.
Uso en FBD, LD
Puede colocar un mdulo en una red LD o en una red FBD mediante el comando Insertar llamada
de mdulo, Insertar mdulo vaco. Como alternativa, puede insertarlo desde el cuadro de
herramientas (vase pgina 313) o bien copiarlo o moverlo dentro del editor mediante la accin
de arrastrar y soltar. Para obtener ms informacin, consulte la descripcin del comando Insertar
llamada de mdulo.
Uso en IL
En un programa IL (vase pgina 284), se insertar una instruccin CAL (vase pgina 286) con
parmetros para representar un elemento de mdulo.
Puede actualizar los parmetros del mdulo (entradas, salidas), en caso de que la interfaz de
mdulo se haya modificado, con la implementacin actual sin tener que volver a insertar el
mdulo; para ello, ejecute el comando Actualizar parmetros.
320
EIO0000000071 04/2014
Editor FBD/LD/IL
En IL, la instruccin RET (vase pgina 286) se usa para el mismo fin.
EIO0000000071 04/2014
321
Editor FBD/LD/IL
En FBD, inserte una bifurcacin mediante el comando Insertar rama. Como alternativa, arrastre
el elemento desde las herramientas (vase pgina 313). Sobre las posibles posiciones de
insercin, consulte la descripcin del comando Insertar rama.
NOTA: En las subredes no puede utilizarse el mtodo de cortar y pegar.
En el ejemplo siguiente, se ha insertado una bifurcacin en la salida del mdulo SUB. Esta accin
ha creado dos subredes, y cada una se puede seleccionar mediante su marcador de subred.
Despus, se aadi un mdulo ADD en cada subred.
322
EIO0000000071 04/2014
Editor FBD/LD/IL
Para eliminar una subred, quite primero todos los elementos de la subred, es decir, todos los
elementos que estn situados a la derecha del marcador de la subred. A continuacin, seleccione
el marcador y ejecute el comando Eliminar estndar o pulse la tecla SUPR.
En la imagen siguiente, el elemento OR de 3 entradas tiene que borrarse primero para que pueda
seleccionar y eliminar el marcador de la subred inferior.
EIO0000000071 04/2014
323
Editor FBD/LD/IL
324
EIO0000000071 04/2014
Editor FBD/LD/IL
Bifurcacin simultnea
Descripcin general
Una bifurcacin simultnea le permite implementar una evaluacin paralela de los elementos
lgicos. Esto se lleva a cabo mediante una metodologa descrita como evaluacin de cortocircuitos (SCE). SCE le permite eludir la ejecucin de un bloque de funciones con una salida
booleana si determinadas condiciones paralelas se evalan como verdaderas. La condicin
puede representarse en el editor LD mediante una bifurcacin paralela a la rama del bloque de
funciones. La condicin SCE se define mediante 1 o varios contactos con esta bifurcacin,
conectados en paralelo o en serie.
NOTA: El trmino rama tambin se utiliza para otro elemento que divide el flujo de una seal. Esta
rama (vase pgina 322), a diferencia de la bifurcacin paralela, no tiene un punto de unin.
La bifurcacin paralela funciona como sigue: primero se analizan las ramas que no contienen un
bloque de funciones. Si 1 de estas ramas se evala como verdadera, no se invocar el bloque de
funciones de la bifurcacin paralela y el valor de la entrada de la rama del bloque de funciones se
pasar a la salida. Si la condicin de SCE se evala como falsa, se invocar el bloque de
funciones y se pasar el resultado booleano de la llamada de ejecucin del bloque de funciones.
Si todas las ramas contienen bloques de funciones, se evaluarn de arriba abajo y sus salidas se
combinarn con operaciones lgicas OR. Si no hay ramas que contengan una llamada a bloques
de funciones, se realizar la operacin OR normal.
Para insertar una bifurcacin paralela con la funcin SCE, seleccione el mdulo del bloque de
funciones y ejecute el comando Insertar contacto paralelo (por encima) o Insertar contacto
paralelo (por debajo). Esto slo es posible si la primera entrada y la salida principal del bloque
de funciones son de tipo BOOL.
A continuacin, se muestra un ejemplo del modelo de lenguaje generado para la red en cuestin.
EIO0000000071 04/2014
325
Editor FBD/LD/IL
Ejemplo de SCE
La instancia del bloque de funciones x1 (TON) tiene una entrada booleana y una salida booleana.
Esta ejecucin puede omitirse si la condicin de la bifurcacin paralela se evala como verdadera.
El valor de esta condicin es el resultado de las operaciones OR y AND que conectan los contactos
cond1, cond2 y cond3.
Bifurcacin paralela para SCE en una red de contactos
326
EIO0000000071 04/2014
Editor FBD/LD/IL
EIO0000000071 04/2014
327
Editor FBD/LD/IL
Set/Reset en FBD/LD/IL
FBD y LD
Se puede establecer o restablecer una salida booleana en FBD (vase pgina 282) o, correspondientemente, a una bobina LD (vase pgina 283). Para cambiar entre los estados establecidos,
utilice el comando respectivo Set/Reset en el men contextual cuando se selecciona la salida. La
salida o bobina estar marcada por una S o una R.
Set
Si el valor TRUE llega a una salida o bobina Set, esta salida o bobina se
convertir en TRUE y permanecer as. Este valor no se puede sobrescribir en
esta posicin mientras la aplicacin est en ejecucin.
Restablec Si el valor TRUE llega a una salida o bobina Reset, esta salida o bobina se
er
convertir en FALSE y permanecer as. Este valor no se puede sobrescribir en
esta posicin mientras la aplicacin est en ejecucin.
En el editor LD, puede insertar bobinas Set y Reset mediante el mtodo de arrastrar y soltar. Para
realizar esta accin, utilice Herramientas, categora Elemento de diagrama de contactos, o los
elementos S y R de la barra de herramientas.
Ejemplo:
Bobina Set, bobina Reset
328
EIO0000000071 04/2014
Editor FBD/LD/IL
Bobina Set/Reset
Descripcin general
Las bobinas (vase pgina 332) tambin pueden definirse como bobinas Set o Reset.
Puede reconocer una bobina Set por la S que se incluye en el smbolo de la bobina: (S). Una
bobina Set no sobrescribir el valor TRUE de la variable booleana adecuada. Es decir, una vez
que la variable se ha establecido en TRUE, permanece en TRUE.
Puede reconocer una bobina Reset por la R que se incluye en el smbolo de la bobina: (R). Una
bobina Reset no sobrescribir el valor FALSE de la variable booleana adecuada. Es decir, una vez
que la variable se ha establecido en FALSE, permanece en FALSE.
En el editor LD, se pueden insertar bobinas Set y Reset directamente mediante el mtodo de
arrastrar y soltar desde Herramientas, categora Elemento de diagrama de contactos.
Bobina Set, bobina Reset
EIO0000000071 04/2014
329
Editor FBD/LD/IL
Seccin 9.3
Elementos LD
Elementos LD
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
330
Pgina
Contacto
331
Bobina
332
EIO0000000071 04/2014
Editor FBD/LD/IL
Contacto
Descripcin general
Este es un elemento LD.
En la parte izquierda de LD (vase pgina 283), cada red contiene 1 o varios contactos. Los
contactos se representan con 2 lneas paralelas y verticales.
Un contacto negado transmite la condicin entrante (TRUE o FALSE) slo si la variable booleana
asignada es FALSE.
Puede insertar un contacto en una red LD mediante uno de los comandos Insertar contacto,
Insertar contacto (a la derecha), Insertar contacto paralelo (por encima), Insertar contacto
paralelo (por debajo), Insertar contacto de flanco ascendente o Insertar contacto de flanco
descendente que forman parte del men LD. Como alternativa, puede insertar el elemento
mediante el mtodo de arrastrar y soltar desde Herramientas (vase pgina 313) o desde otra
posicin del editor (arrastrar y soltar).
FBD e IL
Si est trabajando en la vista FBD (vase pgina 282) o IL (vase pgina 284), el comando no
estar disponible. Sin embargo, los contactos y bobinas insertados en una red LD se
representarn con los elementos FBD o instrucciones IL correspondientes.
EIO0000000071 04/2014
331
Editor FBD/LD/IL
Bobina
Descripcin general
Este es un elemento LD.
En el lado derecho de una red LD, puede haber cualquier nmero de bobinas que estn
representadas por parntesis.
Slo se pueden disponer en paralelo. Una bobina transmite el valor de las conexiones de izquierda
a derecha y lo copia en una variable booleana adecuada. En la lnea de entrada, el valor ON
(TRUE) o el valor OFF (FALSE) pueden estar presentes.
Las bobinas tambin pueden ser negadas. Esto se indica mediante la barra inclinada que aparece
en el smbolo de la bobina.
En este caso, el valor negado de la seal de entrada se copiar en la variable booleana adecuada.
Puede insertar una bobina en una red mediante uno de los comandos Insertar bobina, Inserta
bobina Set, Insertar bobina Reset o Insertar bobina negada del men LD. Como alternativa,
puede insertar el elemento mediante el mtodo de arrastrar y soltar desde Herramientas
(Elemento de diagrama de contactos) o a travs del mtodo de arrastrar y soltar desde otra
posicin dentro del editor. Asimismo, consulte Bobina Set/Reset (vase pgina 329).
FBD e IL
Si est trabajando en la vista FBD (vase pgina 282) o IL (vase pgina 284), el comando no
estar disponible. Sin embargo, los contactos y bobinas insertados en una red LD se
representarn con los elementos FBD o instrucciones IL correspondientes.
332
EIO0000000071 04/2014
SoMachine
Editor de diagrama de funcin continua (CFC)
EIO0000000071 04/2014
Captulo 10
Editor de diagrama de funcin continua (CFC)
Pgina
334
Editor CFC
335
337
Elementos CFC/Herramientas
339
346
349
351
EIO0000000071 04/2014
333
334
EIO0000000071 04/2014
Editor CFC
Descripcin general
El editor CFC es un editor grfico disponible para la programacin de objetos en el lenguaje de
programacin de diagrama de funcin continua (CFC) (vase pgina 334), que es una extensin
de los lenguajes de programacin IEC 61131-3. Elija el lenguaje al aadir un nuevo objeto de
unidad organizativa de programa (POU) al proyecto. Para proyectos grandes, plantese utilizar la
versin orientada a pginas (vase pgina 351).
El editor estar disponible en la parte inferior de la ventana, que se abre al abrir el objeto POU de
CFC. Esta ventana tambin incluye el editor de declaraciones (vase pgina 414) en la parte
superior.
Editor CFC
EIO0000000071 04/2014
335
El editor CFC, a diferencia del editor FBD / LD, permite el posicionamiento (vase pgina 346)
libre de los elementos, lo que posibilita la insercin directa de rutas de realimentacin. La
secuencia de procesamiento se determina mediante una lista que contiene todos los elementos
insertados actualmente y que pueden modificarse.
Los siguientes elementos estn disponibles en un cuadro de herramientas (vase pgina 339) y
pueden insertarse mediante el mtodo de arrastrar y soltar:
z mdulo (operadores, bloques de funciones y programas)
z entrada
z salida
z salto
z etiqueta
z retorno
z compositor
z selector
z marcas de conexin
z comentarios
Puede conectar los pines de entrada y salida de los elementos dibujando una lnea con el ratn.
La ruta de la lnea de conexin se crear automticamente y trazar la trayectoria ms corta
posible. Las lneas de conexin se ajustan automticamente en cuanto se mueven los elementos.
Para obtener ms informacin, consulte la descripcin sobre cmo insertar y organizar elementos
(vase pgina 346). Para diagramas complejos, puede utilizar marcas de conexin
(vase pgina 340) en lugar de lneas. Tambin puede plantearse la posibilidad de modificar el
encaminamiento.
Puede pasar que los elementos se coloquen de tal modo que cubran conexiones ya encaminadas.
Estas colisiones se indican mediante lneas de conexin rojas. Si existen colisiones en el
diagrama, el botn de la esquina superior derecha de la vista de editor presentar un reborde rojo:
. Para editar las colisiones paso a paso, haga clic en este botn y ejecute el comando Mostrar
siguiente colisin. A continuacin, se seleccionar la siguiente conexin implicada detectada.
Para diagramas complejos, puede utilizar marcas de conexin (vase pgina 340) en lugar de
lneas. Tambin puede utilizar la versin orientada a pginas del editor CFC.
Una funcin de zoom le permite cambiar la dimensin de la ventana del editor: utilice el botn
de la esquina inferior derecha de la ventana y elija de entre los factores de zoom enumerados.
Como alternativa, puede seleccionar la entrada ... para abrir un cuadro de dilogo donde puede
escribir cualquier factor arbitrario.
Puede invocar los comandos para trabajar en el editor CFC desde el men contextual o desde el
men CFC que est disponible en cuanto el editor CFC est activo.
336
EIO0000000071 04/2014
EIO0000000071 04/2014
337
338
EIO0000000071 04/2014
Elementos CFC/Herramientas
Descripcin general
Las herramientas proporcionan los elementos grficos disponibles para programar en la ventana
del editor CFC (vase pgina 335). Abra las herramientas ejecutando el comando Herramientas
en el men Ver.
Seleccione el elemento que desee en las herramientas e insrtelo (vase pgina 346) en la
ventana del editor arrastrndolo y soltndolo.
Adems de los elementos de programacin, hay una entrada
en la parte superior de
la lista de las herramientas. En tanto que esta entrada est seleccionada, el cursor tendr la forma
de una flecha y podr seleccionar elementos en la ventana del editor para colocarlos y editarlos.
EIO0000000071 04/2014
339
Elementos CFC
Nombre
Smbolo
Descripcin
pgina
punto de
control
entrada
salida
mdulo
salto
etiqueta
retorno
340
EIO0000000071 04/2014
Nombre
Smbolo
Descripcin
compositor
selector
comentario
EIO0000000071 04/2014
341
Nombre
Smbolo
Descripcin
marca de
conexin entrada
marca de
conexin salida
pin de
entrada
pin de
salida
342
EIO0000000071 04/2014
Ejemplo de un compositor
Un programa CFC cfc_prog gestiona una instancia de bloque de funciones fublo1, que tiene
una variable de entrada struvar de tipo de estructura. Utilice el elemento de composicin para
acceder a los componentes de estructura.
Definicin de estructura stru1:
TYPE stru1 :
STRUCT
ivar:INT;
strvar:STRING:=hallo;
END_STRUCT
END_TYPE
Declaracin e implementacin de bloque de funciones fublo1:
FUNCTION_BLOCK fublo1
VAR_INPUT
struvar:STRU1;
END_VAR
VAR_OUTPUT
fbout_i:INT;
fbout_str:STRING;
END_VAR
VAR
fbvar:STRING:=world;
END_VAR
fbout_i:=struvar.ivar+2;
fbout_str:=CONCAT (struvar.strvar,fbvar);
Declaracin e implementacin de programa cfc_prog:
PROGRAM cfc_prog
VAR
intvar: INT;
stringvar: STRING;
fbinst: fublo1;
erg1: INT;
erg2: STRING;
END_VAR
EIO0000000071 04/2014
343
Elemento de composicin
1
2
compositor
bloque de funciones con variable de entrada struvar de estructura de tipo stru1
Ejemplo de un selector
Un programa CFC cfc_prog gestiona una instancia de bloque de funciones fublo2, que tiene
una variable de salida fbout de estructura de tipo stru1. Utilice el elemento selector para
acceder a los componentes de estructura.
Definicin de estructura stru1:
TYPE stru1 :
STRUCT
ivar:INT;
strvar:STRING:=hallo;
END_STRUCT
END_TYPE
Declaracin e implementacin del bloque de funciones fublo1:
FUNCTION_BLOCK fublo2
VAR_INPUT CONSTANT
fbin1:INT;
fbin2:DWORD:=24354333;
fbin3:STRING:=hallo;
END_VAR
VAR_INPUT
fbin : INT;
END_VAR
VAR_OUTPUT
fbout : stru1;
fbout2:DWORD;
END_VAR
VAR
fbvar:INT;
fbvar2:STRING;
END_VAR
Declaracin e implementacin del programa cfc_prog:
344
EIO0000000071 04/2014
VAR
intvar: INT;
stringvar: STRING;
fbinst: fublo1;
erg1: INT;
erg2: STRING;
fbinst2: fublo2;
END_VAR
En la ilustracin se muestra un elemento selector donde las conexiones no utilizadas se han
eliminado con la ejecucin del comando Eliminar las conexiones sin enlace.
1
2
EIO0000000071 04/2014
345
EIO0000000071 04/2014
Conexin
Puede conectar los pines de entrada o salida de dos elementos mediante una lnea de conexin
o mediante marcas de conexin.
Lnea de conexin: Puede seleccionar un punto de conexin vlido que sea un pin de entrada o
salida de un elemento (consulte Posiciones de cursor en CFC (vase pgina 337)) y luego trazar
una lnea hasta otro punto de conexin con el ratn. O bien puede seleccionar dos puntos de
conexin y ejecutar el comando Select Connected Pins. Un punto de conexin posible
seleccionado se indica mediante un cuadrado con relleno rojo. Cuando se traza una lnea desde
tal punto hasta el elemento de destino, se puede identificar el punto de conexin de destino
posible. Cuando se coloca el cursor sobre un punto de conexin vlido, se aade un smbolo de
flecha al cursor al moverlo sobre dicho punto, indicando la posible conexin.
La figura siguiente ofrece un ejemplo: Despus de hacer clic con el ratn en un pin de entrada del
elemento var1, se muestra el rectngulo rojo que muestra que se trata de un punto de conexin
seleccionado. Manteniendo pulsado el botn del ratn, mueva el cursor al pin de salida del mdulo
ADD hasta que el smbolo del cursor aparezca tal como se muestra en la figura. Ahora suelte el
botn del ratn para establecer la lnea de conexin.
Se crear la conexin ms corta posible teniendo en cuenta el resto de los elementos y las
conexiones. Si la ruta de las lneas de conexin se solapa con otras lneas de conexin, su color
ser gris claro
Marcas de conexin: Tambin puede utilizar marcas de conexin en lugar de lneas de conexin
para simplificar los diagramas complejos. Consulte la descripcin de las marcas de conexin
(vase pgina 340).
Copia
Para copiar un elemento, seleccinelo y utilice los comandos Copiar y Pegar.
Edicin
Despus de insertar un elemento, de forma predeterminada la parte de texto se representa
mediante ???. Para sustituir estos signos por el texto deseado, (nombre de POU, nombre de
etiqueta, nombre de instancia, comentario, etc.), haga clic en el texto para obtener un campo de
edicin. Tambin estar disponible el botn ... para abrir Accesibilidad.
Eliminacin
Puede eliminar un elemento seleccionado o una lnea de conexin ejecutando el comando
Eliminar, que est disponible en el men contextual, o pulsando la tecla SUPR.
EIO0000000071 04/2014
347
348
EIO0000000071 04/2014
Supervisin
Los valores reales se muestran en las pequeas ventanas de supervisin que hay detrs de cada
variable (supervisin en lnea).
Vista online de un objeto de programa PLC_PRG:
EIO0000000071 04/2014
349
350
EIO0000000071 04/2014
EIO0000000071 04/2014
351
Orden de ejecucin
El orden de ejecucin de las pginas va de arriba abajo. Dentro de una pgina, el orden sigue las
reglas del editor CFC estndar (consulte la informacin adicional sobre el orden de ejecucin
(vase pgina 348)). Puede cambiar el orden de ejecucin de los elementos solamente dentro de
la pgina asociada. No puede cambiar el orden de ejecucin de los elementos en pginas
diferentes.
352
EIO0000000071 04/2014
SoMachine
Editor de diagrama funcional secuencial (SFC)
EIO0000000071 04/2014
Captulo 11
Editor de diagrama funcional secuencial (SFC)
Pgina
Editor SFC
354
356
357
359
361
363
376
377
383
386
EIO0000000071 04/2014
353
Editor SFC
Descripcin general
El editor SFC est disponible para la programacin de objetos en el lenguaje de programacin
IEC 61131-3 SFC - Diagrama funcional secuencial (vase pgina 356). Seleccione el lenguaje
cuando aada un nuevo objeto POU al proyecto.
El editor SFC es un editor grfico. Realice la configuracin general relativa al comportamiento y la
visualizacin en el cuadro de dilogo Opciones Editor SFC.
El editor SFC est disponible en la parte inferior de la ventana que se abre cuando se edita un
objeto POU SFC. Esta ventana tambin incluye el editor de declaraciones (vase pgina 414)
en la parte superior.
354
EIO0000000071 04/2014
Editor SFC
355
356
EIO0000000071 04/2014
EIO0000000071 04/2014
357
Al hacer clic en una zona sombreada, el elemento se selecciona. Se muestra un marco de puntos
y aparece un sombreado de color rojo (para realizar una seleccin mltiple, consulte Trabajo en
el editor SFC (vase pgina 359)).
Elemento de paso seleccionado
358
EIO0000000071 04/2014
Edicin de textos
Haga clic en una posicin de cursor de texto para abrir el campo de edicin, donde podr editar el
texto. Si se ha seleccionado un rea de texto mediante las teclas de flecha, abra el campo de
edicin explcitamente con la barra espaciadora.
EIO0000000071 04/2014
359
z
z
Al pegar uno o varios elementos cortados o copiados, el contenido del portapapeles se inserta
antes de la posicin seleccionada actualmente. Si no se seleccionada nada, los elementos se
aaden al final del diagrama cargado actualmente.
Si pega una bifurcacin cuando el elemento seleccionado tambin es una bifurcacin, los
elementos de bifurcacin pegados se insertarn a la izquierda de los elementos existentes.
Si pega una accin (lista de acciones) en un paso seleccionado actualmente, las acciones se
aadirn al principio de la lista de acciones del paso o bien se crear una lista de acciones para
el paso.
Elementos incompatibles al cortar/copiar:
Si selecciona una accin (lista de acciones) asociada y, adems, un elemento que no es el paso
al que pertenece la accin (lista de acciones), se muestra este cuadro de mensaje: La
seleccin actual contiene elementos incompatibles. No se transmitirn datos al
portapapeles. La seleccin no se almacenar y no la podr pegar ni copiar.
Elementos incompatibles al pegar:
Si intenta pegar una accin (lista de acciones) y el elemento seleccionado no es un paso u otra
asociacin, se muestra este cuadro de mensaje: Imposible insertar el contenido del
portapapeles en la seleccin actual. Si intenta pegar un elemento como un paso, bifurcacin
o transicin y hay seleccionada una accin (lista de acciones) asociada, se muestra el mismo
cuadro de mensaje.
Eliminacin de elementos
Seleccione los elementos y ejecute el comando Eliminar o pulse la tecla SUPR.
Tenga en cuenta lo siguiente:
z Al eliminar un paso tambin se elimina la lista de acciones asociada.
z Al eliminar el paso inicial, el siguiente paso se establece automticamente como paso inicial.
La opcin Paso inicial se activar en las propiedades de este paso.
z La eliminacin de la lnea horizontal anterior a un rea bifurcada eliminar todas las
bifurcaciones.
z La eliminacin de todos los elementos especficos de una bifurcacin eliminar la bifurcacin.
360
EIO0000000071 04/2014
Descripcin
Nombre
Comentario
Smbolo
EIO0000000071 04/2014
361
Propiedades especficas
Propiedad especfica
Descripcin
Paso inicial
Tiempos:
Mximo activo
Acciones:
Paso activo
Paso desactivado
NOTA: Utilice las variables implcitas correspondientes para determinar el estado de las acciones
y los timeouts mediante indicadores SFC (vase pgina 377).
362
EIO0000000071 04/2014
Paso / Transicin
Para insertar un solo paso o una sola transicin, ejecute el comando Paso o Transicin desde
Herramientas. Tambin se pueden insertar pasos y transiciones en combinacin, mediante el
comando Insertar la transicin de paso (
desde la barra de herramientas.
363
Los nombres de paso deben ser exclusivos en el mbito de la POU padre. Tngalo en cuenta
especialmente al utilizar acciones programadas en SFC. De lo contrario, se detectar un error
durante el proceso de compilacin.
Puede transformar cada paso en un paso inicial ejecutando el comando Paso inicial o activando
la propiedad de paso respectiva. Un paso inicial se ejecutar primero cuando se llama a la POU IL.
Cada paso se define mediante las propiedades (vase pgina 361) del paso.
Despus de insertar un paso, asocie las acciones que se deben realizar cuando el paso est
activo (procesado); consulte a continuacin la informacin adicional sobre las acciones
(vase pgina 368).
Recomendaciones sobre las transiciones
Una transicin debe proporcionar la condicin que har que el paso posterior se active en cuanto
el valor de la condicin sea TRUE. Por lo tanto, una condicin de transicin debe tener el valor
TRUE o FALSE.
Una condicin de transicin se puede definir de los 2 modos siguientes:
Tipo de definicin
Tipo de condicin
Descripcin
directa
en lnea
multiuso
utilizando un objeto de
transicin o de propiedad
independiente
) o de propiedad
(
) disponible en el proyecto. (Esto permite el uso
mltiple de transacciones; vase por ejemplo
condition_xy en las figuras siguientes).
El objeto como una transicin en lnea puede contener los
elementos siguientes:
z variable booleana
z direccin
z constante
z instruccin
z varias instrucciones con cdigo arbitrario
NOTA: Si una transicin produce varias instrucciones, asigne la expresin deseada a una variable
de transicin.
364
EIO0000000071 04/2014
EIO0000000071 04/2014
365
Ejemplos de transiciones:
1
2
366
EIO0000000071 04/2014
EIO0000000071 04/2014
367
Accin
Una accin puede contener una serie de instrucciones escritas en uno de los lenguajes de
programacin vlidos. Se asigna a un paso y, en modalidad online, se procesar de acuerdo con
la secuencia de procesamiento (vase pgina 383) definida.
Cada accin que se debe utilizar en pasos SFC debe estar disponible como una POU vlida en el
SFC POU o el proyecto (
).
Los nombres de paso deben ser exclusivos en el mbito de la POU padre. Una accin no puede
contener un paso que tenga el mismo nombre que el paso al cual est asignada. De lo contrario,
se detectar un error durante el proceso de compilacin.
Ejemplo de accin escrita en ST
Las acciones de paso conformes a IEC y que extienden IEC se describen en los prrafos
siguientes.
368
EIO0000000071 04/2014
A diferencias de las acciones de paso normales, para las acciones de paso IEC se pueden
utilizar descriptores diferentes.
Una diferencia adicional respecto a las acciones de paso normales es que cada accin de paso
IEC est provista de un indicador de control. Esto permite que, aunque otro paso tambin llame
a la accin, la accin se ejecute siempre slo una vez al mismo tiempo. Esto no es as en el
caso de las acciones de paso normales.
Una accin de paso IEC se representa mediante un mdulo doble conectado a la parte derecha
de un paso mediante una lnea de conexin. En la parte izquierda muestra el descriptor de la
accin y en la parte derecha el nombre de la accin. Se pueden editar las dos en lnea.
Las acciones de paso IEC se asocian a un paso por medio del comando Insertar asociacin
de accin. Puede asociar una o varias acciones con un paso. La posicin de la nueva accin
depende de la posicin actual del cursor y del comando. Las acciones deben estar disponibles
en el proyecto y se deben insertar con un nombre de accin exclusivo (por ejemplo
plc_prg.a1).
Procesamiento
Asociacin
Representacin
La accin se asocia a un
paso por medio de una
entrada en el campo Paso
activado de las
propiedades de paso
(vase pgina 361).
Se representa mediante
una E en la esquina inferior
izquierda del mdulo de
paso respectivo.
EIO0000000071 04/2014
369
Tipo de accin
Procesamiento
Asociacin
Representacin
La accin se asocia a un
paso por medio de una
entrada en el campo Paso
activo de las propiedades
de paso
(vase pgina 361).
Se representa mediante un
pequeo tringulo en la
esquina superior derecha
del mdulo de paso
respectivo.
La accin se asocia a un
paso por medio de una
entrada en el campo Paso
desactivado de las
propiedades de paso
(vase pgina 361).
Se representa mediante
una X en la esquina inferior
derecha del mdulo de
paso respectivo.
370
EIO0000000071 04/2014
La accin Action_AS1 est asociada con el paso AS1 como accin de paso (izquierda), o como
accin IEC con el descriptor N (derecha). Debido al hecho de que en ambos casos se utilizan 2
transiciones, se debern realizar 2 ciclos del controlador para cada una antes de que se vuelva a
llegar al paso inicial, suponiendo que una variable iCounter se incremente en Action_AS1.
Tras una reactivacin del paso Init, iCounter en el ejemplo de la izquierda tendr el valor 1.
En la derecha, no obstante, tendr el valor 2 porque la accin IEC, debido a la desactivacin de
AS1, se ha ejecutado dos veces.
Para obtener ms informacin sobre calificadores, consulte la list of available qualifiers
(vase pgina 376).
Bifurcaciones
Un diagrama funcional secuencial (SFC) puede ramificarse; es decir, las lneas de procesamiento
se pueden bifurcar en 2 o ms lneas adicionales (bifurcaciones). Las bifurcaciones simultneas
(vase pgina 372) se procesarn en paralelo (simultneamente). En el caso de las bifurcaciones
alternativas (vase pgina 371), slo se procesar una de acuerdo con la condicin de transicin
anterior. Cada bifurcacin de un diagrama va precedida de una lnea horizontal doble (paralela) o
simple (alternativa) y tambin finaliza con dicha lnea o con un salto (vase pgina 374).
EIO0000000071 04/2014
371
Bifurcacin simultnea
Una bifurcacin simultnea debe empezar y finalizar con un paso. Las bifurcaciones simultneas
pueden contener bifurcaciones alternativas u otras bifurcaciones simultneas.
Las lneas horizontales anteriores y posteriores al rea bifurcada son lneas dobles.
Procesamiento en modalidad online: si la transicin anterior (t2 en el ejemplo que se muestra en
la parte izquierda) es verdadera (TRUE), los primeros pasos de todas las bifurcaciones
simultneas se activarn (Step11 y Step21). Las bifurcaciones especficas se procesarn
simultneamente antes de que la transicin (t3) se reconozca.
Para insertar una bifurcacin simultnea, seleccione un paso y ejecute el comando Insertar rama
a la derecha.
Puede transformar bifurcaciones simultneas y alternativas entre s ejecutando los comandos
Paralelo o Alternativa.
Se aadir automticamente una etiqueta de bifurcacin en la lnea horizontal anterior a la
bifurcacin que lleva por nombre Branch<n> donde n es un nmero consecutivo que empieza
por 0. Puede especificar esta etiqueta al definir un destino de salto (vase pgina 374)
372
EIO0000000071 04/2014
Bifurcacin alternativa
Las lneas horizontales anteriores y posteriores al rea bifurcada son lneas simples.
Una bifurcacin alternativa debe empezar y finalizar con una transicin. Las bifurcaciones
alternativas pueden contener bifurcaciones simultneas y otras bifurcaciones alternativas.
Si el paso que precede a la lnea de inicio alternativa est activo, entonces la primera transicin
de cada bifurcacin alternativa se evaluar de izquierda a derecha. La primera transicin de la
izquierda cuya condicin de transicin tenga el valor TRUE se abrir y se activarn los pasos
siguientes.
Para insertar bifurcaciones alternativas, seleccione una transicin y ejecute el comando Insertar
rama a la derecha.
Puede transformar bifurcaciones simultneas y alternativas entre s ejecutando los comandos
Paralelo o Alternativa.
EIO0000000071 04/2014
373
Salto
Un salto se representa mediante una lnea de conexin vertical ms una flecha horizontal y el
nombre del destino del salto. Define el siguiente paso que se debe procesar en cuanto la transicin
anterior tenga el valor TRUE. Se pueden utilizar saltos para evitar que las lneas de procesamiento
se crucen o conduzcan hacia arriba.
Adems del salto predeterminado al final del diagrama, un salto slo se puede utilizar al final de
una bifurcacin. Para insertar un salto, seleccione la ltima transicin de la bifurcacin y ejecute
el comando Insertar salto.
El destino del salto se especifica mediante la cadena de texto asociada, que se puede editar.
Puede ser un nombre de paso o la etiqueta de una bifurcacin simultnea.
Macro
Vista principal del editor SFC
374
EIO0000000071 04/2014
Una macro se representa mediante un cuadro con marco en negrita que contiene el nombre de la
macro. Incluye parte del diagrama SFC, que por lo tanto no resulta directamente visible en la vista
principal del editor. El uso de macros no afecta al flujo del proceso, slo es un modo de ocultar
algunas partes del programa, por ejemplo, para simplificar la visualizacin. Para insertar un cuadro
de macro, ejecute el comando Insertar macro(despus). El nombre de la macro se puede editar.
Para abrir el editor de macros, haga doble clic en el cuadro de macro o ejecute el comando
Mostrar macro. Puede editarla aqu igual que en la vista principal del editor e introducir la seccin
deseada del diagrama SFC. Para salir, ejecute el comando Salir de la macro.
La lnea de ttulo del editor de macros muestra la ruta de la macro en el ejemplo de SFC actual:
EIO0000000071 04/2014
375
Nombre desarrollado
Descripcin
no almacenada
R0
S0
establecida (almacenada)
limitada en el tiempo
retardada
pulso
SD
almacenada y retardada
DS
retardada y almacenada
SL
almacenada y limitada en el
tiempo
EIO0000000071 04/2014
Descripcin
<nombre de paso>.x
<nombre de paso>._x
EIO0000000071 04/2014
377
Descripcin
_<nombre de accin>.x
_<nombre de accin>._x
Generacin de smbolos
En las propiedades del elemento (vase pgina 361) de un paso o una accin, se puede definir si
se debe aadir una definicin de smbolo a una configuracin de smbolos posiblemente creada y
descargada para el indicador de paso o nombre de accin. Para ello, haga una entrada para el
derecho de acceso deseado en la columna Smbolo de la vista de propiedades del elemento.
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Si utiliza el indicador booleano <nombre de paso>.x para forzar un determinado valor de estado
para un paso (para establecer un paso como activo), tenga en cuenta que esto afectar a todos
los estados no controlados en el SFC.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao
al equipo.
Tiempo a travs de variables TIME:
El indicador t ofrece el intervalo de tiempo actual que ha transcurrido desde que se activ el paso.
Esto slo se aplica a los pasos, no importa si existe o no un tiempo mnimo configurado en los
atributos de paso (vase pgina 361) (vea ms adelante: SFCError).
Para pasos:
<nombre de paso>.t (<nombre de paso>._t no utilizable para propsitos externos)
Para acciones:
No se utilizan variables de tiempo implcitas.
378
EIO0000000071 04/2014
Tipo
Descripcin
SFCInit
BOOL
SFCReset
BOOL
SFCError
BOOL
EIO0000000071 04/2014
379
Variable
Tipo
SFCEnableLimit BOOL
Descripcin
Puede utilizar esta variable para la activacin (TRUE) y
desactivacin (FALSE) explcitas del control de tiempo en los pasos
a travs de SFCError. Esto significa que si esta variable se
declara y se activa(Configuracin SFC) entonces se debe
establecer en TRUE con el fin de conseguir que SFCError
funcione. De lo contrario, no se registrar ningn timeout de los
pasos. El uso puede ser razonable en inicios o en funcionamiento
manual. Si la variable no est definida, SFCError funcionar de
forma automtica.
Condicin previa: se debe definir SFCError.
SFCErrorStep
STRING
SFCErrorPOU
STRING
SFCQuitError
BOOL
SFCPause
BOOL
SFCTrans
BOOL
SFCCurrentStep STRING
SFCTipSFCTipMo BOOL
de
380
EIO0000000071 04/2014
Se ha detectado un timeout en el paso s1 del objeto SFC POU con el indicador SFCError.
EIO0000000071 04/2014
381
Descripcin
paso activo
paso inicial
acciones IEC
bifurcaciones alternativas
bifurcaciones simultneas
EIO0000000071 04/2014
383
Orden de procesamiento
Orden de procesamiento de elementos en una secuencia:
Paso
Descripcin
1. Restablecimiento de las
acciones IEC
3. Acciones de entrada del paso Se comprueban todos los pasos en el orden que tienen en la secuencia
(paso activado)
para determinar si se cumple el requisito para la ejecucin de la accin de
entrada del paso. Si ese es el caso, la accin se ejecutar. La accin de
entrada se ejecutar si la condicin de transicin que precede al paso es
TRUE y, por tanto, el paso se ha activado.
4. Comprobacin de timeout,
acciones de paso activo
5. Acciones IEC
6. Comprobacin de transicin,
activacin de los pasos
siguientes
Las transiciones (vase pgina 363) se evalan. Si el paso del ciclo actual
estaba activo y la transicin siguiente devuelve TRUE (y, si procede, el
tiempo activo mnimo ya ha transcurrido), se activa el paso siguiente.
NOTA: Una accin se puede ejecutar varias veces en 1 ciclo porque se llama desde ms de una
de las dems acciones IEC cuando hay varios pasos activos. Es decir, la misma accin IEC se
utiliza simultneamente en diferentes niveles de un SFC, y este hecho podra producir efectos no
deseados.
NOTA: Ejemplo: Un SFC podra tener 2 acciones IEC A y B, ambas implementadas en SFC, y que
ambas llaman a la accin IEC C. Por tanto, las acciones IEC A y B pueden estar activas en el
mismo ciclo y, adems, en ambas acciones puede estar activa la accin IEC C. En consecuencia,
se llamar a C dos veces.
384
EIO0000000071 04/2014
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
No llame a acciones IEC desde varias acciones IEC en el mismo ciclo.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao
al equipo.
NOTA: Para determinar el estado de los pasos y acciones o la ejecucin del diagrama, utilice
variables implcitas (vase pgina 377).
EIO0000000071 04/2014
385
z
z
Supervisin
Los pasos activos se muestran de color azul. La visualizacin de los atributos de los pasos
depende de las opciones del editor SFC que se hayan establecido.
386
EIO0000000071 04/2014
EIO0000000071 04/2014
387
388
EIO0000000071 04/2014
SoMachine
Editor de texto estructurado (ST)
EIO0000000071 04/2014
Captulo 12
Editor de texto estructurado (ST)
Apartado
Pgina
12.1
390
12.2
396
EIO0000000071 04/2014
389
Seccin 12.1
Informacin sobre el editor ST
390
Pgina
Editor ST
391
392
EIO0000000071 04/2014
Editor ST
Descripcin general
El editor ST se utiliza para crear objetos de programacin en texto estructurado (ST) del lenguaje
de programacin IEC o texto estructurado extendido que proporciona algunas extensiones al
estndar IEC 61131-3.
El editor ST es un editor de texto. Por lo tanto, utilice la configuracin del editor de texto correspondiente en los cuadros de dilogo Opciones y Personalizar para configurar el comportamiento, la
apariencia y los mens. All puede definir la configuracin predeterminada de la coloracin de
resalte, nmeros de lnea, tabuladores, sangra y muchas otras opciones.
Informacin adicional
Para seleccionar bloques, pulse la tecla ALT y seleccione el rea de texto que desee con el ratn.
El editor estar disponible en la parte inferior de una ventana que tambin incluye el editor de
declaraciones (vase pgina 414) en la parte superior.
Si se detectan errores sintcticos durante la edicin, los mensajes correspondientes se mostrarn
en la ventana Precompile Messages. Esta ventana se actualiza cada vez que se restablece el
foco en la ventana del editor (por ejemplo, coloque el cursor en otra ventana y luego de nuevo en
la ventana del editor).
EIO0000000071 04/2014
391
Supervisin
Si la supervisin no se ha desactivado explcitamente en el cuadro de dilogo Opciones, se
mostrarn pequeos cuadros de supervisin detrs de cada variable con el valor real.
Vista online de un objeto del programa PLC_PRG con supervisin:
392
EIO0000000071 04/2014
Forzado de variables
Adems de la posibilidad de especificar un valor preparado para una variable en la declaracin de
cualquier editor, el editor ST permite hacer doble clic en el cuadro de supervisin de una variable
en la parte de implementacin (en modalidad online). Especifique el valor preparado en el cuadro
de dilogo que aparece.
Cuadro de dilogo Preparar valor
Para realizar la accin seleccionada, ejecute el comando Debug Forzar valores (opcin
Online) o pulse la tecla F7.
EIO0000000071 04/2014
393
394
EIO0000000071 04/2014
Punto de interrupcin
deshabilitado
Parada de programa en
punto de interrupcin
EIO0000000071 04/2014
395
Seccin 12.2
Lenguaje de texto estructurado (ST)/texto estructurado extendido (ExST)
396
Pgina
397
Expresiones
398
Instrucciones
400
EIO0000000071 04/2014
EIO0000000071 04/2014
397
Expresiones
Descripcin general
Una expresin es una construccin que devuelve un valor tras su evaluacin. Este valor se utiliza
en las instrucciones.
Las expresiones estn compuestas por operadores (vase pgina 703), operandos
(vase pgina 797) o asignaciones. Un operando puede ser una constante, una variable, una
llamada de funcin u otra expresin.
Ejemplos
33
(* Constante *)
ivar
(* Variable *)
fct(a,b,c)
(* Llamada de funcin*)
a AND b
(* Expresin *)
(x*y) / z
(* Expresin *)
real_var2 := int_var;
398
Operacin
Smbolo
Nivel de operacin
entre parntesis
(expresin)
orden ms alto
llamada de funcin
exponenciacin
EXPT
.............
negacin
............
creacin de complementos
NOT
...........
multiplicar
..........
dividir
.........
mdulo
MOD
........
sumar
.......
restar
......
comparar V
<,>,<=,>=
.....
EIO0000000071 04/2014
Operacin
Smbolo
Nivel de operacin
igual a
....
no es igual a
<>
...
AND booleano
AND
..
XOR booleano
XOR
OR booleano
OR
orden ms bajo
IF b := (i = 1) THEN
i := i + 1;
END_IF
EIO0000000071 04/2014
399
Instrucciones
Descripcin general
Las instrucciones describen qu se debe hacer con las expresiones (vase pgina 398)
especificadas.
En ST se pueden utilizar las instrucciones siguientes:
400
Instruccin
Ejemplo
A:=B; CV := CV + 1; C:=SIN(X);
RETURN;
D:=B*B;
IF D<0.0 THEN
C:=A;
ELSIF D=0.0 THEN
C:=B;
ELSE
C:=D;
END_IF;
CASE INT1 OF
1: BOOL1 := TRUE;
2: BOOL2 := TRUE;
ELSE
BOOL1 := FALSE;
BOOL2 := FALSE;
END_CASE;
J:=101;
FOR I:=1 TO 100 BY 2 DO
IF ARR[I] = 70 THEN
J:=I;
EXIT;
END_IF;
END_FOR;
J:=1;
WHILE J<= 100 AND ARR[J] <> 70 D
O
J:=J+2;
END_WHILE;
J:=-1;
REPEAT
J:=J+2;
UNTIL J= 101 OR ARR[J] = 70
END_REPEAT;
EIO0000000071 04/2014
Instruccin
Ejemplo
EXIT;
CONTINUE;
label1: i:=i+1;
IF i=10 THEN
JMP label2;
END_IF
JMP label1;
label2:
instruccin vaca
Operadores de asignacin
Asignacin predeterminada
En la parte izquierda de una asignacin, hay un operando (variable, direccin) al que se asigna el
valor de la expresin de la derecha mediante el operador de asignacin :=.
Consulte tambin la descripcin del operador (vase pgina 716) MOVE, que tiene la misma
funcin.
Ejemplo
Var1 := Var2 * 10;
Despus de completar esta lnea, Var1 tiene el valor de Var2 multiplicado por diez.
Operador Set S=
El valor se establecer: si se establece una vez como TRUE, seguir siendo TRUE.
Ejemplo
a S= b;
a obtiene el valor de b: si se establece una vez como TRUE, seguir siendo TRUE, aunque b pase
a ser FALSE otra vez.
Operador Reset R=
El valor se restablecer: si se establece una vez como FALSE, seguir siendo FALSE.
Ejemplo
a R= b;
a se establece como FALSE en cuanto b = TRUE.
NOTA: En caso de una asignacin mltiple, las asignaciones de establecimiento y restablecimiento hacen referencia al ltimo miembro de la asignacin.
Ejemplo
a S= b R= fun1(par1,par2)
En este caso, b ser el valor de salida restablecido de fun1. Pero a no obtiene el valor establecido
de b, sino que obtiene el valor de salida establecido de fun1.
EIO0000000071 04/2014
401
Tenga en cuenta que una asignacin se puede utilizar como una expresin (vase pgina 398).
Esto es una extensin de la norma IEC 61131-3.
Llamada a bloques de funciones en ST
La llamada a un bloque de funciones (FB, por sus siglas en ingls) se realiza en texto estructurado,
de acuerdo con la sintaxis siguiente:
<nombre de instancia de FB>(variable de entrada de FB:=<valor o direccin>|, <variable de
entrada de FB adicional:=<valor o direccin>|...variables de entrada de FB adicionales);
Ejemplo
En este ejemplo, se llama a un bloque de funciones de temporizador (TON) con asignaciones para
los parmetros IN y PT. A continuacin, la variable resultante Q se asigna a la variable A. El bloque
de funciones de temporizador se instancia mediante TMR:TON;. La variable resultante, como en
IL, se direcciona de acuerdo con la sintaxis <nombre de instancia de FB>.<variable de FB>:
TMR(IN := %IX5, PT := 300);
A:=TMR.Q;
Tambin hay otra sintaxis disponible para las salidas:
fb(in1:=myvar, out1=>myvar2);
Instruccin RETURN
Puede utilizar la instruccin RETURN para salir de una POU.
Sintaxis
RETURN;
Ejemplo
IF b=TRUE THEN
RETURN;
END_IF;
a:=a+1;
Si b es TRUE, la instruccin a:=a+1; no se ejecutar. Como resultado, se saldr de la POU
inmediatamente.
402
EIO0000000071 04/2014
Instruccin IF
Con la instruccin IF se puede probar una condicin y, en funcin de esta condicin, ejecutar
instrucciones.
Sintaxis
IF <expresin booleana1> > THEN
<instrucciones IF>
{ELSIF <expresin booleana2> THEN
<instrucciones ELSIF1>
..
..
ELSIF <expresin booleana n> THEN
<instrucciones ELSIF-1>
ELSE
<instrucciones ELSE>}
END_IF;
El segmento entre llaves {} es opcional.
Si la <expresin_booleana1> devuelve el valor TRUE, entonces slo se ejecutan las
<instrucciones_IF> y, como resultado, no se ejecuta ninguna de las otras instrucciones. De lo
contrario, las expresiones booleanas que empiezan por <expresin_booleana2> se evalan una
tras otra hasta que 1 de las expresiones devuelve el valor TRUE. Entonces slo se evalan las
instrucciones posteriores a esta expresin booleana y anteriores a la siguiente expresin ELSE o
ELSIF. Si ninguna de las expresiones booleanas da como resultado el valor TRUE, entonces slo
se evalan las <instrucciones_ELSE>.
Ejemplo
IF temp<17
THEN heating_on := TRUE;
ELSE heating_on := FALSE;
END_IF;
Aqu, la calefaccin se enciende cuando la temperatura baja de los 17 grados. De lo contrario,
permanece apagada.
EIO0000000071 04/2014
403
Instruccin CASE
Con la instruccin CASE, puede combinar varias instrucciones condicionadas con la misma
variable de condicin en una sola construccin.
Sintaxis
CASE <Var1> OF
<valor1>: <instruccin 1>
<valor2>: <instruccin 2>
<valor3, valor4, valor5>: <instruccin 3>
<valor6..valor10>: <instruccin 4>
..
..
<valor n>: <instruccin n>
ELSE <instruccin ELSE>
END_CASE;
Una instruccin CASE se procesa segn el modelo siguiente:
z Si la variable de <Var1> tiene el valor <Valor I>, se ejecutar la instruccin <Instruccin I>.
z Si <Var 1> no tiene ninguno de los valores indicados, se ejecutar la <instruccin ELSE>.
z Si la misma instruccin se debe ejecutar para varios valores de las variables, entonces puede
escribir estos valores uno despus del otro, separados por comas, y de este modo condicionar
la ejecucin comn.
z Si la misma instruccin se debe ejecutar para un rango de valores de una variable, puede
escribir el valor inicial y el valor final separados por 2 puntos. Por lo tanto, puede condicionar la
condicin comn.
Ejemplo
CASE INT1 OF
1, 5: BOOL1 := TRUE;
BOOL3 := FALSE;
2: BOOL2 := FALSE;
BOOL3 := TRUE;
10..20: BOOL1 := TRUE;
BOOL3:= TRUE;
ELSE
BOOL1 := NOT BOOL1;
BOOL2 := BOOL1 OR BOOL2;
END_CASE;
404
EIO0000000071 04/2014
Bucle FOR
Con el bucle FOR, puede programar procesos repetitivos.
Sintaxis
INT_Var:INT;
FOR <INT_Var> := <INIT_VALUE> TO <END_VALUE> {BY <tamao paso>} DO
<instrucciones>
END_FOR;
El segmento entre llaves {} es opcional.
Las <instrucciones> se ejecutan siempre que el contador <INT_Var> no tenga un valor superior
a <VALOR_FINAL>. Esto se comprueba antes de ejecutar las <instrucciones> de modo que las
<instrucciones> no se ejecuten si <VALOR_INI> es superior a <VALOR_FINAL>.
Cuando se ejecutan <instrucciones>, el valor de <INT_Var> se incrementa con el valor de
<tamao de paso>. El tamao de paso puede tener cualquier valor entero. Si falta, entonces se
establecer en 1. El bucle finalizar cuando el valor de <INT_Var> sea superior a
<VALOR_FINAL>.
Ejemplo
FOR Counter:=1 TO 5 BY 1 DO
Var1:=Var1*2;
END_FOR;
Erg:=Var1;
Suponiendo que el valor predeterminado de Var1 sea 1. Entonces tendr el valor 32 despus del
bucle FOR.
NOTA: Si <VALOR_FINAL> es igual al valor lmite para el tipo de datos de <INT_Var> (contador
en el ejemplo anterior), se producir un bucle infinito. Si el contador es de tipo SINT, por ejemplo,
y el <VALOR_FINAL> es 127 (el mximo valor positivo para una variable de tipo SINT), entonces
el bucle no podr terminar nunca porque al aadir 1 a este valor mximo la variable resultara
negativa y nunca superara los lmites impuestos por la instruccin FOR.
ATENCIN
BUCLE INFINITO QUE PROVOCA UN FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Asegrese de que el tipo de variable utilizado en las instrucciones FOR tenga suficiente
capacidad (tenga un lmite superior suficientemente elevado) para ajustarse al
<VALOR_FINAL> + 1.
El incumplimiento de estas instrucciones puede causar lesiones o dao al equipo.
Puede utilizar la instruccin CONTINUE en un bucle FOR. Esto es una extensin de la norma
IEC 61131-3.
EIO0000000071 04/2014
405
Bucle WHILE
Una alternativa al bucle FOR es el bucle WHILE, que ejecuta el bucle si, y mientras, una condicin
booleana tenga, y siga teniendo, el valor TRUE. Si la condicin no tiene inicialmente el valor
TRUE, el bucle no se ejecuta. Si la condicin que inicialmente tena el valor TRUE pasa a tener el
valor FALSE, el bucle finaliza.
Sintaxis
WHILE <expresin booleana> DO
<instrucciones>
END_WHILE;
Evidentemente, la expresin booleana inicial y en curso debe asumir un valor FALSE en algn
momento en las instrucciones del bucle. De lo contario, el bucle no finalizar, lo que provocar una
condicin de bucle infinito.
ATENCIN
BUCLE INFINITO QUE PROVOCA UN FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Asegrese de que el bucle WHILE finalice en las instrucciones del bucle creando una condicin
FALSE de la expresin booleana.
El incumplimiento de estas instrucciones puede causar lesiones o dao al equipo.
A continuacin, se ofrece un ejemplo de instrucciones del bucle que hacen que el bucle finalice:
WHILE Counter<>0 DO
Var1 := Var1*2;
Counter := Counter-1;
END_WHILE
La instruccin REPEAT an no se ha introducido, por lo que se mueve el prrafo (con modificacin)
a la parte inferior.
Puede utilizar la instruccin CONTINUE en un bucle WHILE.
406
EIO0000000071 04/2014
Bucle REPEAT
El bucle REPEAT es otra alternativa al bucle FOR, y tambin al bucle WHILE. El bucle REPEAT se
diferencia del bucle WHILE en que la condicin de salida slo se evala despus de que el bucle
se haya ejecutado como mnimo una vez, al final del bucle.
Sintaxis
REPEAT
<instrucciones>
UNTIL <expresin booleana>
END_REPEAT;
Las <instrucciones> se llevan a cabo repetidamente mientras la <expresin booleana> devuelva
el valor TRUE. Si la <expresin booleana> ya se produce en la primera evaluacin UNTIL,
entonces las <instrucciones> slo se ejecutan una vez. Evidentemente, la <expresin booleana>
debe asumir un valor TRUE en algn momento en las instrucciones del bucle. De lo contario, el
bucle no finalizar, lo que provocar una condicin de bucle infinito.
ATENCIN
BUCLE INFINITO QUE PROVOCA UN FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Asegrese de que el bucle REPEAT finalice en las instrucciones del bucle creando una condicin
TRUE de la expresin booleana.
El incumplimiento de estas instrucciones puede causar lesiones o dao al equipo.
A continuacin, se ofrece un ejemplo de instrucciones del bucle que hacen que el bucle finalice:
REPEAT
Var1 := Var1*2;
Counter := Counter-1;
UNTIL
Counter=0
END_REPEAT;
Puede utilizar la instruccin CONTINUE en un bucle REPEAT. Esto es una extensin de la norma
IEC 61131-3.
En cierto sentido, los bucles WHILE y REPEAT son ms potentes que el bucle FOR, porque no es
necesario saber el nmero de ciclos antes de ejecutar el bucle. En algunos casos, slo podr
trabajar con estos dos tipos de bucle. Sin embargo, si la cantidad de bucles est clara, es
preferible un bucle FOR porque, en la mayora de los casos, excluye de forma inherente los bucles
infinitos (consulte el mensaje de peligro en el prrafo sobre el bucle FOR (vase pgina 405)).
EIO0000000071 04/2014
407
Instruccin CONTINUE
Como extensin de la norma IEC 61131-3, se admite la instruccin CONTINUE en los bucles FOR,
WHILE y REPEAT. CONTINUE hace que la ejecucin contine con el siguiente ciclo del bucle.
Ejemplo
FOR Counter:=1 TO 5 BY 1 DO
INT1:=INT1/2;
IF INT1=0 THEN
CONTINUE; (* to avoid division by zero *)
END_IF
Var1:=Var1/INT1; (* only executed, if INT1 is not "0" *)
END_FOR;
Erg:=Var1;
Instruccin EXIT
La instruccin EXIT finaliza el bucle FOR, WHILE o REPEAT en el que se encuentra sin tener en
cuenta ninguna condicin.
Instruccin JMP
Puede utilizar la instruccin JMP para realizar un salto incondicional a una lnea de cdigo marcada
con una etiqueta de salto.
Sintaxis
JMP <etiqueta>;
La <etiqueta> es un identificador arbitrario pero exclusivo que se coloca al principio de una lnea
de programa. La instruccin JMP debe ir seguida de la indicacin del destino del salto, que tiene
que ser igual a una etiqueta predefinida.
ATENCIN
BUCLE INFINITO QUE PROVOCA UN FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Asegrese de que el uso de la instruccin JMP sea condicional de modo que tenga como
resultado un bucle infinito.
El incumplimiento de estas instrucciones puede causar lesiones o dao al equipo.
408
EIO0000000071 04/2014
A continuacin, se ofrece un ejemplo de instrucciones que crean condiciones lgicas que evitan
un bucle infinito entre el salto y su destino:
aaa:=0;
_label1: aaa:=aaa+1;
(*instructions*)
IF (aaa < 10) THEN
JMP _label1;
END_IF;
Mientras la variable i, que se inicializa con 0, tenga un valor inferior a 10, la instruccin de salto
del ejemplo anterior afectar a un retorno repetido de la lnea de programa definida por la etiqueta
_label1. Por lo tanto, afectar a un procesamiento repetido de las instrucciones comprendido
entre la etiqueta y la instruccin JMP. Puesto que estas instrucciones tambin incluyen el
incremento de la variable i, la condicin de salto se infringir (en la novena comprobacin) y el
flujo del programa continuar.
Tambin puede conseguir esta funcionalidad utilizando un bucle WHILE o REPEAT en el ejemplo.
Por lo general, se debe evitar el uso de instrucciones de salto porque reducen la legibilidad del
cdigo.
Comentarios en ST
Existen 2 posibilidades para escribir comentarios en un objeto de texto estructurado:
z Inicie el comentario con (* y cirrelo con *). Esto permite insertar comentarios que abarcan
varias lneas. Ejemplo: (*Esto es un comentario.*)
z Comentarios de una sola lnea como extensin a la norma IEC 61131-3: // indica el inicio de
un comentario que finaliza al final de la lnea. Ejemplo: // Esto es un comentario.
Puede colocar los comentarios en cualquier lugar de la parte de declaracin o implementacin del
editor ST.
Comentarios anidados: puede colocar comentarios dentro de otros comentarios.
Ejemplo
(*
a:=inst.out; (* to be checked *)
b:=b+1;
*)
En este ejemplo, el comentario que empieza con el primer parntesis no se cierra con el
parntesis a continuacin de checked, sino con el ltimo parntesis.
EIO0000000071 04/2014
409
410
EIO0000000071 04/2014
SoMachine
Editores de objetos
EIO0000000071 04/2014
Parte V
Editores de objetos
Editores de objetos
Contenido de esta parte
Esta parte contiene los siguientes captulos:
Captulo
Pgina
13
Editores de declaraciones
413
14
421
15
423
16
425
17
427
18
Editor de tarea
453
19
463
20
469
EIO0000000071 04/2014
411
Editores de objetos
412
EIO0000000071 04/2014
SoMachine
Editores de declaraciones
EIO0000000071 04/2014
Captulo 13
Editores de declaraciones
Editores de declaraciones
Descripcin general
El editor de declaraciones de texto sirve para crear la parte de declaracin de un objeto POU. Se
puede complementar con una vista tabular. Cualquier modificacin realizada en una de las vistas
se aplica a la otra de forma inmediata.
En funcin de la configuracin actual de las opciones del editor de declaraciones, estar
disponible solamente la vista de texto o solamente la vista tabular. Puede pasar de una a otra
mediante los botones (Textual / Tabular) del borde derecho de la ventana del editor.
Normalmente, el editor de declaraciones se utiliza junto con los editores de los lenguajes de
programacin. Esto significa que se colocar en la parte superior de la ventana que se abre
cuando se va a editar o ver (supervisar) un objeto en modalidad offline u online. En la parte de la
declaracin se describe el tipo de POU (por ejemplo: PROGRAM, FUNCTION_BLOCK,
FUNCTION). Se puede ampliar mediante atributos de pragma globales de POU.
La modalidad online del editor de declaraciones (vase pgina 419) se estructura igual que la de
una vista Supervisar.
La declaracin de variables tambin se efecta en Global Variable Lists y Tipos de datos, que
se crean en editores diferentes.
Consulte tambin el captulo Declaracin de variables (vase pgina 575).
Contenido de este captulo
Este captulo contiene los siguiente apartados:
Apartado
Pgina
414
415
419
EIO0000000071 04/2014
413
Editores de declaraciones
El comportamiento y el aspecto vienen determinados por la configuracin del editor de texto actual
respectivo en los cuadros de dilogo Opciones y Personalizar. All puede definir la configuracin
predeterminada de la coloracin de resalte, nmeros de lnea, tabuladores, sangra y muchas ms
opciones. Se dispone de las funciones de edicin habituales, como copiar y pegar. Se puede
utilizar la seleccin de bloque; para ello, pulse la tecla ALT mientras selecciona con el ratn el rea
de texto que desea.
414
EIO0000000071 04/2014
Editores de declaraciones
La vista tabular del editor proporciona columnas para las definiciones habituales para la
declaracin de variables (vase pgina 575): mbito, Nombre, Direccin, Tipo de datos,
Inicializacin, Comentario y Atributos (pragma). Cada declaracin se inserta como una lnea
numerada.
Para aadir una nueva lnea de declaracin encima de una ya existente, en primer lugar
seleccione esta lnea y luego ejecute el comando
men contextual.
Para aadir una nueva declaracin al final de la tabla, haga clic despus de la ltima lnea de
declaracin existente y utilice tambin el comando Insertar.
La declaracin recin insertada utiliza en primer lugar de forma predeterminada el mbito VAR y
el tipo de datos recin introducido. El campo de entrada para la variable obligatoria Nombre se
abre automticamente. Introduzca un identificador vlido y cierre el campo con la tecla INTRO o
con un clic en otra parte de la vista.
Haga doble clic en una celda de la tabla para abrir las opciones respectivas para introducir un
valor.
Haga doble clic en mbito para abrir una lista en la que puede elegir el mbito y la palabra clave
de atributo de mbito (indicador).
Escriba un valor en Tipo de datos directamente o haga clic en el botn > para utilizar
Accesibilidad o Asistente de matriz.
Escriba un valor en Inicializacin directamente o haga clic en el botn ... para abrir el cuadro de
dilogo Valor de inicializacin. Esto es especialmente til en el caso de las variables
estructuradas.
Cada variable se declara en una lnea por separado; las lneas estn numeradas.
Puede cambiar el orden de las lneas (los nmeros de lnea); para ello, seleccione una lnea y
muvala una lnea ms arriba o ms abajo con el comando
la barra de herramientas o del men contextual.
EIO0000000071 04/2014
Uno adelante o
Uno atrs de
415
Editores de declaraciones
Puede ordenar la lista de declaraciones segn cada una de las columnas si hace clic en el
encabezado de columna en cuestin. La columna que determina el orden en un momento dado
es la que tiene un smbolo de flecha:
flecha arriba = orden ascendente
flecha abajo = orden descendente
Con cada clic en el encabezado de columna se alterna entre orden ascendente y descendente.
Para eliminar una o varias declaraciones, seleccione las lneas correspondientes y pulse la
tecla SUPR, ejecute el comando Eliminar en el men contextual o haga clic en el botn
barra de herramientas.
de la
Valor de inicializacin
Cuadro de dilogo Valor de inicializacin
Las Expresiones de la variable se muestran con los valores de inicializacin actuales. Seleccione
las variables que desee y edite el valor de inicializacin en el campo que hay bajo la lista. A
continuacin, haga clic en el botn Aplicar valor sobre lneas seleccionadas. Para restaurar las
inicializaciones predeterminadas, haga clic en el botn Restablecer lneas seleccionadas a los
valores predeterminados.
Pulse CTRL + INTRO para insertar saltos de lnea en la entrada de Comentario.
416
EIO0000000071 04/2014
Editores de declaraciones
Descripcin
Declaracin
Comentario
Atributos
EIO0000000071 04/2014
417
Editores de declaraciones
Atributos
En el cuadro de dilogo Editar parte de declaracin, haga clic en el botn Atributos... para abrir
el cuadro de dilogo Atributos. Le permite introducir varios atributos y pragmas en formato de
texto. Insrtelos sin encerrarlos entre llaves {}; utilice una lnea por separado para cada uno.
Puede ver la vista de texto correspondiente al ejemplo de la figura siguiente en el grfico de la
vista del editor de texto (vase pgina 414) mostrado anteriormente.
Cuadro de dilogo Atributos
418
EIO0000000071 04/2014
Editores de declaraciones
EIO0000000071 04/2014
, una salida
419
Editores de declaraciones
420
EIO0000000071 04/2014
SoMachine
Editor de gestor de tipos de dispositivo (DTM)
EIO0000000071 04/2014
Captulo 14
Editor de gestor de tipos de dispositivo (DTM)
EIO0000000071 04/2014
421
Para obtener ms informacin acerca de DTM, consulte el documento SoMachine Device Type
Configuration (DTM) - Gua del usuario (vase SoMachine, Device Type Manager (DTM), User
Guide).
Para obtener una lista de las versiones de DTM que actualmente admite SoMachine, consulte las
Notas de la versin de la instalacin de SoMachine.
422
EIO0000000071 04/2014
SoMachine
Editor de tipo de datos (DUT)
EIO0000000071 04/2014
Captulo 15
Editor de tipo de datos (DUT)
EIO0000000071 04/2014
423
424
EIO0000000071 04/2014
SoMachine
Editor de lista de variables globales (GVL)
EIO0000000071 04/2014
Captulo 16
Editor de lista de variables globales (GVL)
EIO0000000071 04/2014
425
426
EIO0000000071 04/2014
SoMachine
Editor de lista de variables de red (NVL)
EIO0000000071 04/2014
Captulo 17
Editor de lista de variables de red (NVL)
Apartado
Pgina
17.1
428
17.2
429
EIO0000000071 04/2014
427
Seccin 17.1
Informacin sobre el editor NVL
428
EIO0000000071 04/2014
Seccin 17.2
Informacin general sobre las variables de red
Pgina
430
433
439
441
Ejemplo de
442
Compatibilidad
448
EIO0000000071 04/2014
429
430
EIO0000000071 04/2014
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DE LA MQUINA DEBIDO A UNA COMUNICACIN
INCORRECTA DE LA MISMA
z
z
z
z
z
Debe tener en cuenta las modalidades de fallo potenciales de rutas de control y proporcionar,
para ciertas funciones crticas de control, los medios para lograr un estado seguro durante y
despus de un fallo de ruta, incluidos los cortes de alimentacin y los reinicios del sistema.
Para las funciones de control crticas deben proporcionarse rutas de control separadas o
redundantes.
Debe tener en cuenta las implicaciones de los retrasos de transmisin no esperados o los
fallos de la conexin.
Tenga en cuenta todas las reglamentaciones para la prevencin de accidentes y las
normativas de seguridad locales.
Antes de entrar en servicio debe probarse, de forma individual y exhaustiva, cada implementacin del equipo que utiliza esta caracterstica.
Las GVL y GNVL correspondientes contienen las mismas declaraciones de variables. Una vez que
haya hecho doble clic en el nodo de la GVL o GNVL en el panel Dispositivos, podr visualizar el
contenido de la lista en el editor correspondiente.
Una GVL contiene las variables de red de un emisor. En la opcin Variables de red del emisor se
definen los parmetros de protocolo y transmisin. Segn esta configuracin, los valores de las
variables se difunden dentro de la red. Todos los controladores que dispongan de una GNVL
correspondiente pueden recibirlos.
NOTA: Para intercambiar variables de red es necesario instalar las bibliotecas de red que
correspondan. Este procedimiento se lleva a cabo de manera automtica para el tipo de red
estndar de UDP tan pronto como se establezcan las propiedades de red de una GVL.
EIO0000000071 04/2014
431
Las variables de red se transmiten de la GVL (emisor) a una o ms GNVL (receptores). Para cada
controlador, puede definir GVL, as como GNVL. Por tanto, cada uno de los controladores puede
actuar tanto de emisor como de receptor.
El mismo u otro proyecto pueden proporcionar una GVL de emisor. As que, al crear una GNVL,
puede seleccionarse la GVL de emisor en una lista de seleccin en la que aparezcan todas las
GVL disponibles dentro de la red, o puede leerse de un archivo de exportacin generado
previamente (por ejemplo, utilizando el cuadro de dilogo Vnculo con archivo) en la GVL.
NOTA: Si la GVL de emisor que se utilizar se define en otro proyecto, se necesitar un archivo
de exportacin.
Consideraciones de NVL
En la tabla siguiente se muestra la lista de controladores que admiten la funcionalidad lista de
variables de red (NVL).
Nombre de la funcin
M238
M241
M251
M258
LMC058
XBTGC
XBT GK
XBT GT
ATV IMC
No
S*
La figura muestra una red formada por 1 emisor y los 7 receptores recomendados como mximo:
Emisor A del controlador: emisor con la lista de variables globales (GVL) y controlador de receptor con las
listas de variables globales de red (GNVL).
Receptor del controlador del 1 al 7: receptores (con GNVL) de A y controlador de emisor (GVL) solo para A.
432
EIO0000000071 04/2014
Accin
EIO0000000071 04/2014
433
Valor
predeterminado
Descripcin
Tipo de red
UDP
Tarea
MAST
Identificador de listas 1
434
Parmetro
Valor
predeterminado
Descripcin
Comprimir variables
activado
Confirmacin
desactivado
Transmisin cclica
z Intervalo
activado
Transmisin en caso
de modificacin
z Distancia mnima
desactivado
z T#20ms
Transmisin
controlada por
eventos
z Variable
desactivado
z
Valor
predeterminado
Descripcin
Puerto
1202
Broadcast Adr.
255.255.255.255
EIO0000000071 04/2014
435
436
EIO0000000071 04/2014
Valor
predeterminado
Descripcin
Nombre
NVL
Tarea
Tarea definida en el En la lista de tareas, seleccione la tarea que recibir las tramas del
emisor disponibles en el nodo Configuracin de tareas del
nodo
Configuracin de controlador de receptor.
tareas de esta
Aplicacin.
Emisor
1 de las GVL
actualmente
disponibles en el
proyecto.
Importado del
archivo:
EIO0000000071 04/2014
437
Propiedades de la GNVL
Al hacer doble clic en una GNVL del rbol Dispositivos, se mostrar el contenido de la misma en
un editor que aparecer en la parte de la derecha. Sin embargo, no se puede editar el contenido
de la GNVL, ya que es solo una referencia al contenido de la GVL correspondiente. En la parte
superior del panel del editor se indica el nombre exacto y la ruta del emisor que contiene la GVL
correspondiente junto con el tipo de protocolo de red utilizado. Si se modifica la GVL correspondiente, el contenido de la GNVL se actualiza en consecuencia.
438
EIO0000000071 04/2014
Norma
La transmisin de datos de una GVL (emisor) a una GNVL (receptor) no debe superar los 200 bytes.
El intercambio de datos entre diversas GVL (emisores) de un controlador y sus GNVL (receptores)
asociadas no debe superar los 1.000 bytes de variables.
Norma
Descripcin
Limite el nmero de
datagramas recibidos por
ciclo a 20.
Limite el nmero de
datagramas transmitidos
por ciclo a 20.
Si el nmero de datagramas recibidos/transmitidos por ciclo supera el lmite varias veces, puede
suceder lo siguiente:
z Prdida de datagramas de UDP (protocolo de datagramas de usuario)
z Intercambio de variables incoherente o inconsistente
Adapte los parmetros siguientes segn sus necesidades:
tiempo de ciclo del controlador de emisor
z tiempo de ciclo del controlador de receptor
z nmero de emisores en la red
z
AVISO
PRDIDA DE DATOS
Antes de poner el sistema en funcionamiento, compruebe minuciosamente que la transmisin y
la recepcin de datagramas de UDP de su aplicacin sean correctas.
El incumplimiento de estas instrucciones puede causar dao al equipo.
EIO0000000071 04/2014
439
AVISO
PRDIDA DE COMUNICACIN
Asegrese de que solo una direccin IP utiliza el identificador de listas de la red.
El incumplimiento de estas instrucciones puede causar dao al equipo.
La funcin de comprobacin del identificador de listas se implementa en el controlador de
receptor.
Si una GNVL (receptor) detecta que dos direcciones IP distintas utilizan el mismo identificador de
listas, el receptor deja inmediatamente de recibir datagramas.
Adems, aparecer una notificacin en el bloque de funciones NETVARGETDIAGINFO. Se
proporcionan las direcciones IP de los dos emisores en los parmetros de salida
dwDuplicateListIdIp1 y dwDuplicateListIdIp2 de este bloque de funciones
(vase SoMachine, Configuracin de variables de red, Gua de la biblioteca SE_NetVarUdp).
Con el bloque de funciones NETVARRESETERROR se restablecern los errores que se detecten en
la NVL y se volver a iniciar la comunicacin.
440
EIO0000000071 04/2014
Emisor
Receptor
RUN
RUN
STOP
RUN
RUN
STOP
STOP
STOP
No se intercambian variables.
EIO0000000071 04/2014
441
Ejemplo de
Descripcin general
En el ejemplo siguiente, se establece un intercambio simple de variables de red. Se crea una lista
de variables globales (GVL) en el controlador de emisor. Se crea la lista de variables globales de
red (GNVL) correspondiente en el controlador de receptor.
Lleve a cabo las preparaciones siguientes en un proyecto estndar, en el que estn disponibles
un controlador de emisor Dev_Sender y un controlador de receptor Dev_Receiver en el rbol
Dispositivos:
z Cree un POU (programa) prog_sender debajo del nodo Aplicacin de Dev_Sender.
z Debajo del nodo Configuracin de tareas de esta aplicacin, aada la tarea Task_S que
invoca prog_sender.
z Cree un POU (programa) prog_rec debajo del nodo Aplicacin de Dev_Receiver.
z Debajo del nodo Configuracin de tareas de esta aplicacin, aada la tarea Task_R que
invoca prog_rec.
NOTA: Se deben configurar los 2 controladores en la misma subred de la red Ethernet.
442
EIO0000000071 04/2014
Accin
Comentario
EIO0000000071 04/2014
443
444
Accin
Comentario
EIO0000000071 04/2014
Accin
Comentario
Configure los parmetros tal como se muestra en el Esta lista de variables globales de red es la
grfico.
homloga de la GVL definida para el controlador de
emisor.
EIO0000000071 04/2014
445
Paso
3
Accin
Comentario
446
Accin
Comentario
EIO0000000071 04/2014
Accin
Comentario
EIO0000000071 04/2014
447
Compatibilidad
Introduccin
A pesar de que los controladores funcionan con aplicaciones de versiones distintas del sistema de
programacin (por ejemplo, V2.3 y V3.x), es posible establecer una comunicacin mediante las
variables de red.
Sin embargo, la diferencia de los formatos de los archivos de exportacin entre versiones (*.exp
en comparacin con *.gvl) hace que sea imposible importar y exportar simplemente estos archivos
entre proyectos.
Si se configura una lista de variables globales de red (GNVL) de lectura en la versin ms reciente
(por ejemplo, V3.x), el emisor de la versin ms reciente (por ejemplo, V3.x) debe proporcionar la
configuracin de los parmetros de red necesarios. Los archivos de exportacin *.exp creados por
una versin anterior (por ejemplo, V2.3) a partir de un emisor no contienen esta informacin.
En los prrafos siguientes se proporciona una solucin para intercambiar variables de red entre
aplicaciones de distintas versiones de sistemas de programacin.
Actualizacin de la lista de variables globales de red
Para intercambiar variables de red entre aplicaciones de distintas versiones de sistemas de
programacin (por ejemplo, V2.3 y V3.x), actualice la lista de variables globales de red siguiendo
los pasos siguientes:
Paso
Accin
Comentario
EIO0000000071 04/2014
Descripcin
En la versin anterior del sistema de programacin (V2.3), el proyecto 23.pro contiene una lista de
variables globales GVL_23 con la declaracin siguiente:
VAR_GLOBAL
trans23:INT;
END_VAR
NOTA: La exportacin de GVL_23 genera un archivo *.exp que contiene nicamente la declaracin
de variables siguiente:
VAR_GLOBAL
trans23:INT;
END_VAR
El archivo *.exp no contiene ajustes de configuracin.
EIO0000000071 04/2014
449
En la tabla siguiente se muestran los pasos siguientes que tienen que ejecutarse para volver a
crear GVL_23 en la versin ms reciente (V3.x):
Paso
450
Accin
Comentario
EIO0000000071 04/2014
Paso
Accin
Comentario
Compile el proyecto.
EIO0000000071 04/2014
451
452
EIO0000000071 04/2014
SoMachine
Editor de tarea
EIO0000000071 04/2014
Captulo 18
Editor de tarea
Editor de tarea
Contenido de este captulo
Este captulo contiene los siguiente apartados:
Apartado
Pgina
454
Ficha Propiedades
455
Ficha Supervisin
456
458
462
EIO0000000071 04/2014
453
Editor de tarea
Tareas
Una tarea (vase pgina 458) se utiliza para controlar el procesamiento de un programa IEC. Se
define por un nombre, una prioridad y por un tipo que determina en qu condicin se
desencadenar el inicio de la tarea. Puede definir esta condicin por un tiempo (cclico, de
ejecucin libre) o por un evento interno o externo que desencadenar la tarea; por ejemplo, el
flanco ascendente de una variable de proyecto global o un evento de interrupcin del controlador.
Para cada tarea, puede especificar una serie de POU de programa que ser iniciada por la tarea.
Si la tarea se ejecuta en el presente ciclo, estos programas se procesarn durante 1 ciclo.
La combinacin de prioridad y condicin determinar en qu orden cronolgico
(vase pgina 462) se ejecutarn las tareas.
Para cada tarea, puede configurar un control de tiempo (watchdog). La configuracin posible
depende de la plataforma del controlador en cuestin.
454
EIO0000000071 04/2014
Editor de tarea
Ficha Propiedades
Descripcin general
Cuando se selecciona el nodo Configuracin de tareas (vase pgina 454), la ficha
Propiedades se abre en la vista del editor de tareas.
Configuracin de tareas, ficha Propiedades, ejemplo
EIO0000000071 04/2014
455
Editor de tarea
Ficha Supervisin
Descripcin general
Si se admite en el sistema de destino, se permite la funcionalidad de supervisin. Se trata de un
anlisis dinmico del tiempo de ejecucin, el nmero de llamadas y la cobertura de cdigo de las
POU, que se controla mediante una tarea. En la modalidad online, se puede supervisar el
procesamiento de tareas.
Vista online del editor de tarea
Cuando selecciona el nodo superior del rbol Configuracin de tarea, adems de la ficha
Propiedades (vase pgina 455), la ficha Supervisin est disponible. En la modalidad online,
muestra el estado y algunas estadsticas actuales sobre los ciclos y tiempos de ciclo en una vista
de tabla. El intervalo de actualizacin de los valores es el mismo que el utilizado para la
supervisin de los valores del controlador.
Descripcin de los elementos
Cuando se selecciona el nodo superior del rbol Configuracin de tareas, adems del cuadro de
dilogo Propiedades (vase pgina 455) est disponible en otra ficha el cuadro de dilogo
Supervisin. En la modalidad online, muestra el estado y algunas estadsticas actuales sobre los
ciclos y tiempos de ciclo en una vista de tabla. El intervalo de actualizacin de los valores es el
mismo que el utilizado para la supervisin de los valores del controlador.
Configuracin de tareas, Supervisin
456
Tarea
Estado
Entradas posibles:
z No creado: no se ha iniciado desde la ltima actualizacin;
especialmente utilizado para tareas de eventos.
z Creado: la tarea se conoce en el sistema de tiempo de
ejecucin, pero an no se ha configurado para su
funcionamiento.
z Vlido: la tarea funciona de forma normal.
z Excepcin: la tarea tiene una excepcin.
Editor de tarea
Nmero de ciclos
Tiempo de ciclo mximo (s) Tiempo de ejecucin mximo de todos los ciclos medido en s.
Tiempo de ciclo mnimo (s) Tiempo de ejecucin mnimo de todos los ciclos medido en s.
Inestabilidad (s)
* inestabilidad: Tiempo que pasa despus del inicio de la tarea hasta que el sistema operativo
indica que est en ejecucin.
Para restablecer los valores a 0 para una tarea, coloque el cursor en el campo de nombre de tarea
y ejecute el comando Restablecer, disponible en el men contextual.
EIO0000000071 04/2014
457
Editor de tarea
Tipo
La lista de seleccin ofrece los tipos de tarea siguientes:
Cclico
458
EIO0000000071 04/2014
Editor de tarea
Tipo
Ejecucin libre
Estado
Evento
Evento externo
En los puntos de muestreo 1...4, tareas de distintos tipos muestran una reaccin diferente:
Comportamiento en el punto:
Estado
no iniciar
iniciar
iniciar
iniciar
Evento
no iniciar
iniciar
EIO0000000071 04/2014
459
Editor de tarea
Descripcin
Intervalo
Tiempo de
ciclo de tarea
Evento
Configuracin de watchdogs
Para cada tarea, puede configurar un control de tiempo (watchdog).
La configuracin predeterminada del watchdog depende del controlador.
Cuando la opcin Habilitar est activada (tiene la marca de verificacin), el watchdog est
habilitado. Cuando el watchdog de tareas est habilitado, se detecta un error de Excepcin si el
tiempo de ejecucin de la tarea supera el lmite de tiempo de tarea definido (Tiempo) relativo a la
Sensibilidad definida. Si la opcin Actualizar E/S en parada est habilitada en el cuadro de
dilogo de configuracin del controlador, las salidas se configurarn con los valores predeterminados predefinidos segn la plataforma de controlador especfica.
Tiempo (por ejemplo t#200
ms)
Sensibilidad
Para obtener ms informacin, consulte el captulo System and Task Watchdog de la gua de
programacin de su controlador.
460
EIO0000000071 04/2014
Editor de tarea
POU
Las POU controladas por la tarea se enumeran aqu en una tabla con el nombre de la POU y un
Comentario opcional. Encima de la tabla hay comandos para la edicin:
z Para definir una POU nueva, abra el cuadro de dilogo Accesibilidad mediante el comando
Agregar llamada. Seleccione uno de los programas disponibles en el proyecto. Tambin
puede aadir POU de tipo programa a la lista mediante el mtodo de arrastrar y soltar desde el
rbol Aplicaciones.
z Para sustituir una llamada de programa por otra, seleccione la entrada en la tabla, abra
Accesibilidad mediante el comando Modificar llamada y seleccione otro programa.
z Para eliminar una llamada, seleccinela en la tabla y utilice el comando Eliminar llamada.
z El comando Abrir POU abre el programa seleccionado actualmente en el editor
correspondiente.
La secuencia de las llamadas POU enumeradas de arriba abajo determina la secuencia de
ejecucin en modalidad online. Puede desplazar la entrada seleccionada dentro de la lista por
medio de los comandos Uno adelante y Uno atrs.
Funciones de cadena
Las funciones de cadena de la biblioteca estndar (consulte la seccin Bibliotecas CoDeSys /
Biblioteca estndar de la ayuda online de SoMachine) no estn programadas para ser reentrantes.
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
No utilice la misma funcin de cadena en varias tareas, ya que puede causar fallos de programa
al sobrescribir.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao
al equipo.
Para ayudar a superar esta limitacin, puede utilizar la sincronizacin de tareas IEC de
CAA_Types.library (consulte la seccin Bibliotecas CoDeSys / CAA_Types.library de la ayuda
online de SoMachine).
EIO0000000071 04/2014
461
Editor de tarea
462
EIO0000000071 04/2014
SoMachine
Editor de lista de supervisin
EIO0000000071 04/2014
Captulo 19
Editor de lista de supervisin
Pgina
464
465
467
EIO0000000071 04/2014
463
464
EIO0000000071 04/2014
Variable
Entrada
Salida
Normal
EIO0000000071 04/2014
465
Tenga en cuenta que en caso de una variable estructurada, como la instancia de bloque de
funciones, los componentes de la instancia especfica se aaden automticamente cuando se
introduce el nombre de la instancia (valo en el ejemplo: Dev1.App1.PLC_PRG.fbinst). Haga
clic en el signo ms/menos para mostrarlos u ocultarlos en una estructura.
Ejemplo, vista de supervisin en la modalidad offline
En la modalidad online (vase pgina 467), puede utilizar la lista para la supervisin de los valores
de las variables.
NOTA: En la modalidad online puede aadir expresiones a la lista de supervisin mediante el uso
del comando Agregar a la lista de supervisin.
466
EIO0000000071 04/2014
EIO0000000071 04/2014
467
468
EIO0000000071 04/2014
SoMachine
Herramientas en los editores de lgica
EIO0000000071 04/2014
Captulo 20
Herramientas en los editores de lgica
Pgina
470
Accesibilidad
474
EIO0000000071 04/2014
469
470
EIO0000000071 04/2014
EIO0000000071 04/2014
471
El cuadro de dilogo Buscador FFB contiene los siguientes elementos para encontrar una funcin
o un bloque de funciones:
Elemento
Descripcin
Buscar
Empresa
Maysculas y minsculas
Incluir comentarios en la bsqueda Marque la casilla Incluir comentarios en la bsqueda para buscar la
cadena especificada no slo en los nombres de funciones y bloques de
funciones, sino tambin en los comentarios que se guardan con ellos.
De forma predeterminada, esta casilla no est seleccionada.
Buscar nicamente en bibliotecas
del proyecto
Buscar
Haga clic en el botn Buscar o pulse la tecla INTRO para empezar a buscar
la funcin o el bloque de funciones.
472
EIO0000000071 04/2014
EIO0000000071 04/2014
473
Accesibilidad
Descripcin general
El cuadro de dilogo Accesibilidad y el comando correspondiente Accesibilidad (de forma
predeterminada, en el men Editar Codificacin inteligente) slo est disponibles si el cursor
se coloca en una ventana del editor de texto. El cuadro de dilogo ofrece los elementos del
proyecto disponibles para su insercin en la posicin actual del cursor.
Cuadro de dilogo Accesibilidad
474
EIO0000000071 04/2014
Descripcin
Categoras
Filtro
rea Objetos
Nombre:, Tipo,
Direccin, Origen
Vista estructurada
NOTA: Si hay objetos disponibles con el mismo nombre en el nodo Global del rbol Aplicaciones
as como debajo de una aplicacin (rbol Aplicaciones), slo se ofrece 1 entrada en
Accesibilidad, porque el uso del objeto viene determinado por las prioridades de llamada
habituales (primero el objeto asignado por la aplicacin, luego el global).
Elemento
Descripcin
Mostrar documentacin
EIO0000000071 04/2014
475
476
EIO0000000071 04/2014
SoMachine
Herramientas
EIO0000000071 04/2014
Parte VI
Herramientas
Herramientas
Contenido de esta parte
Esta parte contiene los siguientes captulos:
Captulo
Pgina
21
Gestin de alarmas
479
22
Registro de datos
501
23
Gestor de frmulas
503
24
Editor de traza
523
25
551
26
559
EIO0000000071 04/2014
477
Herramientas
478
EIO0000000071 04/2014
SoMachine
Gestin de alarmas
EIO0000000071 04/2014
Captulo 21
Gestin de alarmas
Gestin de alarmas
Contenido de este captulo
Este captulo contiene los siguiente apartados:
Apartado
Pgina
Introduccin
480
Configuracin de alarmas
481
Definicin de alarma
483
485
486
492
498
EIO0000000071 04/2014
479
Gestin de alarmas
Introduccin
Administracin de alarmas
Puede utilizar la administracin de alarmas como parte de una aplicacin para los fines siguientes:
para ayudar a indicar los posibles errores de la mquina o del proceso
z para registrarlos
z para visualizarlos con la ayuda de elementos de visualizacin adecuados
z
A travs de la aplicacin o entradas del usuario en la visualizacin, las alarmas se pueden advertir
y gestionar adecuadamente a travs de acuses de recibo y acciones posteriores. Para este
propsito hay disponibles elementos de visualizacin especiales, as como una biblioteca.
Para obtener ms informacin, consulte el captulo Definicin de alarma (vase pgina 483).
Establecimiento de un rbol Configuracin de alarmas
Establezca un rbol Configuracin de alarmas adecuado en un proyecto situado bajo la
aplicacin correspondiente, como se muestra en la siguiente figura.
z
z
z
z
z
480
EIO0000000071 04/2014
Gestin de alarmas
Configuracin de alarmas
Descripcin general
Para configurar la gestin de alarmas en SoMachine, aada un objeto Configuracin de alarmas
debajo del nodo Aplicacin en el rbol Aplicaciones. Este objeto no muestra ninguna vista de
editor. Slo sirve como nodo raz debajo del cual deber insertar los objetos de configuracin
concretos:
z Clase de alarma: Una clase de alarma sirve para establecer el tipo de alarma, que significa
que define un conjunto bsico de parmetros determinado para una alarma. La clase es un
ajuste obligatorio que debe realizarse cuando se crea un grupo de alarmas. Por ejemplo, define
cmo acusar recibo de la alarma y si debe registrarse y visualizarse o escribirse en un archivo.
Para obtener ms informacin sobre cmo realizar la configuracin, consulte Editor de clases
de alarmas (vase pgina 486).
z Grupo de alarmas: Un grupo de alarmas sirve para realizar la configuracin concreta de una
o varias alarmas (a las que se asigna una clase determinada y otros parmetros) para usarlas
en la aplicacin. Para obtener ms informacin sobre cmo realizar la configuracin, consulte
Editor de grupos de alarmas (vase pgina 492).
z Archivo de Guardado de alarmas: Este archivo lo proporciona implcitamente una base de
datos y sirve para guardar los registros de alarmas. Para obtener ms informacin sobre cmo
realizar la configuracin, consulte Editor de almacenamiento de alarmas (vase pgina 498).
Puede definir ms configuraciones en los elementos respectivos de visualizacin de alarmas, la
tabla de alarmas y el banner de alarmas.
Para poder usar esta configuracin de alarmas en la gestin de las alarmas de las POU de la
aplicacin, la biblioteca AlarmManager.library ofrece funciones e interfaces especiales.
EIO0000000071 04/2014
481
Gestin de alarmas
482
EIO0000000071 04/2014
Gestin de alarmas
Definicin de alarma
Descripcin general
En SoMachine, una definicin de alarma se compone de los siguientes elementos bsicos:
descripcin general (como el ID y el texto del mensaje)
z descripcin de la causa de la alarma (por ejemplo, la expresin a supervisar, los lmites o el
tiempo de espera mnimo)
z descripcin de los efectos de la alarma (por ejemplo, acciones, propiedades de visualizacin o
mtodo de acuse de recibo)
z
ACK (2#001)
REP_ACK (2#011)
ACK_REP (2#110)
ACK_REP_ACK (2#111)
NO_ACK
Acuse de recibo de alarmas: El objetivo principal de las alarmas es informar al usuario sobre las
situaciones de alarma. Para ello, suele ser necesario verificar que el usuario haya recibido esta
informacin (consulte las posibles acciones asignadas a una alarma en la configuracin de la
clase de alarma). El usuario debe acusar recibo de la alarma para que se elimine de la lista de
alarmas. Los tipos concretos de acuse de recibo se pueden describir como transiciones de estado
en los diagramas de estado.
EIO0000000071 04/2014
483
Gestin de alarmas
Evento de alarma: No confunda un evento de alarma con una condicin de alarma. Mientras que
una condicin de alarma puede ser vlida para un tiempo ms largo, un evento de alarma describe
la ocurrencia momentnea de un cambio, o sea, un cambio del estado normal al estado de alarma.
En la configuracin de alarma de SoMachine se utilizan los mismos nombres (Active, ACK,
Deactive) para los 3 tipos de eventos y los estados de alarma correspondientes.
SoMachine admite las siguientes funciones:
z desactivacin de la generacin de alarma para las alarmas individuales, as como para grupos
de alarmas
z seleccin de las alarmas que se mostrarn mediante la definicin de grupos y prioridades de
alarma
z almacenamiento de los eventos de alarma en una tabla de alarmas
z visualizacin de los elementos tabla de alarmas y banner de alarmas en SoMachine
484
EIO0000000071 04/2014
Gestin de alarmas
EIO0000000071 04/2014
485
Gestin de alarmas
Las clases de alarma se aaden al rbol de configuracin de alarmas de una aplicacin como
objetos individuales. Cada clase de alarma se puede configurar.
Las clases de alarmas configuradas estn disponibles en una lista de seleccin en el cuadro de
dilogo de configuracin de un grupo de alarmas (vase pgina 492) para definir la configuracin
bsica para cada alarma perteneciente a este grupo especfico.
Por ejemplo, podra definir una clase de alarma para alarmas que son de alta ponderacin o
prioridad y una para alarmas que son de prioridad o ponderacin inferior, en las que slo se
deberan ofrecer advertencias. De forma invariable, estos tipos de situaciones de alarma diferirn
por lo que respecta a la prioridad y los requisitos de acuse de recibo.
486
EIO0000000071 04/2014
Gestin de alarmas
Parmetro
Descripcin
Prioridad
Archivado
Habilite esta opcin si desea que se registren las alarmas de esta clase
respecto a la configuracin de almacenamiento de alarmas definida
actualmente.
EIO0000000071 04/2014
487
Gestin de alarmas
Descripcin
REP
ACK
REP_ACK
ACK_REP
ACK_REP_ACK
Vea a continuacin para cada mtodo de acuse de recibo un diagrama que muestra la secuencia
de estados y estados de transicin. Estos diagramas se muestran en una informacin sobre
herramientas cuando se coloca el cursor del ratn sobre el cuadro de seleccin en el editor de
configuracin.
Transiciones de estado para el mtodo de acuse de recibo ACK
488
EIO0000000071 04/2014
Gestin de alarmas
Estados posibles
Estado
Descripcin
Normal
Activo
Esperar confirmacin
Activo, confirmado
Descripcin
activar
desactivar
confirmar
ACK
Confirmar por separado: Si esta opcin est activada, no se puede acusar recibo de la alarma
junto con otras alarmas.
Descripcin del rea Acciones de notificacin
A cada clase de alarma se le puede asignar una lista de acciones que se deben realizar en cuanto
se produzca una transicin de estado en la alarma.
Para aadir una Accin, haga doble clic en la columna Accin de la ltima lnea vaca de la tabla.
Se abre una lista de seleccin en la que se puede seleccionar una de las opciones siguientes:
Llamada (de un bloque de funciones)
z Ejecutar (un archivo)
z Variable (asignacin)
z
EIO0000000071 04/2014
489
Gestin de alarmas
Segn el tipo de accin, se deben definir los parmetros adicionales siguientes en los campos de
edicin en el rea que hay bajo la tabla:
Accin
Parmetros
Variable
Llamada
Ejecutar
490
EIO0000000071 04/2014
Gestin de alarmas
EIO0000000071 04/2014
491
Gestin de alarmas
492
EIO0000000071 04/2014
Gestin de alarmas
Descripcin
Desactivacin
Lista de texto
Archivado
Descripcin
ID
1)
Para este tipo de supervisin, puede supervisar la expresin especificada de forma absoluta o relativa. Si
se hace de forma absoluta, el lmite se define mediante un valor fijo o una variable que proporcione un valor
fijo. Si se hace de forma relativa, el lmite se basa en una determinada expresin, por ejemplo: Lmite
superior: Variable x >= 0.9 * y.
De forma opcional, se puede especificar una histresis.
Histresis en %: Si se especifica una histresis, la situacin de alarma ser verdadera hasta que se alcance
una cierta desviacin respecto al valor de lmite especificado. El tamao de la desviacin se define como un
porcentaje [%] del valor de lmite. Ejemplo: Lmite superior: i_temp >= 30 Hysteresis: 10%. En
cuanto la variable i_temp alcanza o supera el valor 30, se produce la situacin de alarma. La situacin de
alarma no termina hasta que el valor queda por debajo de 27.
EIO0000000071 04/2014
493
Gestin de alarmas
Descripcin
Tipo de
supervisin
Digital
Lmite superior
Lmite inferior1)
Dentro de
rango1)
Fuera de rango1)
Modificacin
Evento
1)
Para este tipo de supervisin, puede supervisar la expresin especificada de forma absoluta o relativa. Si
se hace de forma absoluta, el lmite se define mediante un valor fijo o una variable que proporcione un valor
fijo. Si se hace de forma relativa, el lmite se basa en una determinada expresin, por ejemplo: Lmite
superior: Variable x >= 0.9 * y.
De forma opcional, se puede especificar una histresis.
Histresis en %: Si se especifica una histresis, la situacin de alarma ser verdadera hasta que se alcance
una cierta desviacin respecto al valor de lmite especificado. El tamao de la desviacin se define como un
porcentaje [%] del valor de lmite. Ejemplo: Lmite superior: i_temp >= 30 Hysteresis: 10%. En
cuanto la variable i_temp alcanza o supera el valor 30, se produce la situacin de alarma. La situacin de
alarma no termina hasta que el valor queda por debajo de 27.
494
EIO0000000071 04/2014
Gestin de alarmas
Descripcin
Detalles
Desactivacin
Clase
Mensaje
1)
Para este tipo de supervisin, puede supervisar la expresin especificada de forma absoluta o relativa. Si
se hace de forma absoluta, el lmite se define mediante un valor fijo o una variable que proporcione un valor
fijo. Si se hace de forma relativa, el lmite se basa en una determinada expresin, por ejemplo: Lmite
superior: Variable x >= 0.9 * y.
De forma opcional, se puede especificar una histresis.
Histresis en %: Si se especifica una histresis, la situacin de alarma ser verdadera hasta que se alcance
una cierta desviacin respecto al valor de lmite especificado. El tamao de la desviacin se define como un
porcentaje [%] del valor de lmite. Ejemplo: Lmite superior: i_temp >= 30 Hysteresis: 10%. En
cuanto la variable i_temp alcanza o supera el valor 30, se produce la situacin de alarma. La situacin de
alarma no termina hasta que el valor queda por debajo de 27.
EIO0000000071 04/2014
495
Gestin de alarmas
Descripcin
1)
Para este tipo de supervisin, puede supervisar la expresin especificada de forma absoluta o relativa. Si
se hace de forma absoluta, el lmite se define mediante un valor fijo o una variable que proporcione un valor
fijo. Si se hace de forma relativa, el lmite se basa en una determinada expresin, por ejemplo: Lmite
superior: Variable x >= 0.9 * y.
De forma opcional, se puede especificar una histresis.
Histresis en %: Si se especifica una histresis, la situacin de alarma ser verdadera hasta que se alcance
una cierta desviacin respecto al valor de lmite especificado. El tamao de la desviacin se define como un
porcentaje [%] del valor de lmite. Ejemplo: Lmite superior: i_temp >= 30 Hysteresis: 10%. En
cuanto la variable i_temp alcanza o supera el valor 30, se produce la situacin de alarma. La situacin de
alarma no termina hasta que el valor queda por debajo de 27.
Descripcin
DATE
TIME
EXPRESSION
PRIORITY
TRIGGERVALUE
ALARMID
CLASS
ALLDEFAULT
CURRENTVALUE
*
Para TRIGGERVALUE, CURRENTVALUE, LATCH1 y LATCH2 tambin puede utilizar cadenas de formato
vlidas para la funcin C printf; por ejemplo: <CURRENTVALUE %d>.
496
EIO0000000071 04/2014
Gestin de alarmas
Marcador de posicin
Descripcin
LATCH1 *
LATCH2 *
ALARM
STATE
*
Para TRIGGERVALUE, CURRENTVALUE, LATCH1 y LATCH2 tambin puede utilizar cadenas de formato
vlidas para la funcin C printf; por ejemplo: <CURRENTVALUE %d>.
EIO0000000071 04/2014
497
Gestin de alarmas
498
Parmetro
Descripcin
Subdirectorio
Lmite
Nmero mximo
de registros
EIO0000000071 04/2014
Gestin de alarmas
Parmetro
Descripcin
Tamao de
Especifique el tamao mximo del archivo de
memoria mximo almacenamiento introduciendo un nmero y una unidad.
Este tamao se convertir de forma implcita en el nmero
mximo de entradas de registro correspondiente que se
almacenar en el archivo (bfer anular).
Bfer anular
EIO0000000071 04/2014
499
Gestin de alarmas
500
EIO0000000071 04/2014
SoMachine
Registro de datos
EIO0000000071 04/2014
Captulo 22
Registro de datos
Registro de datos
Introduccin al registro de datos
Descripcin general
Puede supervisar y analizar los datos de la aplicacin examinando el archivo de registro de datos
(.log).
Controlador
aplicacin
Controlador
memoria
Archivo de registro
FB
LogRecord
Archivo de registro
Comando de
volcado
FB
Volcado
Bfer de
Archivo
de registro
Registro de datos x
Registro de datos y
Registro de datos z
Volcado
automtico
Nuevo
Registro
de datos
LogFile.log
Registro de datos 1
Registro de datos 2
Registro de datos 3
Registro de datos 4
Registro de datos 5
Registro de datos 6
En la ilustracin se muestra una aplicacin que incluye los 2 bloques de funciones, LogRecord y
Dump. El bloque de funciones LogRecord escribe datos en el bfer, que se vacan en el archivo
de registro de datos (.log) ubicado en la memoria del controlador. El volcado de bfer es
automtico cuando est al 80%, o se puede forzar con la funcin Dump. Como cliente FTP
estndar, un PC puede acceder a este archivo de registro de datos cuando el controlador acta
como servidor FTP. Tambin es posible cargar el archivo con SoMachine o el servidor web del
controlador.
EIO0000000071 04/2014
501
Registro de datos
NOTA: Slo los controladores con la funcin de gestin de archivos son compatibles con el
registro de datos. Consulte el manual de programacin del controlador para ver si admite la
gestin de archivos. El software por s mismo no comprueba la compatibilidad del controlador con
las actividades de registro de datos.
Archivo de registro de datos de ejemplo (.log)
Entries in File: 8; Last Entry: 8;
18/06/2009;14:12:33;cycle: 1182;
18/06/2009;14:12:35;cycle: 1292;
18/06/2009;14:12:38;cycle: 1450;
18/06/2009;14:12:40;cycle: 1514;
18/06/2009;14:12:41;cycle: 1585;
18/06/2009;14:12:43;cycle: 1656;
18/06/2009;14:14:20;cycle: 6346;
18/06/2009;14:14:26;cycle: 6636;
Procedimiento de implementacin
Antes de empezar a escribir el programa, primero debe declarar y configurar los archivos de
registro de datos en la aplicacin.
502
EIO0000000071 04/2014
SoMachine
Gestor de frmulas
EIO0000000071 04/2014
Captulo 23
Gestor de frmulas
Gestor de frmulas
Contenido de este captulo
Este captulo contiene los siguiente apartados:
Apartado
Pgina
Gestor de frmulas
504
Definicin de frmula
508
Comandos RecipeMan
513
EIO0000000071 04/2014
503
Gestor de frmulas
Gestor de frmulas
Descripcin general
La funcionalidad Gestor de frmulas slo est disponible si se selecciona en el conjunto de
caractersticas usado actualmente (Opciones Caractersticas Conjunto predefinido de
caractersticas).
El gestor de frmulas proporciona la funcionalidad para gestionar listas de variables de proyecto
definidas por el usuario, definiciones de frmulas con nombre y conjuntos de valores definidos
para estas variables dentro de una definicin de frmula, denominados frmulas.
Puede utilizar estas frmulas para configurar y supervisar parmetros de control en el controlador.
Tambin se pueden cargar de archivos y guardar en archivos. Estas interacciones son posibles
utilizando elementos de visualizacin que debe configurar debidamente (comando de ejecucin
de configuracin de entrada). Tambin puede utilizar determinados comandos de frmula en la
aplicacin (vase pgina 513).
Cuando haya seleccionado una frmula, confirme si dicha frmula se ajusta al proceso que se
controlar.
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
z
z
z
z
z
z
504
EIO0000000071 04/2014
Gestor de frmulas
EIO0000000071 04/2014
505
Gestor de frmulas
Parmetro
Descripcin
Tipo de guardado
Ruta de archivo
506
EIO0000000071 04/2014
Gestor de frmulas
Parmetro
Descripcin
Separador
Columnas disponibles
Columnas seleccionadas
Botones de flecha
Guardar automticamente
las modificaciones en las
frmulas
Descripcin
EIO0000000071 04/2014
507
Gestor de frmulas
Definicin de frmula
Descripcin general
El gestor de frmulas (vase pgina 504) gestiona una o varias definiciones de frmulas. Una
definicin de frmula contiene una lista de variables y una o varias frmulas (conjuntos de valores)
para estas variables. Utilizando distintas frmulas, puede asignar otro conjunto de valores a un
conjunto de variables en el controlador de una sola vez. No existe ninguna limitacin sobre el
nmero de definiciones de frmulas, frmulas y variables por frmula.
Definicin de frmula
Puede aadir uno o varios objetos Definicin de frmula a un nodo Gestor de frmulas en el
rbol Herramientas. Para hacerlo, haga clic en el signo ms de color verde del nodo Gestor de
frmulas y ejecute el comando Definicin de frmula...
Haga doble clic en el nodo para ver y editar definiciones de frmula, incluidas las frmulas
especficas, en una vista de editor independiente.
Vista del editor de definiciones de frmulas
1
2
508
Parmetro
Descripcin
Variable
En una tabla, puede introducir varias variables de proyecto para las que
desee definir una o varias frmulas. Con este objetivo, puede utilizar el
comando Insertar variable cuando el cursor est en cualquier campo de
cualquier lnea. Como alternativa, puede hacer doble clic en un campo
Variable o puede seleccionarlo y pulsar la barra espaciadora para entrar en
la modalidad de editor. Introduzca el nombre vlido de una variable de
proyecto, por ejemplo plc_prg.ivar. Haga clic en el botn ... para abrir el
asistente Accesibilidad.
Tipo
Nombre
EIO0000000071 04/2014
Gestor de frmulas
Parmetro
Descripcin
Comentario
Valor actual
Guardar automticamente
las modificaciones en las
frmulas
Puede eliminar una variable (lnea) de la tabla pulsando la tecla SUPR cuando una de sus celdas
est seleccionada. Puede seleccionar varias lneas manteniendo pulsada la tecla CTRL mientras
selecciona celdas. Puede copiar las lneas seleccionadas mediante copiar y pegar. El comando
Pegar inserta las lneas copiadas encima de la lnea seleccionada actualmente. Al hacerlo, los
valores de las frmulas se insertarn en la columna de la frmula coincidente, si est disponible.
Para aadir una frmula a la definicin de frmula, ejecute el comando (vase SoMachine,
Comandos de men, Ayuda en lnea) Insertar frmula cuando el foco est en la vista del editor.
Para cada frmula, se crear una columna propia, que llevar como ttulo el nombre de la frmula
(ejemplo: R1 y R2 en la figura anterior).
En modalidad online, una frmula se puede modificar mediante un elemento de visualizacin
configurado adecuadamente (comando de ejecucin de configuracin de entrada) o utilizando los
mtodos apropiados del bloque de funciones RecipeManCommands de
Recipe_Management.library.
Son compatibles los mtodos siguientes:
ReadRecipe: Los valores de la variable actual se adoptan en la frmula.
z WriteRecipe: La frmula se escribe en las variables.
z SaveRecipe: La frmula se almacena en un archivo de frmula estndar.
z LoadRecipe: La frmula se carga de un archivo de frmula estndar.
z CreateRecipe: Se crea una frmula nueva en la definicin de la frmula.
z DeleteRecipe: Se elimina una frmula existente de una definicin de frmula.
z
Consulte en los prrafos siguientes cmo se comportan las frmulas en los estados online
especficos. Se recomienda establecer la opcin Guardar automticamente las modificaciones
en las frmulas (para obtener el comportamiento habitual de una gestin de frmulas).
EIO0000000071 04/2014
509
Gestor de frmulas
Frmula
Puede aadir o eliminar una frmula offline u online. Si est en modalidad offline, utilice los
comandos Insertar frmula (vase SoMachine, Comandos de men, Ayuda en lnea) y Quitar
frmula (vase SoMachine, Comandos de men, Ayuda en lnea) en el editor de gestor de
frmulas. En modalidad online, configure una entrada en un elemento de visualizacin
debidamente configurado o utilice los mtodos apropiados del bloque de funciones RecipeManCommands de Recipe_Management.library.
Al aadir una frmula, se aadir una columna adicional detrs de la columna situada ms a la
derecha, que llevar como ttulo el nombre de la frmula (consulte la figura de la vista del editor
de frmulas). Los campos de una columna de frmula se pueden rellenar con valores apropiados.
De este modo, para el mismo conjunto de variables se pueden preparar diferentes conjuntos de
valores en las frmulas especficas.
Uso de frmulas en modalidad online
Las frmulas se pueden gestionar (crear, leer, escribir, guardar, cargar, eliminar) utilizando los
mtodos del bloque de funciones RecipeManCommands, proporcionado por la biblioteca
Recipe_Management.libray, en el cdigo de la aplicacin, o por medio de entradas en elementos
de visualizacin.
Gestin de frmulas en modalidad online si la opcin Guardar automticamente las modificaciones en las frmulas est activada:
510
Acciones
Frmulas definidas en el
proyecto
Cambio en lnea
Detencin
EIO0000000071 04/2014
Gestor de frmulas
Gestin de frmulas en modalidad online si la opcin Guardar automticamente las modificaciones en las frmulas NO est activada:
Acciones
Frmulas definidas en el
proyecto
Cambio en lnea
Detencin
Informacin adicional:
z Por lo que respecta al almacenamiento de frmulas en archivos, que se vuelven a cargar al
reiniciarse la aplicacin, consulte la descripcin de Editor de gestor de frmulas, ficha
Guardado (vase pgina 506).
z Para obtener una descripcin de los mtodos (vase pgina 513) RecipeManCommands
especficos, consulte la documentacin en la biblioteca.
z Para conocer la configuracin de entrada apropiada de un elemento de visualizacin, consulte
su pgina de ayuda (categora Entrada Ejecutar comando).
EIO0000000071 04/2014
511
Gestor de frmulas
Descripcin
Leer frmula
Escribir frmula
Guardar frmula
512
Cargar frmula
Cambiar frmula
El valor de las variables del proyecto se puede cambiar. Con una accin de
escribir frmula, las variables del proyecto apropiadas se escriben con los
nuevos valores.
EIO0000000071 04/2014
Gestor de frmulas
Comandos RecipeMan
Descripcin general
Al llamar a un comando de frmula, se realizar un acceso a datos internos. Segn el tipo de
dispositivo, esta accin tardar unos pocos milisegundos. Verifique que estas llamadas no las
realice una tarea con un watchdog configurado o una tarea en tiempo real. Tenga en cuenta que
la opcin Guardar automticamente las modificaciones en las frmulas tambin realizar un
acceso a archivos con cada cambio de la frmula. Desactive esta opcin si la aplicacin activa el
almacenamiento de la frmula.
Valores de retorno
Estos son los valores de retorno posibles para comandos de frmulas:
Valor de retorno
Descripcin
ERR_NO_RECIPE_MANAGER_SET
ERR_RECIPE_DEFINITION_NOT_FOUND
ERR_RECIPE_ALREADY_EXIST
ERR_RECIPE_NOT_FOUND
ERR_RECIPE_FILE_NOT_FOUND
ERR_RECIPE_MISMATCH
ERR_RECIPE_SAVE_ERR
ERR_FAILED
ERR_OK
EIO0000000071 04/2014
513
Gestor de frmulas
CreateRecipe
Este mtodo crea una frmula nueva en la definicin de frmula especificada y, posteriormente,
lee los valores del controlador actuales en la nueva frmula. Al final, la nueva frmula se almacena
en el archivo predeterminado.
Parmetro
Descripcin
RecipeDefinitionName:
RecipeName:
Nombre de la frmula
Descripcin
RecipeDefinitionName:
RecipeName:
Nombre de la frmula
Descripcin
RecipeDefinitionName:
RecipeName:
Nombre de la frmula
514
EIO0000000071 04/2014
Gestor de frmulas
DeleteRecipeFile
Este mtodo elimina el archivo de frmula estndar de una frmula.
Parmetro
Descripcin
RecipeDefinitionName:
RecipeName:
Nombre de la frmula
Valores de retorno:
(vase pgina 513)ERR_NO_RECIPE_MANAGER_SET, ERR_RECIPE_DEFINITION_NOT_FOUN
D, ERR_RECIPE_NOT_FOUND, ERR_RECIPE_FILE_NOT_FOUND, ERR_OK
LoadAndWriteRecipe
Este mtodo carga una frmula del archivo de frmula estndar y, despus, escribe la frmula en
las variables del controlador.
Parmetro
Descripcin
RecipeDefinitionName:
RecipeName:
Nombre de la frmula
Descripcin
RecipeDefinitionName:
RecipeName:
Nombre de la frmula
FileName:
EIO0000000071 04/2014
515
Gestor de frmulas
LoadRecipe
Este mtodo carga una frmula del archivo de frmula estndar. El nombre del archivo de frmula
estndar es <frmula>.<definicin de frmula>.<extensin de frmula>.
Parmetro
Descripcin
RecipeDefinitionName:
RecipeName:
Nombre de la frmula
Descripcin
RecipeDefinitionName:
RecipeName:
Nombre de la frmula
Descripcin
RecipeDefinitionName:
RecipeName:
Nombre de la frmula
FileName:
516
EIO0000000071 04/2014
Gestor de frmulas
SaveRecipe
Este mtodo almacena la frmula en el archivo de frmula estndar. El contenido de un archivo
existente se sobrescribira. El nombre del archivo de frmula estndar es <frmula>.<definicin
de frmula>.<extensin de frmula>.
Parmetro
Descripcin
RecipeDefinitionName:
RecipeName:
Nombre de la frmula
Descripcin
RecipeDefinitionName:
RecipeName:
Nombre de la frmula
Descripcin
RecipeDefinitionName:
RecipeName:
Nombre de la frmula
EIO0000000071 04/2014
517
Gestor de frmulas
ReloadRecipes
Este mtodo vuelve a cargar la lista de frmulas desde el sistema de archivos.
Parmetro
Descripcin
RecipeDefinitionName:
Descripcin
RecipeDefinitionName:
Descripcin
RecipeDefinitionName:
pStrings :
iSize :
iStartIndex :
El ndice de inicio
Se puede utilizar para una funcin de
desplazamiento
EIO0000000071 04/2014
Gestor de frmulas
iStartIndex := 0;
Se devuelven los nombres 0...9.
iStartIndex := 20;
Se devuelven los nombres 20...29. En este ejemplo:
iSize := 10;
GetRecipeValues
Este mtodo devuelve los valores de las variables de frmula de la frmula correspondiente.
Parmetro
Descripcin
RecipeDefinitionName:
RecipeName
Nombre de la frmula
pStrings :
iSize :
iStartIndex :
El ndice de inicio
Se puede utilizar para una funcin de
desplazamiento
iStringLength :
EIO0000000071 04/2014
519
Gestor de frmulas
GetRecipeVariableNames
Este mtodo devuelve el nombre de la variable de la frmula correspondiente.
Parmetro
Descripcin
RecipeDefinitionName:
RecipeName
Nombre de la frmula
pStrings :
iSize :
iStartIndex :
El ndice de inicio
Se puede utilizar para una funcin de
desplazamiento
520
EIO0000000071 04/2014
Gestor de frmulas
SetRecipeValues
Este mtodo establece los valores de la frmula en la frmula correspondiente.
Parmetro
Descripcin
RecipeDefinitionName:
RecipeName
Nombre de la frmula
pStrings :
iSize :
iStartIndex :
El ndice de inicio
Se puede utilizar para una funcin de
desplazamiento
EIO0000000071 04/2014
521
Gestor de frmulas
522
EIO0000000071 04/2014
SoMachine
Editor de traza
EIO0000000071 04/2014
Captulo 24
Editor de traza
Editor de traza
Contenido de este captulo
Este captulo contiene las siguientes secciones:
Seccin
Apartado
Pgina
24.1
Objeto de traza
524
24.2
Configuracin traza
530
24.3
548
24.4
549
EIO0000000071 04/2014
523
Editor de traza
Seccin 24.1
Objeto de traza
Objeto de traza
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
524
Pgina
525
527
EIO0000000071 04/2014
Editor de traza
La captura de datos que se realice depender de una entrada en los valores de destino (traza
administrador de trazas).
El administrador de trazas tiene una funcionalidad avanzada. Le permite:
Configurar y trazar parmetros del sistema de control, como la curva de temperatura de la CPU
o de la batera. Para obtener ms informacin, consulte Configuracin de variable
(vase pgina 531) y Configuracin de registro (desencadenador) (vase pgina 535).
z Leer trazas de dispositivos, como la traza de la corriente elctrica de un variador. Para obtener
ms informacin, consulte la descripcin del comando Cargar traza. (vase SoMachine,
Comandos de men, Ayuda en lnea)
z Trazar variables del sistema de otros componentes del sistema.
z
Adems, est disponible el comando (vase SoMachine, Comandos de men, Ayuda en lnea)
adicional Lista en lnea.
NOTA:
z
z
z
z
EIO0000000071 04/2014
525
Editor de traza
Configuracin
Configure los datos de traza as como los valores de visualizacin de los datos de traza en
Configuracin. Proporciona comandos para acceder a los cuadros de dilogo de configuracin.
Varias variables pueden trazarse y mostrarse al mismo tiempo y en diferentes vistas como el modo
multicanal. Registre trazas de variables con diferentes configuraciones de desencadenador en su
propio objeto de traza. Puede crear cualquier nmero de objetos de traza.
rbol Herramientas con varios objetos de traza
526
EIO0000000071 04/2014
Editor de traza
527
Editor de traza
z
Caractersticas
Para ejecutar la traza, utilice los comandos siguientes:
z Agregar variable (vase SoMachine, Comandos de men, Ayuda en lnea)
z Descarga de traza (vase SoMachine, Comandos de men, Ayuda en lnea)
z Iniciar/Detener traza (vase SoMachine, Comandos de men, Ayuda en lnea)
z Restablecer desencadenador (vase SoMachine, Comandos de men, Ayuda en lnea)
Para personalizar la vista de las grficas, utilice los comandos siguientes:
z Cursor (vase SoMachine, Comandos de men, Ayuda en lnea)
z Zoom (vase SoMachine, Comandos de men, Ayuda en lnea)
z Restablecer vista (vase SoMachine, Comandos de men, Ayuda en lnea)
z Escalar automticamente (vase SoMachine, Comandos de men, Ayuda en lnea)
z Comprimir (vase SoMachine, Comandos de men, Ayuda en lnea)
z Estirar (vase SoMachine, Comandos de men, Ayuda en lnea)
z Multicanal (vase SoMachine, Comandos de men, Ayuda en lnea)
z Para obtener ms informacin, consulte el captulo (vase pgina 549) Operaciones de teclado
para diagramas de traza.
Para acceder a trazas almacenadas en el sistema de tiempo de ejecucin, utilice los comandos
siguientes:
z Lista en lnea (vase SoMachine, Comandos de men, Ayuda en lnea)
z Cargar traza (vase SoMachine, Comandos de men, Ayuda en lnea)
Para acceder a trazas almacenadas en el disco, utilice los comandos siguientes:
z Guardar la traza... (vase SoMachine, Comandos de men, Ayuda en lnea)
z Cargar la traza... (vase SoMachine, Comandos de men, Ayuda en lnea)
z Exportar configuracin de traza simblica (vase SoMachine, Comandos de men, Ayuda
en lnea)
528
EIO0000000071 04/2014
Editor de traza
Pasos iniciales
Para iniciar la traza en modalidad online, descargue la configuracin de traza en el controlador
ejecutando el comando Descarga de traza. Las grficas de las variables de traza se mostrarn
en la ventana del editor de trazas, donde puede almacenarlas en un archivo externo. Este archivo
puede volver a cargarse en el editor. Consulte tambin el captulo Editor de traza en modalidad
online (vase pgina 548).
Paso
Accin
Descarga de traza
Resultado: Las grficas de traza se muestran inmediatamente en funcin de la configuracin
de traza.
Organizar las grficas de traza, almacenar los datos de traza, iniciar/detener la traza.
Ejemplo
El editor de trazas muestra un ejemplo de traza en modalidad online. Se han seleccionado cuatro
variables para su visualizacin en el rbol de variables, en la parte derecha del cuadro de dilogo.
Traza en modalidad online
EIO0000000071 04/2014
529
Editor de traza
Seccin 24.2
Configuracin traza
Configuracin traza
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
530
Pgina
Configuracin de variables
531
Configuracin de registro
535
539
541
Representacin eje Y
546
EIO0000000071 04/2014
Editor de traza
Configuracin de variables
Descripcin general
Se abre el cuadro de dilogo Configuracin traza con Configuracin de variable al seleccionar
una variable de traza en el rbol de trazas. Permite configurar qu variables se deben trazar y
cmo se muestran.
Cuadro de dilogo Configuracin traza con Configuracin de variable
Las variables de traza se muestran en la parte izquierda de la ventana en una estructura de rbol.
El nodo superior lleva como ttulo el nombre de la traza.
Adicin y eliminacin de una variable de traza
Para aadir una variable al rbol de trazas o eliminar una, utilice los comandos que hay debajo del
rbol de trazas:
Comando
Descripcin
Aadir variable
Eliminar variable
EIO0000000071 04/2014
531
Editor de traza
Descripcin
Variable
Color
Tipo de lnea
Paso
Ninguno
Tipo de punto
532
Cruz
Ninguno
EIO0000000071 04/2014
Editor de traza
Parmetro
Descripcin
Lmite inferior
Color
Lmite superior
Color
Apariencia...
EIO0000000071 04/2014
533
Editor de traza
534
EIO0000000071 04/2014
Editor de traza
Configuracin de registro
Descripcin general
El cuadro de dilogo Configuracin traza con Configuracin de registro se abre si se ejecuta
el comando Configuracin... o si se hace doble clic en el nombre de la traza en la parte superior
del rbol de trazas. El comando de configuracin tambin est disponible en el men contextual
del rbol de trazas en la parte derecha de la ventana del editor de trazas principal.
NOTA: La configuracin especificada en el cuadro de dilogo Configuracin traza con
Configuracin de registro es vlida para todas las variables del grfico de traza.
Informacin bsica sobre desencadenadores
En la mayora de los casos, no es deseable que el trazado y la visualizacin de las seales de
entrada se inicie en momentos aleatorios, como por ejemplo inmediatamente despus de la
medicin anterior o cuando el usuario pulsa el botn de inicio. La mayor parte del tiempo es
preferible que el trazado se realice cuando se active un desencadenador para el nmero de
registros configurado (postdesencadenador). Este se conoce como activacin y se debe definir
aqu.
Los modos siguientes se utilizan para activar seales de entrada:
configuracin de una variable de desencadenador
z configuracin de una condicin de registro
z o ambos.
z
EIO0000000071 04/2014
535
Editor de traza
536
Parmetro
Descripcin
Enable Trigger
EIO0000000071 04/2014
Editor de traza
Parmetro
Descripcin
Variable de
desencadenador
Flanco
desencadenador
positivo
negativo
ambos
Post-desencadenador
EIO0000000071 04/2014
537
Editor de traza
Parmetro
Descripcin
Nivel de
desencadenador
Tarea
Condicin de registro
Si desea iniciar el registro mediante una condicin, introduzca aqu una variable.
Si la traza se inicia antes, por ejemplo pulsando el botn de inicio, y la variable
asignada aqu pasa a ser TRUE, la captura de datos se inicia y se mostrar el
grfico trazado.
Si se utiliza CmpTraceMgr, la condicin de registro debe ser una variable de tipo
BOOL o de acceso de bit. El contenido de un puntero no es una entrada vlida.
Las propiedades tambin se admiten.
Si se utiliza el cdigo IEC, tambin se puede introducir una expresin IEC
arbitraria de tipo BOOL.
Comentario
Resolucin
Crear registro
persistente
Apariencia...
Avanzado...
Haga clic en este botn para abrir el cuadro de dilogo (vase pgina 539)
Configuraciones de traza avanzadas. Permite configurar ajustes adicionales
para el desencadenador de traza.
NOTA: Si desea capturar y visualizar una seal de traza con una base de tiempo diferente, debe
realizar una configuracin de registro en un objeto de traza separado.
538
EIO0000000071 04/2014
Editor de traza
Para cada valor que figura en los registros o ciclos, el intervalo de tiempo asociado se muestra a
su lado (por ejemplo, 1m39s990ms). El intervalo de tiempo para los bferes comprende todo el
bfer. Si la tarea no est establecida, y no es cclica ni una tarea de sistema, entonces se
desconoce el tiempo de ciclo de la tarea. En este caso, el periodo no se puede calcular y no se
mostrar en la parte derecha.
EIO0000000071 04/2014
539
Editor de traza
Parmetro
Descripcin
Tamao del bfer del editor de traza Introduzca el tamao de bfer de la traza en las muestras
(registros)
(registros). Este bfer tiene que ser mayor o igual a dos veces el
tamao de lo que pueda ser el bfer para el sistema de tiempo de
ejecucin.
Rango: 1...107
Medicin cada n ciclos
540
EIO0000000071 04/2014
Editor de traza
Descripcin
Restablecer
EIO0000000071 04/2014
541
Editor de traza
Ficha Eje X
Ficha Eje X del cuadro de dilogo Modificar configuracin de pantalla
Parmetro
Descripcin
Modo de visualizacin
Mnimo
542
Auto
Longitud fija
Si esta opcin est activada, el intervalo mostrado del eje de tiempo tiene
una longitud fija.
Defina esta longitud con el parmetro Longitud. La escala tambin se ajusta
a la longitud. La grfica se desplaza automticamente a un rango visible. Por
consiguiente, en el diagrama se muestra un intervalo de tiempo con la
longitud configurada y los datos asociados ms recientes. Pero slo
contiene tantos valores como valores registrados. En cuanto se registran
nuevos datos, la pantalla se desplaza.
Fijo
Si esta opcin est activada, el intervalo mostrado del eje X se define con el
valor mnimo y el valor mximo.
Este valor define el valor mnimo mostrado del eje de tiempo.1
EIO0000000071 04/2014
Editor de traza
Parmetro
Descripcin
Mximo
Longitud
Este valor define la longitud del intervalo mostrado del eje de tiempo.1
Cuadrcula
Lneas de escala
Fuente
1
Distancia fija
Distancia
Divisiones
Las entradas de tiempo no requieren el prefijo # como sucede en el cdigo IEC. Algunas entradas de tiempo
posibles son, por ejemplo, 2s, 1ms o 1m20s14ms. Utilice us para los microsegundos. Por ejemplo: 122ms500us.
Los valores de utilidad tambin dependen de la resolucin del eje de tiempo.
EIO0000000071 04/2014
543
Editor de traza
Ficha Eje Y
Ficha Eje Y del cuadro de dilogo Modificar configuracin de pantalla
544
Parmetro
Descripcin
Modo de visualizacin
Automtico
Fija
Si esta opcin est activada, la seccin mostrada del eje Y se define con
el valor mnimo y el valor mximo.
Mnimo
Mximo
Cuadrcula
Descripcin
EIO0000000071 04/2014
Editor de traza
Parmetro
Descripcin
Lneas de escala
Distancia fija
Distance
Divisiones
Fuente
Haga clic en este botn para abrir el cuadro de dilogo estndar para la
definicin de la fuente de la pantalla de traza.
Descripcin
Color de fondo
Color de seleccin
EIO0000000071 04/2014
545
Editor de traza
Representacin eje Y
Descripcin general
El cuadro de dilogo Representacin eje Y se abre al hacer clic en el botn Apariencia... del
cuadro de dilogo Configuracin traza con Configuracin de variable.
La configuracin siguiente define la apariencia del eje Y. Se utiliza cuando el diagrama de traza
se muestra en la vista multicanal.
Cuadro de dilogo Representacin eje Y
Parmetro
Descripcin
Modo de visualizacin
Fijo
Mnimo
Mximo
Cuadrcula
Descripcin
Lneas de escala
Distancia fija
546
Automtico
EIO0000000071 04/2014
Editor de traza
Parmetro
Fuente
EIO0000000071 04/2014
Descripcin
Distance
Divisiones
547
Editor de traza
Seccin 24.3
Editor de traza en modalidad online
548
EIO0000000071 04/2014
Editor de traza
Seccin 24.4
Operaciones de teclado para diagramas de traza
Mediante el teclado
Mediante el ratn
IZQUIERDA/DERECHA
z Con distancias mayores:
CTRL + FLECHA
IZQUIERDA/DERECHA
1 o 2 cursores de traza:
z ALT + FLECHA
IZQUIERDA/DERECHA
z Con distancias mayores:
CTRL + ALT + FLECHA
IZQUIERDA/DERECHA
Desplazar el grfico de traza
verticalmente a lo largo del eje Y.
MAYS + FLECHA
IZQUIERDA/DERECHA
Con distancias mayores:
CTRL + MAYS + FLECHA
IZQUIERDA/DERECHA
EIO0000000071 04/2014
549
Editor de traza
550
Acciones
Mediante el teclado
Mediante el ratn
Comprimir el eje Y.
En modalidad multicanal, el eje Y
de los diagramas seleccionados
aparece comprimido.
CTRL +
Estirar el eje Y.
En modalidad multicanal, el eje Y
de los diagramas seleccionados
aparece estirado.
CTRL + +
TABULADOR
EIO0000000071 04/2014
SoMachine
Editor de configuracin de smbolos
EIO0000000071 04/2014
Captulo 25
Editor de configuracin de smbolos
Pgina
552
Configuracin de smbolos
555
556
EIO0000000071 04/2014
551
El editor contiene una tabla. En funcin del filtro establecido, muestra las variables disponibles o
slo las ya seleccionadas para la configuracin de smbolos. Para ello, se incluyen las POU o
bibliotecas correspondientes en la columna Smbolos. Puede expandirlas para ver las variables
especficas.
552
EIO0000000071 04/2014
Descripcin
No configurados de proyecto
No configurados de bibliotecas
Para modificar los derechos de acceso de un elemento seleccionado, haga clic en el smbolo de
la columna Derechos de acceso. Con cada clic del ratn se alternar el smbolo de las siguientes
definiciones: lectura+escritura
, slo escritura
, slo lectura
EIO0000000071 04/2014
553
554
EIO0000000071 04/2014
Configuracin de smbolos
Descripcin general
La configuracin de smbolos se utiliza para crear smbolos con derechos de acceso especficos.
Permiten acceder a las variables del proyecto externamente, por ejemplo mediante VijeoDesigner. La descripcin de los smbolos estar disponible en un archivo XML (archivo de
smbolos) en el directorio del proyecto. Se descargar al controlador junto con la aplicacin.
Informacin sobre los smbolos
Los smbolos definidos para una aplicacin se exportan a un archivo XML en el directorio del
proyecto (archivo de smbolos) cuando la aplicacin se descarga al controlador. El nombre de este
archivo sigue esta sintaxis:
<nombre de proyecto>.<nombre de dispositivo>.<nombre de aplicacin>.xml
Ejemplo: proj_xy.PLC1.application.xml
NOTA: Si la descarga al controlador no es posible, puede crear el archivo de configuracin de
smbolos mediante la ejecucin del comando Crear cdigo.
Despus, la informacin sobre los smbolos se descarga al controlador con la aplicacin. En
funcin de la descripcin del dispositivo, se incluir en la aplicacin o se generar una aplicacin
secundaria por separado. Tambin aparecer en la lista con el nombre <nombre de
aplicacin>._Symbols en la vista Aplicaciones del editor de dispositivos (vase pgina 127).
Si la configuracin de smbolos se ha modificado en modalidad online, puede volver a cargarla en
el controlador haciendo clic en el botn Descargar en la ventana del editor (vase pgina 553).
Por ejemplo, en lo que se refiere al nmero mximo de aplicaciones en un controlador, la
aplicacin de smbolos debe gestionarse como una aplicacin normal.
EIO0000000071 04/2014
555
556
EIO0000000071 04/2014
Accin
EIO0000000071 04/2014
557
558
EIO0000000071 04/2014
SoMachine
Intercambio de datos entre el controlador y HMI
EIO0000000071 04/2014
Captulo 26
Intercambio de datos entre el controlador SoMachine y HMI
Pgina
560
564
567
568
570
EIO0000000071 04/2014
559
NOTA: El ltimo paso no es necesario para los controladores XBTGC, ya que pueden
comunicarse con sus propias variables de control.
Desactivacin de la exportacin de smbolos automtica a Vijeo-Designer
De forma predeterminada, SoMachine exporta de forma automtica esas variables definidas como
smbolos a la aplicacin HMI Vijeo-Designer.
Cuando los smbolos se han transferido a Vijeo-Designer, normalmente no es necesario hacer la
transferencia cada vez que realice una llamada a Vijeo-Designer. Si ms adelante aade o
modifica smbolos en la aplicacin de SoMachine despus de haber transferido inicialmente los
smbolos, puede transferir los smbolos a Vijeo-Designer manualmente segn desee. Para ahorrar
tiempo al abrir Vijeo-Designer puede desactivar la transferencia automtica de smbolos de la
manera siguiente:
Paso
560
Accin
EIO0000000071 04/2014
Paso
Accin
EIO0000000071 04/2014
561
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Ejecute el comando Exportar smbolos a Vijeo-Designer si ha activado Deshabilitar exportacin
automtica de smbolos antes de empezar a trabajar en Vijeo-Designer.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao
al equipo.
Tipos de variables para el intercambio de datos del controlador SoMachine y HMI
En la siguiente tabla aparecen los tipos de variables para el intercambio de datos del controlador
SoMachine y HMI:
Tipo de variable de
SoMachine
Comentario
BOOL
BOOL
--
BYTE
Entero
--
WORD
UINT
--
DWORD
UDINT
--
SINT
Entero
--
INT
INT
--
DINT
DINT
--
USINT
Entero
--
UINT
UINT
--
UDINT
UDINT
--
REAL
REAL
--
STRING
STRING
--
WSTRING
STRING
562
EIO0000000071 04/2014
Tipo de variable de
SoMachine
Comentario
Matriz
DUT
EIO0000000071 04/2014
563
Accin
Cree un nodo Configuracin de smbolos bajo el nodo Aplicacin del rbol Herramientas tal como se
describe en el captulo (vase pgina 556) Adicin de una configuracin de smbolos.
Haga doble clic en el nodo Configuracin de smbolos para abrir el editor de Configuracin de
smbolos.
En el editor de Configuracin de smbolos, seleccione las variables elementales que desee publicar
para la comunicacin con uno o varios terminales HMI. Para ello, marque o desmarque la casilla en la
columna Smbolos:
564
Para validar las opciones, haga clic en el enlace Descargar del editor de Configuracin de smbolos.
EIO0000000071 04/2014
NOTA: El mecanismo de publicacin consume una carga del sistema de unos 50 kilobytes en el
controlador. Cada variable publicada consume 11 bytes en la aplicacin de controlador.
Publicacin de variables en la vista Variables del catlogo de software
Para publicar variables en la vista Variables del catlogo de software (vase pgina 32), haga lo
siguiente:
Paso
Accin
EIO0000000071 04/2014
565
NOTA: Verifique que se llame en una tarea a la POU de las variables seleccionadas. De lo
contrario, las variables seleccionadas no se publicarn.
566
EIO0000000071 04/2014
EIO0000000071 04/2014
567
Accin
Haga clic con el botn derecho del ratn en las variables seleccionadas y ejecute el comando Trasladar
a SoMachine del men contextual.
En el cuadro de dilogo Trasladar a SoMachine, abra las subcarpetas de los dispositivos definidos en
SoMachine para ver los niveles en los que estn definidas las variables (POU o GVL).
568
EIO0000000071 04/2014
Paso
4
Accin
Seleccione la POU o GVL a la que desee aadir las Vijeo-Designer variables seleccionadas y haga clic
en Aceptar.
Resultado: se han movido las variables seleccionadas a la POU o GVL de SoMachine seleccionada y
estn disponibles en todo el proyecto de SoMachine.
EIO0000000071 04/2014
569
Valor
Medio fsico
RS485
Velocidad en baudios
115200
Paridad
ninguna
Bits de datos
Bits de parada
Configuracin del administrador de E/S del panel HMI utilizando un controlador: SoMachine - red
con al menos un grupo de exploracin (para obtener ms informacin, consulte la ayuda online de
Vijeo-Designer).
Parmetro
Valor
Medio fsico
RS485
Velocidad en baudios
115200
Paridad
ninguna
Bits de datos
Bits de parada
Configuracin de XBTGC:
570
Dispositivo
Configuracin
Controlador XBTGC
Subventana HMI
Administrador de E/S
Controlador
EIO0000000071 04/2014
SoMachine
Referencia de programacin
EIO0000000071 04/2014
Parte VII
Referencia de programacin
Referencia de programacin
Contenido de esta parte
Esta parte contiene los siguientes captulos:
Captulo
Pgina
27
Declaracin de variables
573
28
Tipos de datos
661
29
Directrices de programacin
689
30
Operadores
703
31
Operandos
797
EIO0000000071 04/2014
571
Referencia de programacin
572
EIO0000000071 04/2014
SoMachine
Declaracin de variables
EIO0000000071 04/2014
Captulo 27
Declaracin de variables
Declaracin de variables
Contenido de este captulo
Este captulo contiene las siguientes secciones:
Seccin
Apartado
Pgina
27.1
Declaracin
574
27.2
Tipos de variables
591
27.3
Tipos de mtodos
602
27.4
Instrucciones Pragma
607
27.5
Atributo Pragmas
620
27.6
La funcionalidad Intelli-sense
658
EIO0000000071 04/2014
573
Declaracin de variables
Seccin 27.1
Declaracin
Declaracin
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
574
Pgina
Informacin general
575
578
Inicializacin de variables
583
Declaracin
584
585
Declaracin AT
586
Palabras clave
587
EIO0000000071 04/2014
Declaracin de variables
Informacin general
Descripcin general
Puede declarar variables:
en la vista Variables del Catlogo de software (vase pgina 31)
z en el Editor de declaraciones de un POU (vase pgina 414)
z a travs del cuadro de dilogo Declarar variable (vase pgina 584)
z en un editor DUT
z en un editor GVL
z
El tipo (en el editor de declaraciones tabular se denomina mbito) de las variables que se va a
declarar se especifica mediante las palabras claves que rodean la declaracin de uno o varias
variables. En el editor de declaraciones textual (vase pgina 414), a la declaracin de variables
comn se incluye VAR y END_VAR.
Para obtener ms informacin sobre los mbitos de declaracin de variables, consulte:
VAR_INPUT
z VAR_OUTPUT
z VAR_IN_OUT
z VAR_GLOBAL
z VAR_TEMP
z VAR_STAT
z VAR_EXTERNAL
z VAR_CONFIG
z
Las palabras clave del tipo de variable pueden complementarse con palabras clave de atributos
(vase pgina 596).
Ejemplo: RETAIN (VAR_INPUT RETAIN)
Sintaxis
Sintaxis de la declaracin de variables:
<Identificador> {AT <direccin>}:<tipo de datos> {:=<inicializacin>};
Las partes que aparecen dentro de llaves {} son opcionales.
EIO0000000071 04/2014
575
Declaracin de variables
Identificador
El identificador es el nombre de una variable.
Tenga en cuenta lo siguiente cuando defina un identificador.
No se permiten espacios o caracteres especiales.
z No hay distincin entre maysculas y minsculas: VAR1, Var1 y var1 son la misma variable.
z Reconocimiento del guin bajo: A_BCD y AB_CD se consideran dos identificadores distintos. No
utilice ms de un guin bajo en una misma fila.
z Longitud ilimitada.
z Recomendaciones sobre el uso mltiple (ver prrafo siguiente).
z
576
Asimismo, para una biblioteca, se define un espacio de nombres cuando se incorpora a travs
del Administrador de bibliotecas. As que podr acceder al mdulo de una biblioteca o una
variable mediante <espacio de nombres de la biblioteca>.<modulename|variablename>. Tenga
en cuenta que, si se trata de bibliotecas anidadas, los nombres de espacios de todas las
bibliotecas afectadas deben describirse sucesivamente.
EIO0000000071 04/2014
Declaracin de variables
Ejemplo: si Lib1 hace referencia a Lib0, al mdulo fun que forma parte de Lib1 se accede
a travs de Lib0.Lib1.fun:
ivar := Lib0.Lib1.fun(4, 5); (* el valor de retorno de fun se copia a la variable ivar
del proyecto *)
NOTA: Cuando la casilla de verificacin Tornar visibles todos los smbolos IEC en el
proyecto, como si esta referencia aqu se hubiese incorporado directamente. se ha
activado dentro del cuadro de dilogo Propiedades de la biblioteca referenciada Lib, tambin
se puede acceder al mdulo fun directamente a travs de Lib0.fun.
AT <direccin>
Puede vincular la variable directamente a una direccin definida (vase pgina 586) con la
palabra clave AT.
En los bloques de funciones, tambin puede especificar variables con instrucciones de
direcciones incompletas. Para que dicha variable se pueda usar en una instancia local, tiene que
existir una entrada para ello en la configuracin de variables.
Tipo
Tipo de datos (vase pgina 662) vlido, ampliado de manera opcional con una :=< inicializacin>
(vase pgina 583).
Instrucciones Pragma
De manera opcional, puede aadir instrucciones pragma (vase pgina 607) en la parte de la
declaracin de un objeto para la generacin de cdigos con distintos objetivos.
Sugerencias
Tambin es posible la declaracin automtica (vase pgina 584) de variables.
Para introducir declaraciones ms rpidamente, use la modalidad de acceso directo
(vase pgina 585).
EIO0000000071 04/2014
577
Declaracin de variables
Adems de los elementos generales que se deben tener en cuenta cuando se define un
identificador (consulte el captulo Informacin general sobre la declaracin de variables
(vase pgina 575)), tenga en cuenta las recomendaciones siguientes para que la nomenclatura
sea lo ms exclusiva posible:
z Nombres de variables (vase pgina 578)
z Nombres de variables en bibliotecas (vase pgina 580)
z Tipos de datos definidos por el usuario (DUT) en bibliotecas (vase pgina 581)
z Funciones, bloques de funciones, programas (POU), acciones (vase pgina 581)
z POU en bibliotecas (vase pgina 582)
z Nombres de visualizacin (vase pgina 582)
Nombres de variables
Para dar nombre a las variables de las aplicaciones y las bibliotecas, siga la notacin hngara en
la medida de lo posible.
Busque una descripcin breve y representativa para cada variable. Esta descripcin se utilizar
como nombre de base. Ponga en mayscula la primera letra de cada palabra del nombre de base.
Escriba el resto de la palabra en minsculas (ejemplo: FileSize).
Tipo de datos
Lmite inferior
Lmite superior
Contenido de
informacin
Prefijo
Comentario
BOOL
FALSE
TRUE
1 bits
x*
Reservado
BYTE
8 bits
by
WORD
16 bits
DWORD
32 bits
dw
LWORD
64 bits
lw
no para operaciones
aritmticas
SINT
128
127
8 bits
si
USINT
255
8 bits
usi
* intencionalmente para variables booleanas x se elige como prefijo para diferenciar del BYTE y tambin para
acomodar la percepcin de un programador IEC (consulte el direccionamiento de %IX0.0).
578
EIO0000000071 04/2014
Declaracin de variables
Tipo de datos
Lmite inferior
Lmite superior
Contenido de
informacin
Prefijo
Comentario
INT
32,768
32,767
16 bits
UINT
65,535
16 bits
ui
DINT
2,147,483,648
2,147,483,647
32 bits
di
UDINT
4,294,967,295
32 bits
udi
63
2 -1
64 bits
li
64
64 bits
uli
LINT
ULINT
63
2 -1
REAL
32 bits
LREAL
64 bits
lr
STRING
TIME
tim
TIME_OF_DAY
tod
DATE_AND_TIME
dt
DATE
date
ENUM
16 bits
POINTER
ARRAY
* intencionalmente para variables booleanas x se elige como prefijo para diferenciar del BYTE y tambin para
acomodar la percepcin de un programador IEC (consulte el direccionamiento de %IX0.0).
Declaracin simple
Ejemplos de declaraciones simples:
bySubIndex: BYTE;
sFileName: STRING;
udiCounter: UDINT;
Declaracin anidada
Ejemplo de una declaracin anidada en la que los prefijos se conectan entre s en el orden de las
declaraciones:
pabyTelegramData: POINTER TO ARRAY [0..7] OF BYTE;
Variables e instancias del bloque de funciones de tipos de datos definidos por el usuario
Las variables e instancias del bloque de funciones de los tipos de datos definidos por el usuario
obtienen un acceso directo para el nombre del tipo de datos o el bloque de funciones como prefijo
(por ejemplo: sdo).
EIO0000000071 04/2014
579
Declaracin de variables
Ejemplo
cansdoReceivedTelegram: CAN_SDOTelegram;
TYPE CAN_SDOTelegram :
(* prefix: sdo *)
STRUCT
wIndex:WORD;
bySubIndex:BYTE;
byLen:BYTE;
aby: ARRAY [0..3] OF BYTE;
END_STRUCT
END_TYPE
Constantes locales
Las constantes locales (c) empiezan con el prefijo c y un guin bajo pegado, seguido del prefijo
de tipo y el nombre de la variable.
Ejemplo
VAR CONSTANT
c_uiSyncID: UINT := 16#80;
END_VAR
Variables globales y constantes globales
Las variables globales van precedidas de g_ y las constantes globales, de gc_.
Ejemplo
VAR_GLOBAL
g_iTest: INT;
END_VAR
VAR_GLOBAL CONSTANT
gc_dwExample: DWORD;
END_VAR
Nombres de variables en bibliotecas
Estructura
Por lo general, consulte la descripcin anterior para los nombres de variables. Use el espacio de
nombres de la biblioteca como prefijo cuando acceda a una variable en su cdigo de aplicacin.
Ejemplo
g_iTest: INT; (declaration)
CAN.g_iTest (implementation, call in an application program
580
EIO0000000071 04/2014
Declaracin de variables
581
Declaracin de variables
POU en bibliotecas
Estructura
Para crear nombres de mtodos, se aplican las mismas reglas que para las acciones. Escriba
comentarios en ingls para las posibles entradas de un mtodo. Aada una breve descripcin de
un mtodo a su declaracin. Comience los nombres de la interfaz con la letra I; por ejemplo,
ICANDevice.
NOTA: Tenga en cuenta el uso del espacio de nombres al utilizar POU declaradas en bibliotecas.
Nombres de visualizacin
Evite nombrar una visualizacin de forma similar a otro objeto del proyecto, pues esto podra
ocasionar anomalas si se producen cambios en la visualizacin.
582
EIO0000000071 04/2014
Declaracin de variables
Inicializacin de variables
Valor de inicializacin predeterminado
El valor de inicializacin predeterminado es 0 para todas las declaraciones, pero puede aadir
valores de inicializacin definidos por el usuario en la declaracin de cada variable y tipo de datos.
Valores de inicializacin definidos por el usuario
La inicializacin definida por el usuario se debe al operador de asignaciones := y puede ser
cualquier expresin ST vlida. Por consiguiente, los valores de constante, as como otras
variables o funciones, se pueden utilizar para definir el valor de inicializacin. Compruebe que ya
se ha iniciado la propia variable usada para la inicializacin u otra variable.
Ejemplo de inicializaciones de variables vlidas:
VAR
var1:INT := 12;
* Integer variable with initial value of
12. *
x : INT := 13 + 8;
* Integer value defined an expression wit
h literal values.*
y : INT := x + fun(4);
* Integer value defined by an expression
containing a function call. NOTE: Be sure that any variables used in
the variable initialization have already been defined. *
z : POINTER TO INT := ADR(y); * POINTER is not described by the IEC6113
1-3:
Integer value defined by an address function; NOTE: The pointer will
not be initialized if the declaration is modified online. *
END_VAR
Informacin adicional
Para obtener ms informacin, consulte las siguientes descripciones:
inicializacin de matrices (vase pgina 678)
z inicializacin de estructuras (vase pgina 681)
z inicializacin de una variable con un tipo de subrango (vase pgina 685)
z
NOTA: Las variables de las listas de variables globales (GVL) se inicializan antes que las variables
locales de un POU.
EIO0000000071 04/2014
583
Declaracin de variables
Declaracin
Tipos de declaracin
Puede declarar las variables manualmente con el editor de declaraciones (vase pgina 414)
textual o tabular o automticamente como se explica en este captulo.
Autodeclaracin automtica
Puede definir en el cuadro de dilogo Opciones, categora Editor de texto Editar, que el
cuadro de dilogo Declarar variable se deber abrir en cuanto se introduzca una cadena todava
no declarada en la parte de la implementacin de un editor y se pulse la tecla INTRO. Este cuadro
de dilogo admite la declaracin de la variable (vase pgina 575).
Declaracin de variables manualmente
Para abrir el cuadro de dilogo Declarar variable manualmente:
ejecute el comando Declarar variable, que est disponible de forma predeterminada en el
men Editar; o
z pulse las teclas SHIFT+F2.
z
Si elige una variable ya declarada antes de abrir el cuadro de dilogo Declarar variable, podr
editar la declaracin de esta variable.
584
EIO0000000071 04/2014
Declaracin de variables
se reemplaza por
BOOL
I o INT
INT
R o REAL
REAL
S o string
STRING
z
z
z
z
z
Ejemplos
N. de
ejemplo
Mtodo abreviado
A: BOOL;
A B I 2
A, B: INT := 2;
ST S 2; A string
ST:STRING(2); (* A string *)
B !
B: BOOL;
EIO0000000071 04/2014
Declaracin resultante
585
Declaracin de variables
Declaracin AT
Descripcin general
Para enlazar una variable de proyecto con una direccin definida puede asignar variables a una
direccin en la vista de asignacin E/S de un dispositivo en la configuracin del controlador(editor
de dispositivo). Tambin puede introducir esta direccin directamente en la declaracin de la
variable.
Sintaxis
<identificador> AT <direccin> : <tipo de datos>;
Una direccin vlida debe seguir a la palabra clave AT. Para obtener ms informacin, consulte la
descripcin de la direccin (vase pgina 813). Tenga en cuenta la posibilidad de solapamientos
en caso de modalidad de direccionamiento de bytes
Esta declaracin permite asignar un nombre significativo a una direccin. Cualquier modificacin
relativa a una seal entrante o saliente solamente podr realizarse en un nico sitio (por ejemplo,
en la declaracin).
Tenga en cuenta los siguientes puntos al escoger una variable y asignarla a una direccin:
No se puede acceder mediante escritura a las variables que requieren una entrada. El
compilador lo intercepta detectando un error.
z Las declaraciones AT solamente pueden utilizarse con variables locales o globales. No pueden
utilizarse con variables de entrada y salida de POU.
z Las declaraciones AT no estn permitidas en las listas de variables persistentes.
z Si se utilizan declaraciones AT con miembros de un bloque de funciones o estructura, todas las
instancias accedern a la misma ubicacin de memoria de dicha estructura o bloque de
funciones. Esto corresponde a las variables estticas en los lenguajes de programacin
clsicos como C.
z La disposicin de memoria de las estructuras est tambin determinada por el destino.
z
Ejemplos
xCounterHeat7 AT %QX0.0: BOOL;
xLightCabinetImpulse AT %IX7.2: BOOL;
xDownload AT %MX2.2: BOOL;
Nota
Si se asignan variables booleanas a una direccin de BYTE, WORD o DWORD ocuparn un byte
con VERDADERO o FALSO, no solo el primer bit tras el offset.
Explicacin: Las booleanas tienen 8 bits al declararse y cuando se escriben en otros tipos de
variables, todos los 8 bits van juntos.
586
EIO0000000071 04/2014
Declaracin de variables
Palabras clave
Descripcin general
Escriba las palabras clave en letras maysculas en los editores.
Las siguientes cadenas se reservan como palabras clave. No se pueden utilizar como identificadores para variables o POU:
z ABS
z ACOS
z ACTION (solo utilizado en el formato de exportacin)
z ADD
z ADR
z AND
z ANDN
z ARRAY
z ASIN
z AT
z ATAN
z BITADR
z BOOL
z BY
z BYTE
z CAL
z CALC
z CALCN
z CASE
z CONSTANT
z COS
z DATE
z DINT
z DIV
z DO
z DT
z DWORD
z ELSE
z ELSIF
z END_ACTION (solo utilizado en el formato de exportacin)
z END_CASE
z END_FOR
z END_FUNCTION (solo utilizado en el formato de exportacin)
z END_FUNCTION_BLOCK (solo utilizado en el formato de exportacin)
z END_IF
z END_PROGRAM (solo utilizado en el formato de exportacin)
z END_REPEAT
z END_STRUCT
EIO0000000071 04/2014
587
Declaracin de variables
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
588
END_TYPE
END_VAR
END_WHILE
EQ
EXIT
EXP
EXPT
FALSE
FOR
FUNCTION
FUNCTION_BLOCK
GE
GT
IF
INDEXOF
INT
JMP
JMPC
JMPCN
LD
LDN
LE
LINT
LN
LOG
LREAL
LT
LTIME
LWORD
MAX
METHOD
MIN
MOD
MOVE
MUL
MUX
NE
NOT
OF
OR
ORN
PARAMS
PERSISTENT
POINTER
PROGRAM
EIO0000000071 04/2014
Declaracin de variables
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
R
READ_ONLY
READ_WRITE
REAL
REFERENCE
REPEAT
RET
RETAIN
RETC
RETCN
RETURN
ROL
ROR
S
SEL
SHL
SHR
SIN
SINT
SIZEOF
SUPER
SQRT
ST
STN
STRING
STRUCT
SUPER
SUB
TAN
THEN
THIS
TIME
TO
TOD
TRUE
TRUNC
TYPE
UDINT
UINT
ULINT
UNTIL
USINT
VAR
VAR_ACCESS (solo utilizado de forma especfica, en funcin del hardware)
VAR_CONFIG
EIO0000000071 04/2014
589
Declaracin de variables
z
z
z
z
z
z
z
z
z
z
z
z
VAR_EXTERNAL
VAR_GLOBAL
VAR_IN_OUT
VAR_INPUT
VAR_OUTPUT
VAR_STAT
VAR_TEMP
WHILE
WORD
WSTRING
XOR
XORN
590
EIO0000000071 04/2014
Declaracin de variables
Seccin 27.2
Tipos de variables
Tipos de variables
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
Pgina
Tipos de variables
592
596
600
EIO0000000071 04/2014
591
Declaracin de variables
Tipos de variables
Descripcin general
En este captulo se proporciona informacin sobre los tipos de variables siguientes:
VAR variables locales (vase pgina 592)
z VAR_INPUT variables de entrada (vase pgina 592)
z VAR_OUTPUT variables de salida (vase pgina 593)
z VAR_IN_OUT variables de entrada y salida (vase pgina 593)
z VAR_GLOBAL variables globales (vase pgina 594)
z VAR_TEMP variables temporales (vase pgina 594)
z VAR_STAT variables estticas (vase pgina 594)
z VAR_EXTERNAL variables externas (vase pgina 595)
z
592
EIO0000000071 04/2014
Declaracin de variables
EIO0000000071 04/2014
593
Declaracin de variables
EIO0000000071 04/2014
Declaracin de variables
EIO0000000071 04/2014
595
Declaracin de variables
596
EIO0000000071 04/2014
Declaracin de variables
Las variables Retain, sin embargo, se reinicializan al ejecutar el comando En lnea Reset origen
y, a diferencia de las variables persistentes, al ejecutar el comando En lnea Reset fro o durante
la descarga de una aplicacin.
NOTA: Solamente las variables definidas como VAR RETAIN se almacenan en la memoria no
voltil. Sin embargo, las variables locales definidas como VAR RETAIN en las funciones NO se
almacenan en la memoria voltil. La definicin de VAR RETAIN localmente en las funciones no
tiene efecto alguno.
Variables persistentes
Las variables persistentes se identifican mediante la palabra clave PERSISTENT
(VAR_GLOBAL PERSISTENT). Solamente se reinicializan al ejecutar el comando En lnea Reset
origen. A diferencia de las variables Retain, conservan sus valores despus de una descarga.
Ejemplo de aplicacin:
Un contador de horas de funcionamiento, que debe continuar contando incluso despus de un
corte en el suministro elctrico o una descarga. Consulte la tabla sinptica referente al comportamiento de las variables remanentes (vase pgina 598).
Las variables persistentes solamente se pueden declarar en una lista de variables globales
especial de variables persistentes de tipo de objeto, que se asigna a una aplicacin. Solamente
se puede aadir una nica lista de este tipo a una aplicacin.
NOTA: Una declaracin con VAR_GLOBAL PERSISTENT tiene el mismo efecto que una
declaracin con VAR_GLOBAL PERSISTENT RETAIN o VAR_GLOBAL RETAIN PERSISTENT.
Al igual que las variables Retain, las variables persistentes se almacenan en un rea de la
memoria por separado.
Ejemplo
VAR_GLOBAL PERSISTENT RETAIN
iVarPers1 : DINT; (* 1. Persistent+Retain Variable App1 *)
bVarPers : BOOL; (* 2. Persistent+Retain Variable App1 *)
END_VAR
NOTA: Las variables persistentes solamente se pueden declarar dentro del objeto Persistent list.
Si se declaran en otro lugar, se comportarn como variables Retain y se notificarn como un error
de compilacin detectado en la vista Mensajes. (Las variables Retain se pueden declarar en las
listas de variables globales o en las POU).
Cada vez que la aplicacin se vuelva a cargar, la lista de variables persistentes del controlador se
comparar con la del proyecto. La lista del controlador se identifica mediante el nombre de la
aplicacin. En caso de discrepancia, se le pedir que reinicialice todas las variables persistentes
de la aplicacin. La discrepancia puede ser el resultado de cambiar el nombre de las
declaraciones existentes en la lista, de eliminar dichas declaraciones o de realizar otro tipo de
modificaciones en ellas.
EIO0000000071 04/2014
597
Declaracin de variables
<literal>
Especifica la constante.
Introduzca datos que se ajusten al tipo de datos especificado en <tipo>.
Ejemplo
iVar1:=DINT#34;
Si la constante no se puede convertir al tipo de destino sin sufrir una prdida de datos, aparece un
mensaje.
Puede utilizar los literales con tipo all donde se pueda utilizar una constante normal.
598
EIO0000000071 04/2014
Declaracin de variables
EIO0000000071 04/2014
599
Declaracin de variables
Accin
600
EIO0000000071 04/2014
Declaracin de variables
EIO0000000071 04/2014
601
Declaracin de variables
Seccin 27.3
Tipos de mtodos
Tipos de mtodos
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
602
Pgina
603
Mtodo FB_exit
606
EIO0000000071 04/2014
Declaracin de variables
EIO0000000071 04/2014
603
Declaracin de variables
:
:= 10;
:= 11;
:= 12;
604
EIO0000000071 04/2014
Declaracin de variables
FB_reinit
Si un mtodo con el nombre FB_reinit es declarado para una instancia de bloque de funciones,
este mtodo ser llamado una vez que se copie la instancia. Este es el caso de un cambio en lnea
despus de una modificacin de la declaracin del bloque de funciones. El mtodo provocar una
reinicializacin del nuevo mdulo de instancia creado por la copia del cdigo. Puede ser
conveniente llevar a cabo una reinicializacin debido a que los datos de la instancia original sern
escritos en una nueva instancia despus del copiado, an cuando quiera obtener los valores de
inicializacin originales. El mtodo FB_reinit no tiene entradas. Tenga en cuenta que, al
contrario de lo que ocurre con FB_init , el mtodo debe ser declarado explcitamente. Si se
desea una reinicializacin de la implementacin del bloque de funciones bsico, FB_reinit debe
ser llamado explcitamente para ese POU.
El mtodo FB_reinit no tiene entradas.
Para obtener ms informacin acerca de la secuencia de llamadas en caso de herencia, consulte
el apartado correspondiente del captulo del mtodo FB_exit (vase pgina 606).
EIO0000000071 04/2014
605
Declaracin de variables
Mtodo FB_exit
Descripcin general
El mtodo FB_exit es un mtodo especial para un bloque de funciones. Ha de declararse de
forma explcita, ya que no hay una declaracin implcita. El mtodo exit, si lo hubiese, se solicita
para todas las instancias declaradas del bloque de funciones antes de una nueva descarga, en un
inicio o durante un cambio online de todas las instancias movidas o eliminadas.
Interfaz del mtodo FB_exit
Solo hay un parmetro obligatorio:
METHOD fb_exit : BOOL
VAR_INPUT
bInCopyCode : BOOL; // if TRUE, the exit method is called
for exiting an instance that is copied afterwards (online change).
END_VAR
Asimismo, tenga en cuenta el mtodo FB_init (vase pgina 603) y la siguiente orden de
ejecucin:
1
old_inst.fb_exit(bInCopyCode := TRUE);
Mtodo init:
inicializar una nueva
instancia
copy_fub(&old_inst, &new_inst);
Herencia
Adems, en caso de herencia, la secuencia de llamada siguiente es TRUE (suponiendo lo
siguiente para los POU usados para este listado: SubFB EXTENDS MainFB y
SubSubFB EXTENDS SubFB):
fbSubSubFb.FB_Exit(...);
fbSubFb.FB_Exit(...);
fbMainFb.FB_Exit(...);
fbMainFb.FB_Init(...);
fbSubFb.FB_Init(...);
fbSubSubFb.FB_Init(...);
Para FB_reinit, se aplica lo siguiente:
fbMainFb.FB_reinit(...);
fbSubFb.FB_reinit(...);
fbSubSubFb.FB_Init(...);
606
EIO0000000071 04/2014
Declaracin de variables
Seccin 27.4
Instrucciones Pragma
Instrucciones Pragma
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
Pgina
Instrucciones Pragma
608
610
Pragmas condicionales
612
EIO0000000071 04/2014
607
Declaracin de variables
Instrucciones Pragma
Descripcin general
Las instrucciones pragma se utilizan para afectar a las propiedades de una o varias variables
respecto al proceso de compilacin o precompilacin (preprocesador). Es decir, un pragma afecta
a la generacin del cdigo.
NOTA: Tenga en cuenta que los pragmas disponibles no son implementaciones 1:1 de las
directivas del preprocesador de C. Se gestionan como una instruccin normal por lo que
solamente pueden utilizarse en las posiciones de instrucciones.
Un pragma puede determinar si una variable ser inicializada, monitoreada, aadida a una lista
de parmetros, aadida a la lista de smbolos (vase pgina 655), o si es invisible en el
administrador de bibliotecas. Puede forzar salidas de mensajes durante el proceso de
compilacin. Puede utilizar pragmas condicionales para definir la manera en que la variable debe
ser tratada en funcin de ciertas condiciones. Tambin puede introducir estos pragmas como
definiciones en las propiedades de compilacin de un objeto determinado.
Puede utilizar un pragma en una lnea separada o con texto complementario en una implementacin o lnea del editor de declaraciones. Ejecute el comando Insertar etiqueta dentro del editor
de IL/FBD/LD y reemplace el texto por defecto Label: en el campo de texto que aparece por el
pragma. En caso de que desee establecer tambin una etiqueta adems de un pragma, introduzca
primero el pragma y despus la etiqueta.
La instruccin del pragma aparece entre llaves.
Sintaxis
{ <texto de instruccin> }
La llave de apertura puede aparecer inmediatamente despus de un nombre de variable. Las
llaves de apertura y cierre deben estar en la misma lnea.
Informacin adicional
En funcin del tipo y contenidos de un pragma, el pragma opera en la siguiente instruccin, y en
todas las posteriores, hasta que se cumpla una de las siguientes condiciones:
z Es finalizado por un pragma apropiado.
z El mismo pragma es ejecutado con diferentes parmetros.
z Se alcanza el final del cdigo.
En este contexto el trmino cdigo se refiere a una parte de declaracin, una parte de implementacin, una lista de variables globales o una declaracin de tipo.
NOTA: Las instrucciones de Pragma distinguen entre maysculas y minsculas.
Si el compilador no puede interpretar de manera significativa el texto de la instruccin, todo el
pragma se gestiona como un comentario y se omite.
608
EIO0000000071 04/2014
Declaracin de variables
EIO0000000071 04/2014
609
Declaracin de variables
Icono
Tipo de mensajes
tipo de texto
Se mostrar la cadena de texto especificada.
informacin
Se mostrar la cadena de texto especificada.
tipo de alerta
Se mostrar la cadena de texto especificada.
A diferencia del pragma obsoleto
(vase pgina 650) global, esta alerta se
define de manera explcita en la posicin
local.
tipo de error
Se mostrar la cadena de texto especificada.
NOTA: En los mensajes de informacin de tipos, alertas y errores detectados, puede alcanzar la
posicin del cdigo de origen del mensaje (es decir, cuando el pragma se reemplaza en un POU)
ejecutando el comando Mensaje siguiente. Esto no es posible en el tipo de texto.
610
EIO0000000071 04/2014
Declaracin de variables
EIO0000000071 04/2014
611
Declaracin de variables
Pragmas condicionales
Descripcin general
El idioma ExST (ST extendido) admite diversas instrucciones Pragma (vase pgina 608),
condicionales que afectan la generacin de cdigos en el proceso de precompilacin o
compilacin.
El cdigo de implementacin que se utiliza para la compilacin puede depender de las condiciones
siguientes:
z Se trata de determinado tipo de datos o variables declarado?
z Un tipo o una variable tienen un atributo determinado?
z Tiene una variable un tipo de datos determinado?
z Es una POU determinada, una tarea disponible o forma parte de un rbol de llamadas?
NOTA: Un POU o GVL declaradas en el rbol de POU no puede utilizar un {define...}
declarado en una aplicacin. Las definiciones en las aplicaciones solo afectarn a interfaces
insertadas bajo la aplicacin correspondiente.
612
{undefine identifier}
{IF expr}
...
{ELSIF expr}
...
{ELSE}
...
{END_IF}
EIO0000000071 04/2014
Declaracin de variables
EIO0000000071 04/2014
613
Declaracin de variables
defined (variable:variable)
Cuando se aplica a una variable, su valor es TRUE si esta variable en particular est declarada
dentro del mbito actual. De lo contrario, es FALSE.
Ejemplo en defined (variable:variable):
Precondicin: hay 2 aplicaciones App1 y App2. La variable g_bTest est declarada en la App2,
pero no en la App1.
{IF defined (variable:g_bTest)}
(* the following code is only processed in application App2 *)
g bTest := x > 300;
{END_IF}
defined (type:identifier)
Cuando se aplica a un identificador de tipo, su valor es TRUE si existe un tipo declarado con ese
nombre en particular. De lo contrario, es FALSE.
Ejemplo en defined (type:identifier) :
Precondicin: hay 2 aplicaciones App1 y App2. El tipo de datos DUT est definido en la App2 pero
no en la App1.
{IF defined (type:DUT)}
(* the following code is only processed in application App1 *)
bDutDefined := TRUE;
{END_IF}
defined (pou:pou-name)
Cuando se aplica a un nombre de POU, su valor es TRUE si se define un POU o una accin con
ese nombre de POU determinado. De lo contrario, es FALSE.
Ejemplo en defined (pou: pou-name):
Precondicin: hay 2 aplicaciones App1 y App2. Los CheckBounds del POU estn definidos en la
App2, pero no en la App1.
{IF defined (pou:CheckBounds)}
(* the following code is only processed in application App1 *)
arrTest[CheckBounds(0,i,10)] := arrTest[CheckBounds(0,i,10)] + 1;
{ELSE}
(* the following code is only processed in application App2 *)
arrTest[i] := arrTest[i]+1;
{END_IF}
614
EIO0000000071 04/2014
Declaracin de variables
EIO0000000071 04/2014
615
Declaracin de variables
EIO0000000071 04/2014
Declaracin de variables
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
DINT
INT
SINT
ULINT
UDINT
UINT
USINT
TIME
LWORD
DWORD
WORD
BYTE
BOOL
STRING
WSTRING
DATE_AND_TIME
DATE
TIME_OF_DAY
EIO0000000071 04/2014
617
Declaracin de variables
618
EIO0000000071 04/2014
Declaracin de variables
OR operator
La expresin es TRUE si uno de los operadores es TRUE. El operator puede ser uno de los
operadores descritos en este captulo.
Ejemplo en OR operator:
Precondicin: el POU PLC_PRG1 se utiliza en las aplicaciones App1 y App2. Los CheckBounds
del POU solo estn disponibles en la App1:
{IF defined (pou: PLC_PRG1) OR (defined (pou: CheckBounds))}
(* the following code line will be processed in applications App1 and A
pp2, because both contain at least one of the POUs "PLC_PRG1" and "Chec
kBounds" *)
bORTest := TRUE;
{END_IF}
(operator)
(operator) operador entre llaves.
EIO0000000071 04/2014
619
Declaracin de variables
Seccin 27.5
Atributo Pragmas
Atributo Pragmas
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
620
Pgina
Pragmas de atributos
621
622
Attribute call_after_init
624
Attribute displaymode
625
Attribute ExpandFully
626
Attribute global_init_slot
628
Attribute hide
629
Attribute hide_all_locals
630
Attribute initialize_on_call
631
Attribute init_namespace
632
Attribute init_On_Onlchange
633
Attribute instance-path
634
Attribute linkalways
635
Attribute monitoring
637
Attribute namespace
641
Attribute no_check
643
Attribute no_copy
644
Attribute no-exit
645
Attribute noinit
646
Attribute no_virtual_actions
647
Attribute obsolete
650
Attribute pack_mode
651
Attribute qualified_only
652
Attribute reflection
653
Attribute subsequent
654
Attribute symbol
655
657
EIO0000000071 04/2014
Declaracin de variables
Pragmas de atributos
Descripcin general
Puede asignar pragmas de atributos (vase pgina 608) a una firma para influir en la compilacin
o precompilacin que es la generacin de cdigo.
Hay atributos definidos por el usuario (vase pgina 622) que puede usar en combinacin con
pragmas condicionales (vase pgina 612).
Tambin estn los siguientes pragmas de atributos estndar predefinidos:
z attribute displaymode (vase pgina 625)
z attribute ExpandFully (vase pgina 626)
z attribute global_init_slot (vase pgina 628)
z attribute hide (vase pgina 629)
z attribute hide_all_locals (vase pgina 630)
z attribute initialize_on_call (vase pgina 631)
z attribute init_namespace (vase pgina 632)
z attribute init_On_Onlchange (vase pgina 633)
z attribute instance-path (vase pgina 634)
z attribute linkalways (vase pgina 635)
z attribute monitoring (vase pgina 637)
z attribute namespace (vase pgina 641)
z attribute no_check (vase pgina 643)
z attribute no_copy (vase pgina 644)
z attribute no-exit (vase pgina 645)
z attribute noinit (vase pgina 646)
z attribute no_virtual_actions (vase pgina 647)
z attribute obsolete (vase pgina 650)
z attribute pack_mode (vase pgina 651)
z attribute qualified_only (vase pgina 652)
z attribute reflection (vase pgina 653)
z attribute subsequent (vase pgina 654)
z attribute symbol (vase pgina 655)
z attribute warning disable (vase pgina 657)
EIO0000000071 04/2014
621
Declaracin de variables
622
EIO0000000071 04/2014
Declaracin de variables
Ejemplo de tipos
Atributo aType para tipo de datos DUT_1:
{attribute aType}
TYPE DUT_1 :
STRUCT
a:INT;
b:BOOL;
END_STRUCT
END_TYPE
Para el uso de pragmas condicionales, consulte el captulo Pragmas condicionales
(vase pgina 612).
EIO0000000071 04/2014
623
Declaracin de variables
Attribute call_after_init
Descripcin general
Use el pragma {attribute call_after_init} para definir un mtodo al que se invoca de
forma implcita tras la inicializacin de una instancia de bloque de funciones. Para ello, adjunte el
atributo tanto al propio bloque de funciones como al mtodo de instancia al que se invoca (por
motivos de rendimiento). El mtodo tiene que invocarse despus de FB_Init (vase pgina 603) y
despus de haber aplicado los valores de las variables de una expresin de inicializacin en la
declaracin de instancia.
Esta funcionalidad se admite desde SoMachine V3.0.
Sintaxis
{attribute attribute call_after_init}
Ejemplo
Con la siguiente definicin:
{attribute call_after_init}
FUNCTION_BLOCK FB
... <functionblock definition>
{attribute call_after_init}
METHOD FB_AfterInit
... <method definition>
... declaracin como la siguiente:
inst : FB := (in1 := 99);
... producir la siguiente orden de procesamiento de cdigo:
inst.FB_Init();
inst.in1 := 99;
inst.FB_AfterInit();
As, en FB_Afterinit, puede reaccionar ante la inicializacin definida por el usuario.
624
EIO0000000071 04/2014
Declaracin de variables
Attribute displaymode
Descripcin general
Utilice el pragma {attribute displaymode} para definir la modalidad de visualizacin de una
variable simple. Esta configuracin sobrescribir la configuracin global de la modalidad de
visualizacin de todas las variables de supervisin realizadas a travs de los comandos del
submen Modalidad de visualizacin (de forma predeterminada en el men Online).
Site el pragma en la lnea anterior a la lnea que contiene la declaracin de variable.
Sintaxis
{attribute displaymode:=<displaymode>}
Se aceptan las siguientes definiciones:
- para visualizar en formato binario
{attribute displaymode:=bin}
{attribute displaymode:=binary}
- para visualizar en formato decimal
{attribute displaymode:=dec}
{attribute displaymode:=decimal}
- para visualizar en formato hexadecimal
{attribute displaymode:=hex}
{attribute displaymode:=hexadecimal}
Ejemplo
VAR
{attribute displaymode:=hex}
dwVar1: DWORD;
END_VAR
EIO0000000071 04/2014
625
Declaracin de variables
Attribute ExpandFully
Descripcin general
Utilice el pragma {attribute ExpandFully} para que todos los miembros de las matrices
se usen como variables de entradas en las visualizaciones referenciadas a las que se puede
acceder dentro del cuadro de dilogo Propiedades de visualizacin.
Sintaxis
{attribute ExpandFully}
Ejemplo
La visualizacin visu est pensada para insertarse en un marco dentro de la visualizacin
visu_main.
Al igual que la variable de entrada, arr se define en el editor de interfaces de visu y estar
disponible ms adelante para las asignaciones en el cuadro de dilogo Propiedades del marco
de visu_main.
Para que los componentes particulares de la matriz estn disponibles en el cuadro de dilogo
Propiedades, inserte el atributo ExpandFully en el editor de interfaces de visu justo delante
de arr.
Declaracin en el editor de interfaces de visu:
VAR_INPUT
{attribute ExpandFully}
arr : ARRAY[0..5] OF INT;
END_VAR
626
EIO0000000071 04/2014
Declaracin de variables
EIO0000000071 04/2014
627
Declaracin de variables
Attribute global_init_slot
Descripcin general
Puede aplicar el pragma {attribute global_init_slot} solo en firmas. De forma
predeterminada, el orden de inicializacin de las variables de una lista de variables globales es
arbitrario. Sin embargo, en algunos casos, la prescripcin de un orden es necesaria; por ejemplo,
si las variables de una lista global hacen referencia a las variables de otra lista. En este caso,
puede utilizar el pragma para ordenar la inicializacin global.
Sintaxis
{attribute global_init_slot := <valor>}
Sustituya la plantilla <valor> por un valor entero que describa el orden de inicializacin de la firma.
El valor predeterminado es 50,000. Un valor inferior provoca una inicializacin precoz. Cuando se
trata de firmas que transmiten el mismo valor para el atributo global_init_slot, la secuencia
de su inicializacin permanece indefinida.
Ejemplo
Asuma el proyecto incluidas las dos listas de variables globales GVL_1 y GVL_2.
La variable global A es miembro de la lista de variables globales de ejemplo GVL_1:
{attribute global_init_slot := 300}
VAR_GLOBAL
A : INT:=1000;
END_VAR
Los valores iniciales de las variables B y C de GVL_2 dependen de la variable A.
{attributeglobal_init_slot := 350}
VAR_GLOBAL
B : INT:=A+1;
C : INT:=A-1;
END_VAR
La configuracin del atributo global_init_slot de GVL_1 en 300, esto es, el valor mnimo
del orden de inicializacin de ejemplo, sirve para asegurarse de que la expresin A+1 se ha
definido correctamente al inicializar B.
628
EIO0000000071 04/2014
Declaracin de variables
Attribute hide
Descripcin general
El pragma {attribute hide} sirve para evitar que variables o incluso firmas completas se
muestren dentro de la funcionalidad de los componentes del listado (vase pgina 658) o la parte
de la declaracin o la accesibilidad en la modalidad online. Solamente se ocultar la variable
posterior al pragma.
Sintaxis
{attribute hide}
Para ocultar todas las variables de una firma, utilice attribute hide_all_locals (vase pgina 630).
Ejemplo
El bloque de funciones myPOU se implementa mediante el atributo:
FUNCTION_BLOCK myPOU
VAR_INPUT
a:INT;
{attribute hide}
a_invisible: BOOL;
a_visible: BOOL;
END_VAR
VAR_OUTPUT
b:INT;
END_VAR
VAR
END_VAR
Se definen en las dos instancias principales del programa del bloque de funciones myPOU:
PROGRAM PLC_PRG
VAR
POU1, POU2: myPOU;
END_VAR
Al asignar un valor de entrada a POU1, la funcionalidad de los componentes del listado
(vase pgina 658) que funciona introduciendo POU1 en la parte de implementacin de PLC_PRG
mostrar las variables a y b. Las variables locales ocultas c o d no se mostrarn.
EIO0000000071 04/2014
629
Declaracin de variables
Attribute hide_all_locals
Descripcin general
El pragma {attribute hide_all_locals} le ayuda a impedir que todas las variables
locales de una firma se muestren en la funcionalidad de componentes de listado
(vase pgina 658) o el asistente de entrada. Este atributo es idntico a asignar el atributo hide
(vase pgina 629) a cada una de las variables locales.
Sintaxis
{attribute hide_all_locals}
Ejemplo
El bloque de funciones myPOU se implementa usando el atributo:
{attribute hide_all_locals}
FUNCTION_BLOCK myPOU
VAR_INPUT
a:INT;
END_VAR
VAR_OUTPUT
b:BOOL;
END_VAR
VAR
c,d:INT;
END_VAR
En el programa principal se definen dos instancias del bloque de funciones myPOU:
PROGRAM PLC_PRG
VAR
POU1, POU2: myPOU;
END_VAR
Al asignar un valor de entrada a POU1, la funcionalidad de componentes de listado
(vase pgina 658) que funciona al escribir POU1 en la parte de implementacin de PLC_PRG
mostrar las variables a y b. Las variables locales ocultas c o d no se mostrarn.
630
EIO0000000071 04/2014
Declaracin de variables
Attribute initialize_on_call
Descripcin general
Puede aadir el pragma {attribute initialize_on_call} a las variables de entrada. Se
inicializar una entrada de un bloque de funciones con este atributo en cualquier llamada del
bloque de funciones. Si una entrada espera un puntero y este puntero se ha eliminado por un
cambio online, la entrada se definir en NULL.
Sintaxis
{attribute initialize_on_call}
EIO0000000071 04/2014
631
Declaracin de variables
Attribute init_namespace
Descripcin general
Una variable de tipo STRING o WSTRING, que est declarada con el pragma
{attribute init_namespace} en una biblioteca, se inicializar con el espacio de nombres
actual de esa biblioteca. Para obtener ms informacin, consulte la descripcin de la
administracin de bibliotecas (vase SoMachine, Funciones y bibliotecas - Gua del usuario).
Sintaxis
{attribute init_namespace}
Ejemplo
El POU del bloque de funciones se proporciona con todos los atributos necesarios:
FUNCTION_BLOCK POU
VAR_OUTPUT
{attribute init_namespace}
myStr: STRING;
END_VAR
En el programa principal PLC_PRG se define una instancia fb del POU del bloque de funciones:
PROGRAM PLC_PRG
VAR
fb:POU;
newString: STRING;
END_VAR
newString:=fb.myStr;
La variable myStr se inicializar con el espacio de nombres actual, por ejemplo MyLib.XY. Este
valor se asignar a newString en el programa principal.
632
EIO0000000071 04/2014
Declaracin de variables
Attribute init_On_Onlchange
Descripcin general
Coloque pragma {attribute init_on_onlchange} en una variable para inicializar esta
variable con cada cambio online.
Sintaxis
{attribute init_on_onlchange }
EIO0000000071 04/2014
633
Declaracin de variables
Attribute instance-path
Descripcin general
Puede aadir pragma {attribute instance-path} a una variable de cadena local. Esta
variable de cadena local se inicializar con la ruta rbol de aplicaciones del POU a la cual
pertenece esta variable de cadena. Al aplicar este pragma se asume el uso de attribute reflection
(vase pgina 653) para el POU correspondiente y el atributo noinit (vase pgina 646) adicional
para la variable de cadena.
Sintaxis
{attribute instance-path}
Ejemplo
Suponiendo que el siguiente bloque de funciones POU est equipado con el atributo
reflection:
{attribute reflection}
FUNCTION_BLOCK POU
VAR
{attribute instance-path}
{attribute noinit}
str: STRING;
END_VAR
En el programa principal PLC_PRG, se llama a una instancia myPOU del bloque de funciones POU:
PROGRAM PLC_PRG
VAR
myPOU:POU;
myString: STRING;
END_VAR
myPOU();
myString:=myPOU.str;
Tras la inicializacin de la instancia myPOU, la variable de cadena str se asigna a la ruta de la
instancia myPOU, por ejemplo: PLCWinNT.Application.PLC_PRG.myPOU. Esta ruta se
asignar a la variable myString dentro del programa principal.
NOTA: La longitud de una variable de cadena se puede definir de forma arbitraria (par >255). Sin
embargo, la cadena se recortar (desde su extremo trasero) si se asigna a una variable de cadena
de una longitud ms corta.
634
EIO0000000071 04/2014
Declaracin de variables
Attribute linkalways
Descripcin general
Use el pragma {attribute linkalways} para marcar POU en el compilador de forma que
siempre se incluyan en la informacin de compilacin. Como resultado, los objetos con esta
opcin siempre se compilarn y descargarn en el controlador. Esta opcin solo afecta a los POU
y a las listas de variables globales (GVL) que se siten por debajo de una aplicacin o en
bibliotecas que se inserten por debajo de una aplicacin. La opcin del compilador Ligar siempre
influye del mismo modo.
Sintaxis
{attribute linkalways}
Cuando utiliza el editor de configuracin de smbolos, los POU marcados se emplean como base
de las variables seleccionables para la configuracin de smbolos.
Ejemplo
La lista de variables globales GVLMoreSymbols se implementa a travs del atributo
linkalways:
{attribute linkalways}
VAR_GLOBAS
g_iVar1: INT;
g_iVar2: INT;
END_VAR
Con este cdigo, los smbolos de GVLMoreSymbols pasan a ser seleccionables en la
Configuracin de smbolos.
EIO0000000071 04/2014
635
Declaracin de variables
636
EIO0000000071 04/2014
Declaracin de variables
Attribute monitoring
Descripcin general
Este pragma de atributo permite supervisar los resultados de propiedades y llamadas de funciones
en la vista en lnea del editor IEC o en una ventana de supervisin.
Supervisar propiedades
Aada el pragma en la lnea situada por encima de la lnea de definicin de una propiedad. Se
mostrar el nombre, tipo y valor de las variables de la propiedad en la vista en lnea del POU que
utiliza la propiedad o en una ventana de supervisin. Una vez aqu, podr introducir valores
preparados para las variables de forzado pertenecientes a la propiedad.
Ejemplo de propiedad preparada para la supervisin de variables
EIO0000000071 04/2014
637
Declaracin de variables
638
EIO0000000071 04/2014
Declaracin de variables
EIO0000000071 04/2014
639
Declaracin de variables
640
EIO0000000071 04/2014
Declaracin de variables
Attribute namespace
Descripcin general
En combinacin con el attribute symbol (vase pgina 655), el pragma {attribute
namespace} sirve para redefinir el espacio de nombres de las variables del proyecto. Puede
aplicarlo a los POU completos, como GVL o programas, pero no a variables particulares. Las
variables afectadas se exportarn con la nueva definicin del espacio de nombres a un archivo de
smbolos cuando se pueda descargar este archivo en el controlador.
Esto le permitir acceder a las variables de los POU o las visualizaciones que tuviesen
originalmente espacios de nombres diferentes. Por ejemplo, tambin permite ejecutar una
visualizacin previa de SoMachine en un entorno de SoMachine posterior.
Para obtener ms informacin, consulte la descripcin de la configuracin de smbolos. Se crear
un nuevo archivo de smbolos en una descarga o cambio en lnea del proyecto. Se descarga en
el controlador junto a la aplicacin.
Sintaxis
{attribute namespace := <espacio de nombres>}
Ejemplo de un reemplazo de espacios de nombres para las variables de un programa
{attribute namespace:=prog}
PROGRAM PLC_PRG
VAR
{attribute symbol := readwrite}
iVar:INT;
bVar:BOOL;
END_VAR
Si antes se acceda a iVar, por ejemplo, mediante App1.PLC_PRG.ivar, ahora se accede a
travs de prog.ivar.
EIO0000000071 04/2014
641
Declaracin de variables
Ms ejemplos de reemplazo
Espacios de nombres
originales
Variable
Acceso a la variable
dentro del proyecto
actual
App1.Lib2.GVL2
Var07
{attribute namespace:=}
.Var07
Ext.Var02
App1.GVL2
Var02
{attribute namespace:=Ext}
App1.GVL2.FB1
Var02
Los reemplazos que aparecen en la tabla se convierten en las siguientes entradas del archivo de
smbolos:
<NodeList>
<Node name="">
<Node name="Var07" type="T_INT" access="ReadWrite">
</Node>
</NodeList>
<NodeList>
<Node name="Ext">
<Node name="Var02 " type="T_INT" access="ReadWrite"></Node>
</Node>
</NodeList>
<NodeList>
<Node name="App1">
<Node name="GVL2">
<Node name="Var02 " type="T_INT" access="ReadWrite"></Node>
</Node>
</Node>
</NodeList>
642
EIO0000000071 04/2014
Declaracin de variables
Attribute no_check
Descripcin general
pragma {attribute no_check} se ha aadido a un POU para suprimir la llamada de cualquier
POU para comprobaciones implcitas. Como las funciones de comprobacin pueden influir en el
rendimiento, aplique este atributo a los POU que se llama frecuentemente o a los que ya se han
aprobado.
Sintaxis
{attribute no_check}
EIO0000000071 04/2014
643
Declaracin de variables
Attribute no_copy
Descripcin general
Por lo general, un cambio en lnea requerir una reasignacin de instancias, por ejemplo de los
POU. Se copiar el valor de las variables dentro de esta instancia.
Sin embargo, si el pragma {attribute no_copy} se aade a una variable, no se ejecutar la
copia de un cambio en lnea de esta variable, sino que se inicializar esta variable. Esto puede ser
razonable si se trata de una variable de puntero local, que seala a una variable desplazada, en
realidad, por un cambio en lnea (y, por consiguiente, con la direccin modificada).
Sintaxis
{attribute no_copy}
644
EIO0000000071 04/2014
Declaracin de variables
Attribute no-exit
Descripcin general
Si un bloque de funciones proporciona un mtodo exit (vase pgina 606), puede suprimir su
llamada para una instancia especial con la ayuda de asignar el pragma {attribute no-exit}
a la instancia del bloque de funciones.
Sintaxis
{attribute symbol= no-exit}
Ejemplo
Suponga que el parmetro FB_Exit del mtodo exit se aade a un POU con nombre del bloque
de funciones:
EIO0000000071 04/2014
645
Declaracin de variables
Attribute noinit
Descripcin general
Las variables proporcionadas con pragma {attribute no_init} no se inicializarn de forma
implcita. pragma pertenece a la variable declarada posteriormente.
Sintaxis
{attribute no_init}
tambin es posible
{attribute no-init}
{attribute noinit}
Ejemplo
PROGRAM PLC_PRG
VAR
A : INT;
{attribute no_init}
B : INT;
END_VAR
Si se lleva a cabo un reseteo en la aplicacin asociada, la variable de entero A se volver a
inicializar de forma implcita con 0, mientras que la variable B mantendr el valor que tenga
asignado actualmente.
646
EIO0000000071 04/2014
Declaracin de variables
Attribute no_virtual_actions
Descripcin general
Este atributo es vlido para bloques de funciones derivados de un bloque de funciones base
implementado en SFC y que utilizan el flujo de trabajo del SFC principal de la base. Las acciones
llamadas al mismo muestran el mismo comportamiento virtual que los mtodos. Esto significa que
las acciones de base se pueden reemplazar por implementaciones especficas relacionadas con
las clases derivadas.
Para evitar que se reemplace la accin de la base, puede asignar el pragma {attribute
no_virtual_actions} a la base.
Sintaxis
{attribute no_virtual_actions}
Ejemplo
En el siguiente ejemplo, el bloque de funciones POU_SFC provoca la ampliacin de la base por el
bloque de funciones POU_child.
EIO0000000071 04/2014
647
Declaracin de variables
Utilizando la palabra clave SUPER, la clase derivada POU_child llama al flujo de trabajo de la
base implementada en el SFC.
El ejemplo de la implementacin de este flujo de trabajo est restringido al paso inicial. Esto es
seguido por un paso nico con el paso de accin asociado ActiveAction, que se ocupa de
asignar las variables de salida:
an_int:=an_int+1;
// counting the action calls
test_act:=father_action; // writing string variable test_act
METH();
// Calling method METH for writing string var
iable test_meth
En el caso de la clase derivada POU_child, el paso de accin se reemplazar por una implementacin especfica de ActiveAction. Difiere del original al asignar la cadena child_action
en lugar de father_action a la variable test_act.
Asimismo, el mtodo METH, que asigna la cadena father_method a la variable test_meth
dentro de la base, se reemplazar de manera que test_meth se asignar en lugar de
child_method.
648
EIO0000000071 04/2014
Declaracin de variables
El programa principal PLC_PRG ejecutar de manera reiterada llamadas a Child (un ejemplo de
POU_child). Segn lo esperado, el valor actual de la cadena de salida informa acerca de la
llamada a la accin y del mtodo de la clase derivada:
EIO0000000071 04/2014
649
Declaracin de variables
Attribute obsolete
Descripcin general
Puede aadir un obsolete pragma a una definicin de tipo datos para provocar una alerta definida
por el usuario durante una compilacin si se usa el tipo de datos correspondiente (estructura,
bloque de funciones, etc.) dentro del proyecto. Por consiguiente, puede anunciar que el tipo de
datos ya no se usa.
A diferencia de un mensaje pragma (vase pgina 610) usado localmente, esta alerta se define
dentro de la definicin y, por consiguiente, de manera global en todas las instancias del tipo de
datos.
Esta instruccin pragma es vlida en la lnea actual o (si se encuentra en una lnea separada) en
la lnea siguiente.
Sintaxis
{attribute obsolete := user-defined text}
Ejemplo
El pragma obsoleto se introduce en la definicin del bloque de funciones fb1:
{attribute obsolete := datatype fb1 not valid!}
FUNCTION_BLOCK fb1
VAR_INPUT
i:INT;
END_VAR
...
Si se utiliza fb1 como tipo de datos en una declaracin, por ejemplo fbinst: fb1;, se
visualizar la siguiente alerta cuando se genere el proyecto:
datatype fb1 not valid
650
EIO0000000071 04/2014
Declaracin de variables
Attribute pack_mode
Descripcin general
pragma {attribute pack_mode} define la modalidad en que se agrupa una estructura de
datos mientras se asigna. Defina el atributo en la parte superior de una estructura de datos. Influye
en la agrupacin de toda la estructura.
Sintaxis
{attribute pack_mode := <valor>}
Sustituya la plantilla <valor> incluida en las comillas simples por uno de los valores siguientes
disponibles:
Valor
alineada de 2 bytes (el tamao mximo de una zona de memoria vaca es 1 byte)
alineada de 4 bytes (el tamao mximo de una zona de memoria vaca es 3 bytes)
alineada de 8 bytes (el tamao mximo de una zona de memoria vaca es 7 bytes)
Ejemplo
{attribute pack_mode := 1}
TYPE myStruct:
STRUCT
Enable: BOOL;
Counter: INT;
MaxSize: BOOL;
MaxSizeReached: BOOL;
END_STRUCT
END_TYPE
Una variable del tipo de datos myStruct crear instancia alineada.
Si la direccin de su componente Enable es 0x0100, el componente Counter seguir una
direccin 0x0101, MaxSize en 0x0103 y MaxSizeReached en 0x0104.
Con pack_mode=2, Counter se encontrar en 0x0102, MaxSize en 0x0104 y
MaxSizeReached en 0x0105.
NOTA: Asimismo, puede aplicar el atributo a los POU. Use esta aplicacin con precaucin debido
a los punteros internos finales existentes del POU.
EIO0000000071 04/2014
651
Declaracin de variables
Attribute qualified_only
Descripcin general
Cuando el pragma {attribute qualified_only} se asigna en la parte superior de una
lista de variables globales, a las variables de esta lista solo se puede acceder usando el nombre
de la variable global, por ejemplo gvl.g_var. Esto vale incluso para variables de tipo de
enumeracin. Puede ser til para evitar discrepancias de nombres con las variables locales.
Sintaxis
{attribute qualified_only}
Ejemplo
Suponga que la siguiente lista de variables globales (GVL) se proporciona con el atributo
qualified_only:
{attribute qualified_only}
VAR_GLOBAL
iVar:INT;
END_VAR
En el POU PLC_PRG, a la variable global se la tiene que invocar con el prefijo GVL, segn se
muestra en este ejemplo:
GVL.iVar:=5;
La siguiente llamada incompleta de la variable se detectar como un error:
iVar:=5;
652
EIO0000000071 04/2014
Declaracin de variables
Attribute reflection
Descripcin general
pragma {attribute reflection} est vinculado a firmas. Por motivos de rendimiento, es
un atributo obligatorio para los POU con el atributo instance-path (vase pgina 634).
Sintaxis
{attribute reflection}
Ejemplo
Consulte el ejemplo (vase pgina 634) de attribute instance-path.
EIO0000000071 04/2014
653
Declaracin de variables
Attribute subsequent
Descripcin general
El pragma {attribute subsequent} obliga a que las variables se asignen en una fila en
una ubicacin de la memoria. Si la lista se modifica, toda la lista se asignar a una nueva
ubicacin. Este pragma se emplea en programas y listas de variables globales (GVL).
Sintaxis
{attribute subsequent}
NOTA: Si alguna variable de la lista es RETAIN, toda la lista se colocar en la memoria retentiva.
NOTA: VAR_TEMP en un programa con el atributo subsequent se detectar como error de
compilacin.
654
EIO0000000071 04/2014
Declaracin de variables
Attribute symbol
Descripcin general
El pragma {attribute symbol} define qu variables se van a gestionar en la configuracin
de smbolos.
Las siguientes operaciones de importacin se aplican a las variables:
Las variables se exportan como smbolos dentro de una lista de smbolos.
z Las variables se exportan como un archivo XML en el directorio de proyectos.
z Las variables se exportan a un archivo no visible y disponible en el sistema de destino para
acceso externo, mediante un servidor OPC, por ejemplo.
z
Las variables con ese atributo sern descargadas al controlador incluso si no se han configurado
o no son visibles en el editor de configuracin de smbolos.
NOTA: La configuracin de smbolos debe estar disponible como un objeto bajo la aplicacin
correspondiente en el rbol de herramientas.
Sintaxis
{attribute symbol := none | read | write | readwrite}
Solo se permite el acceso a los smbolos que provengan de programas o de la lista de variables
globales. Para acceder a un smbolo especifique su nombre completo.
Puede asignar la definicin de pragma a una variable especfica o a un conjunto de todas las
variables declaradas en un programa.
z Para que esto sea vlido para una nica variable coloque el pragma en la lnea anterior a la
declaracin de variable.
z Para que sea vlido para todas las variables contenidas en la parte de declaraciones de un
programa, coloque el pragma en la primera lnea del editor de declaraciones. En este caso,
tambin puede modificar la configuracin para variables especficas aadiendo explcitamente
un pragma.
La posibilidad de acceso a un smbolo est definida por los siguientes parmetros de pragma:
none
z read
z write
z readwrite
z
EIO0000000071 04/2014
655
Declaracin de variables
Ejemplo
Con la siguiente configuracin, las variables A y B se exportarn con acceso de lectura y escritura.
La variable D se exportar con acceso de lectura.
{attribute symbol := readwrite}
PROGRAM PLC_PRG
VAR
A : INT;
B : INT;
{attribute symbol := none}
C : INT;
{attribute symbol := read}
D : INT;
END_VAR
656
EIO0000000071 04/2014
Declaracin de variables
EIO0000000071 04/2014
657
Declaracin de variables
Seccin 27.6
La funcionalidad Intelli-sense
La funcionalidad Intelli-sense
Intelli-sense
Descripcin general
Siempre que los identificadores (por ejemplo, las variables o instancias de bloques de funciones)
se puedan introducir (por ejemplo en el interior de los editores de lenguajes de IEC 61131-3 o
dentro de las ventanas de Supervisar, Traza, Visualizacin), ser compatible con la
funcionalidad de intelli-sense. Puede personalizar esta funcin (activada o desactivada) en la
seccin Codificacin inteligente del cuadro de dilogo Herramientas Opciones.
Soporte en insercin del identificador
La funcionalidad intelli-sense permite insertar un identificador adecuado:
Si introduce un punto (.) en cualquier posicin en la que se permita insertar un identificador
global en vez del identificador, se mostrar un cuadro de seleccin. Enumera las variables
globales actualmente disponibles. Puede elegir uno de estos elementos y pulsar la tecla
RETORNO para introducirlo detrs del punto. Tambin puede insertar el elemento haciendo
doble clic en la entrada de la lista.
z Si introduce una instancia del bloque de funciones o una variable de estructura seguida de un
punto (.), aparecer un cuadro de seleccin. Enumera las variables de entrada y salida del
bloque de funciones correspondiente o los componentes de estructura. Puede elegir el
elemento que desee pulsando la tecla RETORNO o haciendo doble clic en la entrada de la lista
para insertarla.
z En el editor ST, si introduce cualquier cadena y pulsa CTRL+ESPACIO, aparecer un cuadro
de seleccin. Enumera los POU y las variables globales disponibles en el proyecto. Se
seleccionar la primera entrada de la lista, que comienza con la cadena proporcionada. Pulse
la tecla RETORNO para insertarla en el programa.
z
658
EIO0000000071 04/2014
Declaracin de variables
Ejemplos
La funcionalidad intelli-sense ofrece componentes de estructura:
EIO0000000071 04/2014
659
Declaracin de variables
660
EIO0000000071 04/2014
SoMachine
Tipos de datos
EIO0000000071 04/2014
Captulo 28
Tipos de datos
Tipos de datos
Contenido de este captulo
Este captulo contiene las siguientes secciones:
Seccin
Apartado
Pgina
28.1
Informacin general
662
28.2
663
28.3
666
28.4
676
EIO0000000071 04/2014
661
Tipos de datos
Seccin 28.1
Informacin general
Informacin general
Tipos de datos
Descripcin general
Puede utilizar tipos de datos estndar (vase pgina 663), tipos de datos definidos por el usuario
(vase pgina 676) o instancias de bloques de funciones al programar en SoMachine. Cada
identificador est asignado a un tipo de dato. Este tipo de dato indica el espacio de la memoria
que se reservar y qu tipo de valores almacena.
662
EIO0000000071 04/2014
Tipos de datos
Seccin 28.2
Tipos de datos estndar
Lmite inferior
Lmite superior
Espacio en memoria
BYTE
255
8 bits
WORD
65,535
16 bits
DWORD
4,294,967,295
32 bits
LWORD
2 -1
64 bits
SINT
128
127
8 bits
USINT
255
8 bits
INT
32,768
32,767
16 bits
UINT
65,535
16 bits
EIO0000000071 04/2014
64
663
Tipos de datos
Tipo de datos
Lmite inferior
Lmite superior
Espacio en memoria
DINT
2,147,483,648
2,147,483,647
32 bits
UDINT
4,294,967,295
32 bits
LINT
263
263-1
64 bits
ULINT
264-1
64 bits
NOTA: Las conversiones desde tipos ms grandes hasta tipos ms pequeos pueden provocar
una prdida de informacin.
Para obtener ms informacin, consulte la descripcin de constantes de nmeros
(vase pgina 805).
NOTA: Puede usar las comprobaciones implcitas para validar la conversin de los tipos de
variable (consulte el captulo POU para comprobaciones implcitas (vase pgina 195)).
REAL / LREAL
Los tipos de datos REAL y LREAL se denominan tipos de coma flotante. Representan nmeros
racionales. Se reservan 32 bits de espacio en memoria para REAL y 64 bits para LREAL.
Rango de valores para REAL:
1.401e-45...3.403e+38
Rango de valores para LREAL:
2.2250738585072014e-308...1.7976931348623158e+308
NOTA: La compatibilidad del tipo de datos LREAL depende del dispositivo de destino. Consulte
la documentacin correspondiente para ver si el tipo de 64 bits LREAL se convierte a REAL
durante la compilacin (posiblemente con una prdida de informacin) o se mantiene.
NOTA: Si un REAL o LREAL se convierte en SINT, USINT, INT, UINT, DINT, UDINT, LINT o
ULINT y el valor del nmero real est fuera del rango de valores de ese entero, el resultado no
estar indefinido y depender del sistema de destino. En este caso, incluso una excepcin sera
posible. Para obtener un cdigo de destino/independiente, gestione cualquier exceso del rango
mediante la aplicacin. Si el nmero REAL/LREAL est dentro del rango de valores de entero, la
conversin funcionar del mismo modo en todos los sistemas.
Al asignar i1 := r1;, se ha detectado un error. Por consiguiente, la nota anterior se aplica
cuando se utilizan operadores de conversin (vase pgina 749) como el siguiente:
i1 := REAL_TO_INT(r1);
Para obtener ms informacin, consulte Constantes REAL/LREAL (operandos)
(vase pgina 806).
NOTA: Puede usar las comprobaciones implcitas para validar la conversin de los tipos de
variable (consulte el captulo POU para comprobaciones implcitas (vase pgina 195)).
664
EIO0000000071 04/2014
Tipos de datos
STRING
Una variable de tipo de datos STRING puede contener cualquier cadena de caracteres. La entrada
del tamao en la declaracin determina el espacio en memoria que se reserva para la variable.
Hace referencia al nmero de caracteres de la cadena y se puede poner entre parntesis o
corchetes. Si no se especifica nada con respecto al tamao, se usar el tamao predefinido de 80
caracteres.
En general, la longitud de una cadena no est limitada. Sin embargo, las funciones de la cadena
solo pueden procesar cadenas con una longitud de entre 1 y 255 caracteres. Si se inicializa una
variable con una cadena demasiado larga para el tipo de datos de la variable, la cadena se
acortar como corresponda de derecha a izquierda.
NOTA: El espacio en memoria necesario para una variable de tipo STRING es de 1 byte por
carcter ms 1 byte adicional. Es decir, la declaracin STRING[80] requiere 81 bytes.
Ejemplo de una declaracin de cadena con 35 caracteres:
str:STRING(35):=This is a String;
Para obtener ms informacin, consulte WSTRING (vase pgina 669) y Constantes de STRING
(operandos) (vase pgina 807).
NOTA: Puede usar las comprobaciones implcitas para validar la conversin de los tipos de
variable (consulte el captulo POU para comprobaciones implcitas (vase pgina 195)).
Tipos de datos de tiempo
Los tipos de datos TIME, TIME_OF_DAY (abreviado TOD), DATE y DATE_AND_TIME (abreviado
DT) se gestionan internamente como DWORD. El tiempo se indica en milisegundos en TIME y
TOD. El tiempo en TOD comienza a las 12 a. m. El tiempo se indica en segundos en DATE y DT
desde el 1 de enero de 1970 a las 12 a. m.
Para obtener ms informacin, consulte las siguientes descripciones:
z Tipos de datos (vase pgina 662)
z LTIME (vase pgina 668): extensin de la norma IEC 61131-3, disponible como un tipo de
datos de tiempo de 64 bits.
z Constantes TIME (vase pgina 800)
z Constantes DATE (vase pgina 802)
z Constantes DATE_AND_TIME (vase pgina 803)
z Constantes TIME_OF_DAY (vase pgina 804)
NOTA: Puede usar las comprobaciones implcitas para validar la conversin de los tipos de
variable (consulte el captulo POU para comprobaciones implcitas (vase pgina 195)).
EIO0000000071 04/2014
665
Tipos de datos
Seccin 28.3
Ampliaciones a IEC estndar
666
Pgina
UNION
667
LTIME
668
WSTRING
669
BIT
670
Referencias
671
Punteros
673
EIO0000000071 04/2014
Tipos de datos
UNION
Descripcin general
Como ampliacin a la norma IEC 61131-3 , puede declarar uniones en los tipos definidos por el
usuario.
Los componentes de una unin tienen el mismo offset. Esto significa que ocupan la misma
ubicacin de almacenamiento. Por tanto, si partimos de la definicin de unin que se muestra en
el ejemplo siguiente, una asignacin a name.a tambin manipula name.b.
Ejemplo
TYPE name: UNION
a : LREAL;
b : LINT;
END_UNION
END_TYPE
EIO0000000071 04/2014
667
Tipos de datos
LTIME
Descripcin general
Como ampliacin a IEC 61131-3, LTIME es compatible como base de tiempo para
temporizadores de alta resolucin. LTIME tiene un tamao de 64 bits y una resolucin en
nanosegundos.
Sintaxis
LTIME#<declaracin de tiempo>
La declaracin de tiempo puede incluir las unidades de tiempo como se utilizan con la constante
TIME y como:
z us : microsegundos
z ns : nanosegundos
Ejemplo
LTIME1 := LTIME#1000d15h23m12s34ms2us44ns
Comparar con TIME de 32 bits y resolucin en milisegundos (vase pgina 665).
668
EIO0000000071 04/2014
Tipos de datos
WSTRING
Descripcin general
Este tipo de datos de cadena es una ampliacin a la norma IEC 61131-3.
Difiere del tipo de STRING estndar (ASCII) en la interpretacin del formato Unicode y la
necesidad de 2 bytes para cada carcter y 2 bytes de espacio adicional de la memoria (cada uno
solo 1 en caso de una STRING).
Ejemplo
wstr:WSTRING:="This is a WString";
Para obtener ms informacin, consulte las siguientes descripciones:
STRING (vase pgina 665)
z ConstantesSTRING (vase pgina 807) (operandos)
z
EIO0000000071 04/2014
669
Tipos de datos
BIT
Descripcin general
Puede utilizar el tipo de datos BIT solo para variables particulares dentro de Estructuras
(vase pgina 681). Los valores posibles son TRUE (1) y FALSE (0).
Un elemento BIT consume 1 bit de espacio en memoria y sirve para direccionar bits nicos de una
estructura por nombre (para obtener ms informacin, consulte el prrafo Acceso a bits en
estructuras (vase pgina 682)). Los elementos de bits que hayan declarado uno detrs de otro
se combinarn en bytes. A diferencia de los tipos BOOL (vase pgina 663), cuando se reservan
8 bits, el uso de espacio en memoria se puede optimizar. En cambio, el acceso a los bits llevar
indudablemente ms tiempo. Por ello, use el tipo de datos BIT si desea almacenar diversos tipos
de informacin booleana en un formato compacto.
670
EIO0000000071 04/2014
Tipos de datos
Referencias
Descripcin general
Este tipo de datos est disponible en la ampliacin a la norma IEC 61131-3.
Una referencia funciona como un alias para un objeto. El alias se puede escribir o leer a travs de
identificadores. La diferencia con un puntero es que el valor al que apunta se ve directamente
afectado y que la asignacin de la referencia y el valor es fija. Defina la direccin de la referencia
a travs de una operacin de asignacin independiente. Puede utilizar el operador
__ISVALIDREF para comprobar si una referencia apunta a un valor vlido (que no es igual a 0).
Para obtener ms informacin, consulte el prrafo Bsqueda de referencias vlidas ms adelante
en este captulo.
Sintaxis
<identificador> : REFERENCE TO <tipo de datos>
Declaracin de ejemplo
ref_int : REFERENCE TO INT;
a : INT;
b : INT;
ref_int ya se encuentra disponible para usarse como alias en variables de tipo INT.
Ejemplo de uso
ref_int REF= a;
ref_int := 12;
b := ref_int * 2;
ref_int REF= b;
ref_int := a / 2;
ref_int REF= 0;
EIO0000000071 04/2014
671
Tipos de datos
672
EIO0000000071 04/2014
Tipos de datos
Punteros
Descripcin general
Como extensin a la norma IEC 61131-3, puede utilizar punteros.
Los punteros almacenan las direcciones de variables, programas, bloques de funciones, mtodos
y funciones mientras se ejecuta un programa de aplicacin. Un puntero puede apuntar a
cualquiera de esos objetos y a cualquier tipo de datos (vase pgina 662), incluso a los tipos de
datos definidos por el usuario (vase pgina 677). La posibilidad de utilizar una funcin de control
del puntero implcito se describe ms adelante en el prrafo Funcin de CheckPointer
(vase pgina 675).
Sintaxis de una declaracin de puntero
<identificador>: POINTER TO <tipo de datos | bloque de funciones | programa | mtodo
| funcin>;
La desreferenciacin de un puntero equivale a obtener el valor almacenado actualmente en la
direccin que indica. Puede desreferenciar un puntero aadiendo el operador de contenido ^
(caret ASCII o smbolo circunflejo) (vase pgina 746) despus del identificador de puntero.
Observe pt^ en el ejemplo siguiente.
Puede utilizar el ADR address operator (vase pgina 745) para asignar la direccin de una
variable a un puntero.
Ejemplo
VAR
pt:POINTER TO INT; (* of pointer pt *)
var_int1:INT := 5; (* declaration of variables var_int1 and var_int2 *
)
var_int2:INT;
END_VAR
pt := ADR(var_int1); (* address of var_int1 is assigned to pointer pt *
)
var_int2:= pt^;
(* value 5 of var_int1 gets assigned to var_int2 v
ia dereferencing of pointer pt; *)
EIO0000000071 04/2014
673
Tipos de datos
Funcin Punteros
SoMachine tambin admite punteros de funcin. Estos punteros se pueden pasar a bibliotecas
externas, pero no se puede llamar a un puntero de funcin dentro de una aplicacin del sistema
de programacin. La funcin de tiempo de ejecucin del registro de funciones de devolucin de
llamada (funcin de la biblioteca del sistema) espera el puntero de la funcin y, en funcin de la
devolucin de llamada para la que se haya solicitado el registro, el sistema en tiempo de ejecucin
llamar de forma implcita a la funcin correspondiente (por ejemplo, en STOP). Para habilitar esa
llamada del sistema (sistema en tiempo de ejecucin), defina las propiedades correspondientes
(de forma predeterminada en Ver Propiedades... Crear) del objeto de la funcin.
Puede utilizar el operador (vase pgina 745) ADR en los nombres de funciones, nombres de
programas, nombres de bloques de funciones y nombres de mtodos. Como las funciones pueden
moverse despus del cambio en lnea, el resultado no ser la direccin de la funcin, sino la
direccin de un puntero en la funcin. Esta direccin ser vlida siempre que la funcin exista en
el destino.
La ejecucin del comando Cambio online puede cambiar el contenido de las direcciones.
ATENCIN
PUNTERO NO VLIDO
Cuando utilice punteros en las direcciones y ejecute el comando Cambio online, verifique
siempre el contenido de los punteros.
El incumplimiento de estas instrucciones puede causar lesiones o dao al equipo.
Acceso por ndice a punteros
Como extensin a la norma IEC 61131-3, se permite el acceso por ndice [] a variables de tipo
POINTER, STRING (vase pgina 665) y WSTRING (vase pgina 669).
z
z
NOTA: Tambin puede utilizar Referencias (vase pgina 671). A diferencia de un puntero, las
referencias afectan directamente a un valor.
674
EIO0000000071 04/2014
Tipos de datos
Funcin CheckPointer
Para comprobar el acceso al puntero durante el tiempo de ejecucin, puede utilizar la funcin de
comprobacin disponible de forma implcita CheckPointer. Se llama antes de cada acceso a la
direccin de un puntero. Para conseguirlo, aada el objeto POU para comprobaciones
implcitas a la aplicacin. Para ello, marque la casilla de verificacin relacionada con el tipo
CheckPointer, seleccione un lenguaje de implementacin y confirme su configuracin haciendo
clic en Abrir. De este modo se abre la funcin de comprobacin en el editor correspondiente al
lenguaje de implementacin seleccionado. Independientemente de esta eleccin, la parte de
declaraciones est preestablecida. No puede modificarla, salvo que aada ms variables locales.
Sin embargo, a diferencia de otras funciones de comprobacin, no hay una implementacin
predeterminada de CheckPointer disponible.
NOTA: No existe una llamada implcita de la funcin de comprobacin para el puntero THIS.
Plantilla:
Parte de la declaracin:
// Implicitly generated code : DO NOT EDIT
FUNCTION CheckPointer : POINTER TO BYTE
VAR_INPUT
ptToTest : POINTER TO BYTE;
iSize : DINT;
iGran : DINT;
bWrite: BOOL;
END_VAR
Parte de la implementacin (incompleta):
// No standard way of implementation. Fill your own code here
CheckPointer := ptToTest;
Cuando se llama, se incluyen los siguientes parmetros de entrada en la funcin:
ptToTest: Direccin de destino del puntero.
z iSize: Tamao de la variable referenciada; el tipo de datos de iSize debe ser compatible con
enteros y abarcar el tamao mximo de datos posibles almacenados en la direccin del
puntero.
z iGran: Granularidad del acceso que es el tipo de datos no estructurados ms grande usado
en la variable referenciada; el tipo de datos de iGran ha de ser compatible con enteros.
z bWrite: Tipo de acceso (TRUE= acceso de escritura, FALSE= acceso de lectura); el tipo de
datos de bWrite debe ser BOOL.
z
EIO0000000071 04/2014
675
Tipos de datos
Seccin 28.4
Tipos de datos definidos por el usuario
676
Pgina
677
Matrices
678
Estructuras
681
Enumeraciones
683
Tipos de subrea
685
EIO0000000071 04/2014
Tipos de datos
EIO0000000071 04/2014
677
Tipos de datos
Matrices
Descripcin general
Los campos de una, dos y tres dimensiones (matrices) se admiten como tipos de datos
elementales. Puede definir matrices tanto en la parte de declaraciones de un POU como en las
listas de variables globales. Tambin puede utilizar comprobaciones de lmites implcitas
(vase pgina 679).
Sintaxis
<Nombre_de_matriz>:ARRAY [<ll1>..<ul1>,<ll2>..<ul2>,<ll3>..<ul3>] OF <tipo elem.>
ll1, ll2, ll3 identifican el lmite ms bajo del rango de campo.
ul1, ul2 y ul3 identifican el lmite superior del rango de campo.
Los valores del rango deben ser de tipo entero.
Ejemplo
Card_game: ARRAY [1..13, 1..4] OF INT;
Inicializando matrices
Ejemplo para la inicializacin completa de una matriz.
arr1 : ARRAY [1..5] OF INT := [1,2,3,4,5];
arr2 : ARRAY [1..2,3..4] OF INT := [1,3(7)]; (* short for 1,7,7,7 *)
arr3 : ARRAY [1..2,2..3,3..4] OF INT := [2(0),4(4),2,3];
(* short for 0,0,4,4,4,4,2,3 *)
Ejemplo de la inicializacin de la matriz de una estructura.
Definicin de la estructura
TYPE STRUCT1
STRUCT
p1:int;
p2:int;
p3:dword;
END_STRUCT
END_TYPE
Inicializacin de la matriz
ARRAY[1..3] OF STRUCT1:= [(p1:=1,p2:=10,p3:=4723),(p1:=2,p2:=0,p3:=299)
,(p1:=14,p2:=5,p3:=112)];
Ejemplo de la inicializacin parcial de una matriz.
arr1 : ARRAY [1..10] OF INT := [1,2];
678
EIO0000000071 04/2014
Tipos de datos
Los elementos en los que no hay ningn valor preasignado se inicializan con el valor inicial
predeterminado del tipo bsico. En consecuencia, los elementos arr1[6]...arr1[10] del
ejemplo anterior son inicializados con 0.
Acceso a los componentes de la matriz
En una matriz de dos dimensiones, acceda a los componentes de la siguiente manera:
<Nombre_de_matriz>[Index1,Index2]
Ejemplo:
Card_game [9,2]
Funciones de verificacin para lmites de matriz
Para acceder a un elemento de la matriz de una manera apropiada durante la ejecucin, la funcin
CheckBounds debe estar disponible para la aplicacin. Por lo tanto, aada el objeto POU para
comprobaciones implcitas a la aplicacin utilizando Agregar objeto POU para comprobaciones implcitas. Seleccione la casilla de verificacin relacionada con el tipo CheckBounds.
Seleccione un lenguaje de implementacin. Confirme su configuracin con Abrir. La funcin
CheckBound se abrir en el editor correspondiente al lenguaje de implementacin seleccionado.
Independientemente de esta eleccin, la parte de declaraciones est preestablecida. No puede
modificarla, salvo aadiendo ms variables locales. El editor ST propondr una implementacin
predeterminada de la funcin que usted puede modificar.
Esta funcin de verificacin debe tratar las violaciones de lmite con un mtodo apropiado (por
ejemplo, estableciendo un indicador de error detectado o ajustando el ndice). La funcin se
llamar implcitamente tan pronto como se asigne una variable de tipo ARRAY.
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
No modifique la parte de declaraciones de una funcin de verificacin implcita.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao
al equipo.
EIO0000000071 04/2014
679
Tipos de datos
680
EIO0000000071 04/2014
Tipos de datos
Estructuras
Descripcin general
Cree estructuras en un proyecto como objetos DUT (unidad de tipos de datos) a travs del cuadro
de dilogo Agregar objeto.
Empiezan por las palabras clave TYPE y STRUCT y terminan con END_STRUCT y END_TYPE.
Sintaxis
TYPE <structurename>:
STRUCT
<declaration of variables 1>
...
<declaration of variables n>
END_STRUCT
END_TYPE
<nombre de estructura> es un tipo que se reconoce mediante el proyecto y se puede utilizar como
un tipo de datos estndar.
Se permiten las estructuras anidadas. La nica restriccin es que puede que las variables no se
asignen a direcciones (no se permite la declaracin AT).
Ejemplo
Ejemplo de una definicin de estructura denominada Polygonline:
TYPE Polygonline:
STRUCT
Start:ARRAY [1..2] OF INT;
Point1:ARRAY [1..2] OF INT;
Point2:ARRAY [1..2] OF INT;
Point3:ARRAY [1..2] OF INT;
Point4:ARRAY [1..2] OF INT;
End:ARRAY [1..2] OF INT;
END_STRUCT
END_TYPE
Inicializacin de estructuras
Ejemplo:
Poly_1:polygonline := ( Start:=[3,3], Point1:=[5,2], Point2:=[7,3], Poi
nt3:=[8,5], Point4:=[5,7], End:= [3,5]);
Las inicializaciones con variables no son posibles. Para obtener un ejemplo de la inicializacin de
una matriz de una estructura, consulte Matrices (vase pgina 678).
EIO0000000071 04/2014
681
Tipos de datos
682
EIO0000000071 04/2014
Tipos de datos
Enumeraciones
Descripcin general
Una enumeracin es un tipo definido por el usuario que consta de una serie de constantes de
cadena. Estas constantes se denominan valores de enumeracin.
Los valores de enumeracin se reconocen globalmente en todas las reas del proyecto, incluso
si se declaran dentro de un POU.
Una enumeracin se crea en un proyecto como objeto DUT mediante el cuadro de dilogo
Agregar objeto.
NOTA: La declaracin de enumeracin local solo es posible dentro de TYPE.
Sintaxis
TYPE <identificador> (<enum_0>,<enum_1>, ...,<enum_n>) |<tipo de datos base>;END_TYPE
Una variable de tipo <identificador> puede adoptar uno de los valores de enumeracin
<enum_..> y se inicializar con la primera. Estos valores son compatibles con nmeros enteros,
lo que significa que puede realizar operaciones con ellos al igual que con las variables enteras.
Puede asignar un nmero x a la variable. Si los valores de enumeracin no se inicializan con
valores especficos dentro de la declaracin, el recuento comenzar por 0. Al inicializar, asegrese
de que los valores iniciales van en aumento dentro de la fila de componentes. La validez del
nmero se verifica cuando se ejecuta.
Ejemplo
TYPE TRAFFIC_SIGNAL: (red, yellow, green:=10); (* The initial value fo
r each of the colors is red 0, yellow 1, green 10 *)
END_TYPE
TRAFFIC_SIGNAL1 : TRAFFIC_SIGNAL;
TRAFFIC_SIGNAL1:=0; (* The value of the traffic signal is "red" *)
FOR i:= red TO green DO
i := i + 1;
END_FOR;
EIO0000000071 04/2014
683
Tipos de datos
684
EIO0000000071 04/2014
Tipos de datos
Tipos de subrea
Descripcin general
Un tipo de subrea es un tipo definido por el usuario (vase pgina 677) cuyo rango de valores es
solo un subconjunto del tipo de rangos bsico. Tambin puede utilizar comprobaciones de lmites
implcitas (vase pgina 686).
Puede realizar la declaracin en un objeto DUT pero tambin puede declarar la variable
directamente con un tipo de subrea.
Sintaxis
Sintaxis para la declaracin como un objeto DUT:
TYPE <name>: <Inttype> (<ug>..<og>) END_TYPE;
<name>
<inttype>
uno de los tipos de datos SINT, USINT, INT, UINT, DINT, UDINT, BYTE, WORD,
DWORD (LINT, ULINT, LWORD)
<ug>
una constante compatible con el tipo bsico, estableciendo el lmite inferior de los tipos
de rango
El propio lmite inferior est incluido en este rango.
<og>
una constante compatible con el tipo bsico, estableciendo el lmite superior de los tipos
de rango
El propio lmite inferior est incluido en este tipo bsico.
Ejemplo
TYPE
SubInt : INT (-4095..4095);
END_TYPE
Declaracin directa de una variable con un tipo de subrea
VAR
i : INT (-4095..4095);
ui : UINT (0..10000);
END_VAR
Si un valor es asignado a un tipo de subrea (en la declaracin o en la implementacin) pero no
se corresponde con este rango (por ejemplo, i:=5000 en el ejemplo de declaracin mostrado
arriba), se mostrar un mensaje.
EIO0000000071 04/2014
685
Tipos de datos
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
No modifique la parte de declaraciones de una funcin de verificacin implcita.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao
al equipo.
Ejemplo
La asignacin de una variable perteneciente a un tipo de subrea con signo implica una llamada
implcita a CheckRangeSigned. La implementacin por defecto de esa funcin reduciendo un
valor al rango permitido es la siguiente:
Parte de la declaracin:
// Implicitly generated code : DO NOT EDIT
FUNCTION CheckRangeSigned : DINT
VAR_INPUT
value, lower, upper: DINT;
END_VAR
Parte de implementacin:
// Implicitly generated code : Only an Implementation suggestion
IF (value < lower) THEN
CheckRangeSigned := lower;
ELSIF(value > upper) THEN
CheckRangeSigned := upper;
ELSE
CheckRangeSigned := value;
END_IF
686
EIO0000000071 04/2014
Tipos de datos
EIO0000000071 04/2014
687
Tipos de datos
688
EIO0000000071 04/2014
SoMachine
Directrices de programacin
EIO0000000071 04/2014
Captulo 29
Directrices de programacin
Directrices de programacin
Contenido de este captulo
Este captulo contiene las siguientes secciones:
Seccin
Apartado
Pgina
29.1
690
29.2
Prefijos
692
EIO0000000071 04/2014
689
Directrices de programacin
Seccin 29.1
Convencin sobre nombres
690
EIO0000000071 04/2014
Directrices de programacin
Ejemplos
Identificador recomendado
Identificadores no recomendados
diState
diSTATE
xInit
x_Init
diCycleCounter
diCyclecounter
lrRefVelocity
lrRef_Velocity
c_lrMaxPosition
clrMaxPosition
FC_PidController
FC_PIDController
EIO0000000071 04/2014
691
Directrices de programacin
Seccin 29.2
Prefijos
Prefijos
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
692
Pgina
Partes de prefijo
693
694
Prefijo de mbito
696
697
Prefijo de propiedad
699
Prefijo de POU
701
702
EIO0000000071 04/2014
Directrices de programacin
Partes de prefijo
Descripcin general
Los prefijos se usan para asignar nombres por funcin.
Las siguientes partes de prefijos estn disponibles:
Parte de prefijo
Uso
Prefijo de mbito
(vase pgina 696)
G_diFirstUserFault
xEnable
Prefijo de propiedad
(vase pgina 699)
[propiedad]_[designador]
c_iNumberOfAxes
Prefijo de POU
(vase pgina 701)
Identificacin de la
implementacin de la POU como
funcin, bloque de funciones o
programa
[POU]_[designador]
FB_VisuController
Prefijo de espacio de
nombres
(vase pgina 702)
[espacio de
nombres].[identificador]
TPL.G_dwErrorCode
EIO0000000071 04/2014
Sintaxis
Ejemplo
693
Directrices de programacin
: DWORD;
: DINT;
694
EIO0000000071 04/2014
Directrices de programacin
EIO0000000071 04/2014
695
Directrices de programacin
Prefijo de mbito
Descripcin general
El prefijo de mbito indica el mbito de variables y constantes. Indica si es una variable local o
global, o una constante.
Las variables globales se indican mediante una G_ mayscula y se aade un prefijo de propiedad
c a las constantes globales (seguido de un subrayado en cada caso).
NOTA: Adems, identifica las variables y constantes globales de bibliotecas con el espacio de
nombres de la biblioteca.
Prefijo de mbito
Tipo
Uso
Ejemplo
sin prefijo
VAR
variable local
xEnable
G_
VAR_GLOBAL
variable global
G_diFirstUserFault
Gc_
VAR_GLOBAL CONSTANT
constante global
Gc_dwErrorCode
Ejemplo
VAR_GLOBAL CONSTANT
Gc_dwExample : DWORD := 16#0000001A;
END_VAR
Acceso a la variable global de una biblioteca con el espacio de nombres INF:
INF.G_dwExample := 16#0000001A;
696
EIO0000000071 04/2014
Directrices de programacin
Tipo
Ejemplo
BOOL
booleano (8 bits)
xName
by
BYTE
byName
WORD
wName
dw
DWORD
dwName
lw
LWORD
lwName
si
SINT
siName
INT
iName
di
DINT
diName
li
LINT
liName
uli
ULINT
uliName
usi
USINT
usiName
ui
UINT
uiName
udi
UDINT
udiName
REAL
rName
lr
LREAL
dat
DATE
datName
TOD
tName
dt
DT
dtName
tim
TIME
timName
ltim
LTIME
ltimName
STRING
sName
ws
WSTRING
wsName
pointers
puntero
pxName
reference
referencia
rxName
EIO0000000071 04/2014
697
Directrices de programacin
Tipo
Ejemplo
a
e
array
campo
axName
enumeration
tipo de lista
eName
st
if
struct
estructura
stName
interface
interfaz
ifMotion
ut
union
unin
uName
fb
function block
bloque de funciones
fbName
Ejemplos
piCounter: POINTER TO INT;
aiCounters: ARRAY [1..22] OF INT;
paiRefCounter: POINTER TO ARRAY [1..22] OF INT;
apstTest
: ARRAY[1..2] OF POINTER TO ST_MotionStructure;
rdiCounter : REFERENCE TO DINT;
ifMotion
: IF_Motion;
698
EIO0000000071 04/2014
Directrices de programacin
Prefijo de propiedad
Descripcin general
El prefijo de propiedad identifica las propiedades de las variables y constantes.
Tipo de
prefijo
Uso
Sintaxis
Ejemplo
c_
VAR CONSTANT
constante local
c_xName
r_
VAR RETAIN
r_xName
p_
VAR PERSISTENT
p_xName
rp_
VAR PERSISTENT
rp_xName
i_
VAR_INPUT
q_
VAR_OUTPUT
parmetro de salida de un
POU
q_xName
iq_
VAR_IN_OUT
parmetro de
entrada/salida de un POU
iq_xName
ati_
ati_x0_0MasterEncoderInitOK
atq_
atq_w18AxisNotDone
atm_
atm_w19ModuleNotReady
NOTA:
z
z
EIO0000000071 04/2014
699
Directrices de programacin
700
EIO0000000071 04/2014
Directrices de programacin
Prefijo de POU
Descripcin general
Las unidades de organizacin de programa (POU) siguientes se definen en el estndar
IEC 61131-3:
z
z
z
z
z
z
z
funcin
bloque de funciones
programa
estructura de datos
tipo de lista
unin
interfaz
La designacin est formada por un prefijo de POU y un nombre lo ms corto posible (por ejemplo,
FB_GetResult). Al igual que en el caso de una variable, ponga la primera letra de cada palabra
en maysculas en el nombre base. Escriba el resto en letras minsculas. Forme un nombre
de POU compuesto a partir de un verbo y un nombre.
El prefijo se escribe con un carcter de subrayado antes del nombre e identifica el tipo de POU
segn la tabla:
Prefijo de POU Tipo
Uso
Ejemplo
SR_
programa
SR_FlowPackerMachine
PROGRAM
FB_
FUNCTION_BLOCK
bloques de funciones
FB_VisuController
FC_
FUNCTION
funciones
FC_SetUserFault
ST_
STRUCT
estructura de datos
ST_StandardModuleInterface
ET_
Enumeration
tipo de lista
ST_StandardModuleInterface
UT_
UNION
unin
UT_Values
IF_
INTERFACE
interfaz
IF_CamProfile
EIO0000000071 04/2014
701
Directrices de programacin
702
EIO0000000071 04/2014
SoMachine
Operadores
EIO0000000071 04/2014
Captulo 30
Operadores
Operadores
Descripcin general
SoMachine admite todos los operadores IEC. A diferencia de las funciones estndar, estos
operadores se reconocen implcitamente a travs del proyecto.
Adems de los operadores IEC, se admiten los siguientes operadores, los cuales no se
especifican en la norma:
z ANDN
z ORN
z XORN
z SIZEOF (consulte operadores aritmticos (vase pgina 704))
z ADR
z BITADR
z Operador de contenido (consulte operadores de direccin (vase pgina 744))
z Algunos operadores de mbito (vase pgina 794)
Contenido de este captulo
Este captulo contiene las siguientes secciones:
Seccin
Apartado
Pgina
30.1
Operadores aritmticos
704
30.2
718
30.3
723
30.4
Operadores de seleccin
731
30.5
Operadores de comparacin
737
30.6
Operadores de direccin
744
30.7
Operador de llamada
748
30.8
749
30.9
Funciones numricas
768
30.10
781
30.11
Operador de inicializacin
796
EIO0000000071 04/2014
703
Operadores
Seccin 30.1
Operadores aritmticos
Operadores aritmticos
Descripcin general
Los siguientes operadores, prescritos por la norma IEC1131-3, estn disponibles:
ADD
z MUL
z SUB
z DIV
z MOD
z MOVE
z
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Certifique siempre los operandos y resultados usados en operaciones matemticas para evitar
el desborde aritmtico.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao
al equipo.
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
704
Pgina
ADD
705
MUL
707
SUB
709
DIV
711
MOD
714
MOVE
716
SIZEOF
717
EIO0000000071 04/2014
Operadores
ADD
Descripcin general
Operador IEC para la adicin de variables
Tipos permitidos
BYTE
z WORD
z DWORD
z LWORD
z SINT
z USINT
z INT
z UINT
z DINT
z UDINT
z LINT
z ULINT
z REAL
z LREAL
z TIME
z TIME_OF_DAY(TOD)
z DATE
z DATE_AND_TIME(DT)
z
Para los tipos de datos de tiempo, se pueden realizar las siguientes combinaciones:
TIME+TIME=TIME
z TOD+TIME=TOD
z DT+TIME=DT
z
En el editor FBD/LD, el operador ADD es un cuadro ampliable. Esto significa que se puede usar
un cuadro con varias entradas en lugar de una serie de cuadros ADD concatenados. Use el
comando Insertar entrada de mdulo para aadir ms entradas. El nmero es ilimitado.
Ejemplo en IL
LD
ADD
ADD
ADD
ST
7
2
4
7
iVar
Ejemplo en ST
var1 := 7+2+4+7;
EIO0000000071 04/2014
705
Operadores
Ejemplos en FBD
706
EIO0000000071 04/2014
Operadores
MUL
Descripcin general
Operador IEC para multiplicacin de variables
Tipos permitidos
BYTE
z WORD
z DWORD
z LWORD
z SINT
z USINT
z INT
z UINT
z DINT
z UDINT
z LINT
z ULINT
z REAL
z LREAL
z TIME
z
ST
7
2
4
7
Var1
,
,
Ejemplo en ST
var1 := 7*2*4*7;
EIO0000000071 04/2014
707
Operadores
Ejemplos en FBD
708
EIO0000000071 04/2014
Operadores
SUB
Descripcin general
Operador IEC para restar una variable de otra.
Tipos permitidos:
BYTE
z WORD
z DWORD
z LWORD
z SINT
z USINT
z INT
z UINT
z DINT
z UDINT
z LINT
z ULINT
z REAL
z LREAL
z TIME
z TIME_OF_DAY(TOD)
z DATE
z DATE_AND_TIME(DT)
z
Para los tipos de datos de tiempo, se pueden realizar las siguientes combinaciones:
TIMETIME=TIME
z DATEDATE=TIME
z TODTIME=TOD
z TODTOD=TIME
z DT-TIME=DT
z DT-DT=TIME
z
7
2
Var1
Ejemplo en ST
var1 := 7-2;
EIO0000000071 04/2014
709
Operadores
Ejemplo en FBD
710
EIO0000000071 04/2014
Operadores
DIV
Descripcin general
Operador IEC para la divisin de una variable entre otra.
Tipos permitidos:
BYTE
z WORD
z DWORD
z LWORD
z SINT
z USINT
z INT
z UINT
z DINT
z UDINT
z LINT
z ULINT
z REAL
z LREAL
z TIME
z
8
2
Var1
Ejemplo en ST
var1 := 8/2;
EIO0000000071 04/2014
711
Operadores
Ejemplos en FBD
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Use las funciones de comprobacin descritas en este documento o escriba sus propias
comprobaciones para evitar la divisin entre cero en el cdigo de programacin.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao
al equipo.
NOTA: Para obtener ms informacin acerca de las funciones de verificacin implcitas consulte
el captulo POU para comprobaciones implcitas (vase pgina 195).
712
EIO0000000071 04/2014
Operadores
Funciones de verificacin
Puede utilizar las siguientes funciones de verificacin para comprobar el valor del divisor y evitar
una divisin entre cero.
z CheckDivInt
z CheckDivLint
z CheckDivReal
z CheckDivLReal
Cada una de las divisiones que tiene lugar en el cdigo relacionado provocar una llamada
anterior a estas funciones.
Utilice el comando Agregar objeto para insertarlas en la aplicacin. All, elija el objeto POU para
comprobaciones implcitas. Marque la casilla de verificacin de una funcin de verificacin
correspondiente. Seleccione un lenguaje de implementacin. Confirme su eleccin con Open. La
funcin seleccionada se abrir en el editor correspondiente a la funcin de implementacin
elegida. Independientemente de esta eleccin, la parte de declaraciones de las funciones est
preestablecida. No puede modificarla, salvo aadiendo variables locales. Una implementacin
predeterminada de las funciones que puede modificar est disponible en ST.
Implementacin predeterminada de la funcin CheckDivReal
Parte de declaraciones:
// Implicitly generated code : DO NOT EDIT
FUNCTION CheckDivReal : REAL
VAR_INPUT
divisor:REAL;
END_VAR
Parte de implementacin:
// Implicitly generated code : only an suggestion for implementation
IF divisor = 0 THEN
CheckDivReal:=1;
ELSE
CheckDivReal:=divisor;
END_IF;
El operador DIV utiliza la salida de funcinCheckDivReal como un divisor. En el siguiente
ejemplo se prohbe una divisin entre cero y el valor inicializado 0 del divisor d es cambiado a 1
por CheckDivReal antes de la ejecucin de la divisin. Por lo tanto, el resultado de la divisin es
799.
PROGRAM PLC_PRG
VAR
erg:REAL;
v1:REAL:=799;
d:REAL;
END_VAR
erg:= v1 / d;
EIO0000000071 04/2014
713
Operadores
MOD
Descripcin general
Operador IEC para la divisin de mdulo de una variable entre otra.
Tipos permitidos:
BYTE
z WORD
z DWORD
z LWORD
z SINT
z USINT
z INT
z UINT
z DINT
z UDINT
z LINT
z ULINT
z
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Use las funciones de comprobacin descritas en este documento o escriba sus propias
comprobaciones para evitar la divisin entre cero en el cdigo de programacin.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao
al equipo.
NOTA: Para obtener ms informacin sobre las funciones de comprobacin implcitas, consulte
el captulo POU para comprobaciones implcitas (vase pgina 195).
Ejemplo en IL
El resultado en Var1 es 1.
LD
MOD
ST
9
2
Var1
Ejemplo en ST
var1 := 9 MOD 2;
714
EIO0000000071 04/2014
Operadores
Ejemplos en FBD
EIO0000000071 04/2014
715
Operadores
MOVE
Descripcin general
Operador IEC para la asignacin de una variable a otra variable de un tipo de datos apropiado.
El operador MOVE se puede utilizar para todos los tipos de datos.
Como MOVE est disponible como un cuadro en los editores grficos FBD, LD, CFC, la
funcionalidad EN/ENO (desbloqueo) tambin se puede aplicar a una asignacin de variable.
Ejemplo en CFC en conjuncin con la funcin EN/ENO
Solo si en_i es TRUE, var1 se asignar a var2.
Ejemplo en IL
Resultado: var2 obtiene el valor de var1
LD
MOVE
ST
var1
var2
var1
var2
Ejemplo en ST
ivar2 := MOVE(ivar1);
Obtiene el mismo resultado con
ivar2 := ivar1;
716
EIO0000000071 04/2014
Operadores
SIZEOF
Descripcin general
Este operador aritmtico no se especifica en la norma IEC 61131-3.
Puede utilizarlo para determinar el nmero de bytes requeridos por la variable x proporcionada.
El operador SIZEOF devuelve un valor no asignado. El tipo del valor de retorno se adaptar al
tamao encontrado de la variable x.
Valor de retorno de SIZEOF(x)
USINT
UINT
UDINT
4.294.967.296 tamao de x
ULINT
Ejemplo en ST
var1 := SIZEOF(arr1);
(* d.h.: var1:=USINT#10; *)
Ejemplo en IL
El resultado es 10
arr1:ARRAY[0..4] OF INT;
Var1:INT;
LD
arr1
SIZEOF
ST
Var1
EIO0000000071 04/2014
717
Operadores
Seccin 30.2
Operadores de cadenas de bits
Los operadores de cadenas de bits comparan los respectivos bits de 2 o diversos operandos.
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
718
Pgina
AND
719
OR
720
XOR
721
NOT
722
EIO0000000071 04/2014
Operadores
AND
Descripcin general
El operador de cadenas de bits IEC para el AND a nivel de bit de los operandos de bit.
Si cada bit de entrada es 1, el bit que resulta ser 1; de lo contrario, ser 0.
Tipos permitidos:
BOOL
z BYTE
z WORD
z DWORD
z LWORD
z
Ejemplo en IL
El resultado en Var1 es 2#1000_0010.
Var1:BYTE;
LD
AND
ST
2#1001_0011
2#1000_1010
var1
Ejemplo en ST
var1 := 2#1001_0011 AND 2#1000_1010
Ejemplo en FBD
EIO0000000071 04/2014
719
Operadores
OR
Descripcin general
El operador de cadenas de bits IEC para el OR a nivel de bit de los operandos de bit.
Si al menos 1 de los bits de entrada es 1, el bit que resulta ser 1; de lo contrario, ser 0.
Tipos permitidos:
BOOL
z BYTE
z WORD
z DWORD
z LWORD
z
Ejemplo en IL
El resultado en var1 es 2#1001_1011.
var1:BYTE;
LD
OR
ST
2#1001_0011
2#1000_1010
Var1
Ejemplo en ST
Var1 := 2#1001_0011 OR 2#1000_1010
Ejemplo en FBD
720
EIO0000000071 04/2014
Operadores
XOR
Descripcin general
Operador IEC de cadena de bit para XOR a nivel de bit de operandos de bit.
Si solo uno de los bits de entrada es 1, entonces el bit resultante ser 1; si ambos o ninguno son 1,
el bit resultante ser 0.
Tipos permitidos:
BOOL
z BYTE
z WORD
z DWORD
z LWORD
z
NOTA: XOR permite aadir entradas adicionales. Si hay ms de dos entradas disponibles,
entonces se realiza una operacin XOR sobre las dos primeras entradas. El resultado, a su vez,
ser XOR combinado con la entrada 3, etc. Esto tiene el efecto de que un nmero de entradas
impar producir un bit resultante = 1.
Ejemplo en IL
El resultado es 2#0001_1001.
Var1:BYTE;
LD
XOR
ST
2#1001_0011
2#1000_1010
var1
Ejemplo en ST
Var1 := 2#1001_0011 XOR 2#1000_1010
Ejemplo en FBD
EIO0000000071 04/2014
721
Operadores
NOT
Descripcin general
El operador de cadenas de bits IEC para la operacin NOT a nivel de bit de un operando de bit.
El bit que resulta ser 1 si el bit de entrada correspondiente es 0 y viceversa.
Tipos permitidos
BOOL
z BYTE
z WORD
z DWORD
z LWORD
z
Ejemplo en IL
El resultado en Var1 es 2#0110_1100.
Var1:BYTE;
LD
NOT
ST
2#1001_0011
var1
Ejemplo en ST
Var1 := NOT 2#1001_0011
Ejemplo en FBD
722
EIO0000000071 04/2014
Operadores
Seccin 30.3
Operadores de desplazamiento de bits
Pgina
SHL
724
SHR
726
ROL
727
ROR
729
EIO0000000071 04/2014
723
Operadores
SHL
Descripcin general
El operador IEC para el desplazamiento a la izquierda de bits de un operando.
erg:= SHL (in, n)
in: operando que hay que desplazar a la izquierda
n: nmero de bits, por los que in se desplaza a la izquierda
NOTA: Si n supera el ancho del tipo de datos, depender del sistema de destino cuntos
operandos BYTE, WORD, DWORD y LWORD se rellenarn. Algunos causan que se rellenen con
ceros (0) y otros con n MOD <register width>.
NOTA: La cantidad de bits que se tiene en cuenta para la operacin aritmtica depende del tipo
de datos de la variable de entrada. Si la variable de entrada es una constante, se tendr en cuenta
el tipo de datos mnimo posible. El tipo de datos de la variable de salida no tiene ningn efecto en
la operacin aritmtica.
Ejemplos
Observe en el ejemplo siguiente en notacin hexadecimal los distintos resultados para erg_byte
y erg_word. El resultado depende del tipo de datos de la variable de entrada (BYTE o WORD),
aunque los valores de las variables de entrada in_byte y in_word son las mismas.
Ejemplo en ST
PROGRAM shl_st
VAR
in_byte : BYTE:=16#45; (* 2#01000101 )
in_word : WORD:=16#0045; (* 2#0000000001000101 )
erg_byte : BYTE;
erg_word : WORD;
n: BYTE :=2;
END_VAR
erg_byte:=SHL(in_byte,n); (* Result is 16#14, 2#00010100 *)
erg_word:=SHL(in_word,n); (* Result is 16#0114, 2#0000000100010100 *)
Ejemplo en FBD
724
EIO0000000071 04/2014
Operadores
Ejemplo en IL
LD
SHL
ST
EIO0000000071 04/2014
in_byte
2
erg_byte
725
Operadores
SHR
Descripcin general
Operador IEC para desplazamiento a la derecha a nivel de bit de un operando.
erg:= SHR (in, n)
in: operando que se debe desplazar a la derecha
n: nmero de bits, por el que in se desplaza a la derecha
NOTA: Si n sobrepasa el ancho del tipo de datos, depender del sistema de destino cmo se
rellenarn los operandos BYTE, WORD, DWORD y LWORD. Algunas causas se llenan con ceros
(0), otras con n MOD <register width>.
Ejemplos
El ejemplo siguiente en notacin hexadecimal muestra los resultados de la operacin aritmtica
que depende del tipo de la variable de entrada (BYTE o WORD).
Ejemplo en ST
PROGRAM shr_st
VAR
in_byte : BYTE:=16#45; (* 2#01000101 )
in_word : WORD:=16#0045; (* 2#0000000001000101 )
erg_byte : BYTE;
erg_word : WORD;
n: BYTE :=2;
END_VAR
erg_byte:=SHR(in_byte,n); (* Result is 16#11, 2#00010001 *)
erg_word:=SHR(in_word,n); (* Result is 16#0011, 2#0000000000010001 *)
Ejemplo en FBD
Ejemplo en IL
LD
SHR
ST
726
in_byte
2
erg_byte
EIO0000000071 04/2014
Operadores
ROL
Descripcin general
Operador IEC para rotacin a nivel de bit de un operando a la izquierda.
erg:= ROL (in, n)
Tipos de datos permitidos
BYTE
z WORD
z DWORD
z LWORD
z
in se desplazar la posicin de 1 bit a la izquierda n veces mientras que el bit que est situado
ms a la izquierda se volver a insertar desde la derecha.
NOTA: La cantidad de bits que se tiene en cuenta para la operacin aritmtica depende del tipo
de datos de la variable de entrada. Si la variable de entrada es una constante, se tendr en cuenta
el tipo de datos mnimo posible. El tipo de datos de la variable de salida no tiene ningn efecto en
la operacin aritmtica.
Ejemplos
Observe en el ejemplo siguiente en notacin hexadecimal los distintos resultados para erg_byte
y erg_word. El resultado depende del tipo de datos de la variable de entrada (BYTE o WORD),
aunque los valores de las variables de entrada in_byte y in_word son las mismas.
Ejemplo en ST
PROGRAM rol_st
VAR
in_byte : BYTE:=16#45;
in_word : WORD:=16#45;
erg_byte : BYTE;
erg_word : WORD;
n: BYTE :=2;
END_VAR
erg_byte:=ROL(in_byte,n); (* Result is 16#15 *)
erg_word:=ROL(in_word,n); (* Result is 16#0114 *)
Ejemplo en FBD
EIO0000000071 04/2014
727
Operadores
Ejemplo en IL
LD
ROL
ST
728
in_byte
n
erg_byte
EIO0000000071 04/2014
Operadores
ROR
Descripcin general
Operador IEC para rotacin a nivel de bit de un operando a la derecha.
erg:= ROR (in, n)
Tipos de datos permitidos
BYTE
z WORD
z DWORD
z LWORD
z
in se desplazar la posicin de 1 bit a la derecha n veces mientras que el bit que est situado
ms a la izquierda se volver a insertar desde la izquierda.
NOTA: La cantidad de bits que se consideran para la operacin aritmtica depende del tipo de
datos de la variable de entrada. Si la variable de entrada es una constante, se considerar el tipo
de datos mnimo posible. El tipo de datos de la variable de salida no tiene ningn efecto en la
operacin aritmtica.
Ejemplos
Observe en el ejemplo siguiente en notacin hexadecimal los distintos resultados para erg_byte
y erg_word. El resultado depende del tipo de datos de la variable de entrada (BYTE o WORD),
aunque los valores de las variables de entrada in_byte y in_word son las mismas.
Ejemplo en ST
PROGRAM ror_st
VAR
in_byte : BYTE:=16#45;
in_word : WORD:=16#45;
erg_byte : BYTE;
erg_word : WORD;
n: BYTE :=2;
END_VAR
erg_byte:=ROR(in_byte,n); (* Result is 16#51 *)
erg_word:=ROR(in_word,n); (* Result is 16#4011 *)
Ejemplo en FBD
EIO0000000071 04/2014
729
Operadores
Ejemplo en IL
LD
ROR
ST
730
in_byte
n
erg_byte
EIO0000000071 04/2014
Operadores
Seccin 30.4
Operadores de seleccin
Operadores de seleccin
Descripcin general
Las operaciones de seleccin tambin se pueden realizar con variables.
Con el objetivo de facilitar la comprensin, en este documento solo se ofrecen los siguiente
ejemplos que emplean constantes como operadores:
z SEL (vase pgina 732)
z MAX (vase pgina 733)
z MIN (vase pgina 734)
z LIMIT (vase pgina 735)
z MUX (vase pgina 736)
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
Pgina
SEL
732
MAX
733
MIN
734
LIMIT
735
MUX
736
EIO0000000071 04/2014
731
Operadores
SEL
Descripcin general
Operador de seleccin IEC para selecciones binarias.
G determina si se asigna IN0 o IN1 a OUT.
OUT := SEL(G, IN0, IN1) significa:
OUT := IN0;
OUT := IN1;
if G=FALSE
if G=TRUE
TRUE
3,4
(* IN0 = 3, IN1 =4 *)
Var1 (* result is 4 *)
FALSE
3,4
Var1 (* result is 3 *)
Ejemplo en ST
Var1:=SEL(TRUE,3,4); (* result is 4 *)
Ejemplo en FBD
Nota
NOTA: Una expresin que se produce delante de IN1 no se procesar si IN0 es TRUE. Una
expresin que se produce delante de IN2 no se procesar si IN0 es FALSE.
732
EIO0000000071 04/2014
Operadores
MAX
Descripcin general
Operador de seleccin IEC realizando una funcin mxima.
El operador MAX devuelve el mayor de 2 valores.
OUT := MAX(IN0, IN1)
IN0, IN1 y OUT pueden ser cualquier tipo de variable.
Ejemplo en IL
El resultado es 90
LD
MAX
MAX
MAX
ST
90
30
40
77
Var1
Ejemplo en ST
Var1:=MAX(30,40); (* Result is 40 *)
Var1:=MAX(40,MAX(90,30)); (* Result is 90 *)
Ejemplo en FBD
EIO0000000071 04/2014
733
Operadores
MIN
Descripcin general
Operador de seleccin IEC realizando una funcin mnima.
El operador MIN devuelve el menor de 2 valores.
OUT := MIN(IN0, IN1)
IN0, IN1 y OUT pueden ser cualquier tipo de variable.
Ejemplo en IL
El resultado es 30
LD
MIN
MIN
MIN
ST
90
30
40
77
Var1
Ejemplo en ST
Var1:=MIN(90,30); (* Result is 30 *);
Var1:=MIN(MIN(90,30),40); (* Result is 30 *);
Ejemplo en FBD
734
EIO0000000071 04/2014
Operadores
LIMIT
Descripcin general
Operador de seleccin IEC que ejecuta una funcin de limitacin.
OUT := LIMIT(Min, IN, Max) means:
OUT := MIN (MAX (IN, Min), Max)
Max es el lmite superior y Min el inferior del resultado. Si el valor IN sobrepasa el lmite superior
Max, LIMIT devolver Max. Si IN cae por debajo de Min, el resultado ser Min.
IN y OUT pueden ser cualquier tipo de variable.
Ejemplo en IL
El resultado es 80
LD
LIMIT
ST
90
30
80
Var1
Ejemplo en ST
Var1:=LIMIT(30,90,80); (* Result is 80 *);
EIO0000000071 04/2014
735
Operadores
MUX
Descripcin general
Operador de seleccin IEC para operaciones de multiplexacin.
OUT := MUX(K, IN0,...,INn)) significa:
OUT := INk
IN0, ...,INn y OUT pueden ser cualquier tipo de variable.
K tiene que ser BYTE, WORD, DWORD, LWORD, SINT, USINT, INT, UINT, DINT, LINT, ULINT
o UDINT.
MUX selecciona el valor K entre un grupo de valores.
Ejemplo en IL
El resultado es 30
LD
MUX
ST
0
30
40
50
60
70
80
Var1
,
,
,
,
,
Ejemplo en ST
Var1:=MUX(0,30,40,50,60,70,80); (* Result is 30 *);
NOTA: No se procesar una expresin que se produzca delante de una entrada distinta de INk
para ahorrar tiempo de ejecucin. nicamente en la modalidad de simulacin se ejecutarn todas
las expresiones.
736
EIO0000000071 04/2014
Operadores
Seccin 30.5
Operadores de comparacin
Operadores de comparacin
Descripcin general
Los siguientes operadores que cumplen la norma IEC1131-3 estn disponibles:
GT (vase pgina 738)
z LT (vase pgina 739)
z LE (vase pgina 740)
z GE (vase pgina 741)
z EQ (vase pgina 742)
z NE (vase pgina 743)
z
Pgina
GT
738
LT
739
LE
740
GE
741
EQ
742
NE
743
EIO0000000071 04/2014
737
Operadores
GT
Descripcin general
Operador de comparacin que realiza la funcin Mayor que.
El operador GT es un operador booleano que devuelve el valor TRUE cuando el valor del primer
operando es mayor que el del segundo.
Los operandos pueden ser de cualquier tipo de datos bsicos.
Ejemplo en IL
El resultado es FALSE
LD
GT
ST
20
30
Var1
Ejemplo en ST
VAR1 := 20 > 30;
Ejemplo en FBD
738
EIO0000000071 04/2014
Operadores
LT
Descripcin general
Operador de comparacin que realiza la funcin Menor que.
El operador LT es un operador booleano que devuelve el valor TRUE cuando el valor del primer
operando es menor que el del segundo.
Los operandos pueden ser de cualquier tipo de datos bsicos.
Ejemplo en IL
El resultado es TRUE
LD
LT
ST
20
30
Var1
Ejemplo en ST
VAR1 := 20 < 30;
Ejemplo en FBD
EIO0000000071 04/2014
739
Operadores
LE
Descripcin general
Operador de comparacin que ejecuta una funcin Menor o igual que.
El operador LE es un operador booleano que devuelve el valor TRUE cuando el valor del primer
operando es menor o igual que el del segundo.
Los operandos pueden ser de cualquier tipo de datos bsicos.
Ejemplo en IL
El resultado es TRUE
LD
LE
ST
20
30
Var1
Ejemplo en ST
VAR1 := 20 <= 30;
Ejemplo en FBD
740
EIO0000000071 04/2014
Operadores
GE
Descripcin general
Operador de comparacin que ejecuta una funcin Mayor o igual que.
El operador GE es un operador booleano que devuelve el valor TRUE cuando el valor del primer
operando es mayor o igual que el del segundo.
Los operandos pueden ser de cualquier tipo de datos bsicos.
Ejemplo en IL
El resultado es TRUE
LD
GE
ST
60
40
Var1
Ejemplo en ST
VAR1 := 60 >= 40;
Ejemplo en FBD
EIO0000000071 04/2014
741
Operadores
EQ
Descripcin general
Operador de comparacin que realiza la funcin Igual a.
El operador EQ es un operador booleano que devuelve el valor TRUE cuando los operandos son
iguales.
Los operandos pueden ser de cualquier tipo de datos bsicos.
Ejemplo en IL
El resultado es TRUE
LD
EQ
ST
40
40
Var1
Ejemplo en ST
VAR1 := 40 = 40;
Ejemplo en FBD
742
EIO0000000071 04/2014
Operadores
NE
Descripcin general
Operador de comparacin que realiza la funcin Distinto a.
El operador NE es un operador booleano que devuelve el valor TRUE cuando los operandos no
son iguales.
Los operandos pueden ser de cualquier tipo de datos bsicos.
Ejemplo en IL
LD
NE
ST
40
40
Var1
Ejemplo en ST
VAR1 := 40 <> 40;
Ejemplo en FBD
EIO0000000071 04/2014
743
Operadores
Seccin 30.6
Operadores de direccin
Operadores de direccin
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
744
Pgina
ADR
745
Operador de contenido
746
BITADR
747
EIO0000000071 04/2014
Operadores
ADR
Descripcin general
Este operador de direccin no se especifica en la norma IEC 61131-3.
ADR devuelve la direccin (vase pgina 813) de este argumento en un DWORD. Esta direccin
se puede asignar a un puntero (vase pgina 673) dentro del proyecto.
NOTA: SoMachine permite utilizar el operador ADR con nombres de funciones, nombres de
programas, nombres de bloque de funciones y nombres de mtodos.
Consulte el captulo Punteros (vase pgina 673), y tenga en cuenta que los punteros de funcin
se pueden transferir a bibliotecas externas. Sin embargo, no se puede llamar a un puntero de
funcin dentro de SoMachine. A fin de habilitar una llamada de sistema (sistema en tiempo de
ejecucin), defina la propiedad de objeto correspondiente (en el men Vista Propiedades...
Compilar) del objeto de funcin.
Ejemplo en ST
dwVar:=ADR(bVAR);
Ejemplo en IL
LD
ADR
ST
bVar
dwVar
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Asigne el valor de cualquier variable de tipo POINTER TO antes de usarlo por primera vez dentro
de un POU y en todos los ciclos siguientes.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao
al equipo.
NOTA: Las variables POINTER TO de funciones y mtodos no deben devolverse al emisor de
llamadas de esta funcin ni pasarse a variables globales.
EIO0000000071 04/2014
745
Operadores
Operador de contenido
Descripcin general
Este operador de direccin no se especifica en la norma IEC 61131-3. Puede desreferenciar un
puntero aadiendo el operador de contenido ^ (caret ASCII o smbolo circunflejo) detrs del
identificador del puntero.
Ejemplo en ST
pt:POINTER TO INT;
var_int1:INT;
var_int2:INT;
pt := ADR(var_int1);
var_int2:=pt^;
Consideraciones para cambios en lnea
La ejecucin del comando Cambio online puede cambiar el contenido de las direcciones.
ATENCIN
PUNTERO NO VLIDO
Cuando utilice punteros en las direcciones y ejecute el comando Cambio online, verifique
siempre el contenido de los punteros.
El incumplimiento de estas instrucciones puede causar lesiones o dao al equipo.
746
EIO0000000071 04/2014
Operadores
BITADR
Descripcin general
Este operador de direccin no se especifica en la norma IEC 61131-3.
BITADR devuelve el offset de bit dentro del segmento en un DWORD. El valor del offset depende
de si la opcin Direccionamiento de bytes de la configuracin de destino est activada o no.
El cuarteto ms alto de esa DWORD indica el rea de memoria:
Memoria: 16x40000000
Entrada: 16x80000000
Salida: 16xC0000000
Ejemplo en ST
VAR
var1 AT %IX2.3:BOOL;
bitoffset: DWORD;
END_VAR
bitoffset:=BITADR(var1); (* Result if byte addressing=TRUE: 16x80000013
, if byte addressing=FALSE: 16x80000023 *)
Ejemplo en IL
LD
Var1
BITADR
ST
bitoffset
Consideraciones para cambios en lnea
La ejecucin del comando Cambio online puede cambiar el contenido de las direcciones.
ATENCIN
PUNTERO NO VLIDO
Cuando utilice punteros en las direcciones y ejecute el comando Cambio online, verifique
siempre el contenido de los punteros.
El incumplimiento de estas instrucciones puede causar lesiones o dao al equipo.
EIO0000000071 04/2014
747
Operadores
Seccin 30.7
Operador de llamada
Operador de llamada
CAL
Descripcin general
Operador IEC para llamar a un bloque de funciones o un programa.
Use CAL en IL para llamar a una instancia del bloque de funciones. Coloque las variables que
servirn como variables de entrada entre parntesis a continuacin del nombre de la instancia del
bloque de funciones.
Ejemplo
Llamada a la instancia Inst de un bloque de funciones en el que las variables de entrada Par1
y Par2 son 0 y TRUE, respectivamente.
CAL INST(PAR1 := 0, PAR2 := TRUE)
748
EIO0000000071 04/2014
Operadores
Seccin 30.8
Operadores de conversin de tipo
Pgina
750
Conversiones BOOL_TO
751
Conversiones TO_BOOL
754
756
757
Conversiones TIME_TO/TIME_OF_DAY
759
Conversiones DATE_TO/DT_TO
761
Conversiones STRING_TO
763
TRUNC
765
TRUNC_INT
766
Conversiones ANY_..._TO
767
EIO0000000071 04/2014
749
Operadores
750
EIO0000000071 04/2014
Operadores
Conversiones BOOL_TO
Definicin
Operador IEC para conversiones del tipo BOOL a cualquier otro tipo.
Sintaxis
BOOL_TO_<tipo de datos>
Resultados de la conversin
Los resultados de la conversin para tipos de nmeros y tipos de cadena dependen del estado del
operando:
Estado del operando
Resultado de tipos de
nmeros
Resultado de tipos de
cadena
TRUE
TRUE
FALSE
FALSE
Ejemplos en ST
Ejemplos en ST con resultados de la conversin:
Ejemplo
Resultado
i:=BOOL_TO_INT(TRUE);
str:=BOOL_TO_STRING(TRUE);
TRUE
t:=BOOL_TO_TIME(TRUE);
T#1ms
tof:=BOOL_TO_TOD(TRUE);
TOD#00:00:00.001
dat:=BOOL_TO_DATE(FALSE);
D#1970
dandt:=BOOL_TO_DT(TRUE);
DT#1970-01-01-00:00:01
EIO0000000071 04/2014
751
Operadores
Ejemplos en IL
Ejemplos en IL con resultados de la conversin:
Ejemplo
Resultado
LD
BOOL_TO_INT
ST
TRUE
LD
BOOL_TO_STRI...
ST
TRUE
LD
BOOL_TO_TIME
ST
TRUE
LD
BOOL_TO_TOD
ST
TRUE
LD
BOOL_TO_DATE
ST
FALSE
LD
BOOL_TO_DT
ST
TRUE
i
TRUE
str
T#1ms
t
TOD#00:00:00.001
tof
D#1970-01-01
dandt
DT#1970-01-01-00:00:01
dandt
Ejemplos en FBD
Ejemplos en FBD con resultados de conversin:
Ejemplo
Resultado
1
TRUE
T#1ms
TOD#00:00:00.001
752
EIO0000000071 04/2014
Operadores
Ejemplo
Resultado
D#1970-01-01
DT#1970-01-01-00:00:01
EIO0000000071 04/2014
753
Operadores
Conversiones TO_BOOL
Definicin
Operador IEC para conversiones de otro tipo de variable a BOOL.
Sintaxis
<data type>_TO_BOOL
Resultados de la conversin
El resultado es TRUE cuando el operando no es igual a 0. El resultado es FALSE cuando el
operando es igual a 0.
El resultado es TRUE para variables de tipo STRING cuando el operando es TRUE. De lo
contrario, el resultado es FALSE.
Ejemplos en ST
Ejemplos en ST con resultados de la conversin:
Ejemplo
Resultado
b := BYTE_TO_BOOL(2#11010101);
TRUE
b := INT_TO_BOOL(0);
FALSE
b := TIME_TO_BOOL(T#5ms);
TRUE
b := STRING_TO_BOOL(TRUE);
TRUE
Ejemplos en IL
Ejemplos en IL con resultados de la conversin:
Ejemplo
754
Resultado
LD
BYTE_TO_BOOL
ST
213
LD
INT_TO_BOOL
ST
LD
TIME_TO_BOOL
ST
T#5ms
LD
STRING_TO_BOOL
ST
TRUE
TRUE
b
FALSE
b
TRUE
b
TRUE
EIO0000000071 04/2014
Operadores
Ejemplos en FBD
Ejemplos en FBD con resultados de conversin:
Ejemplo
Resultado
TRUE
FALSE
TRUE
TRUE
EIO0000000071 04/2014
755
Operadores
4223
si
Ejemplo en FBD
756
EIO0000000071 04/2014
Operadores
Resultados de la conversin
Si un REAL o LREAL se convierte en SINT, USINT, INT, UINT, DINT, UDINT, LINT o ULINT y el
valor del nmero real no se encuentra dentro del rango de valores de ese entero, el resultado ser
indefinido y puede conducir a una excepcin del controlador.
NOTA: Valide cualquier desborde del rango mediante la aplicacin y compruebe que el valor del
REAL o LREAL se encuentra dentro de los lmites del entero de destino antes de realizar la
conversin.
Al realizar la conversin al tipo STRING, tenga en cuenta que el nmero total de dgitos se limita
a 16. Si el nmero (L)REAL tiene ms dgitos, se redondear el decimosexto. Si la longitud de la
STRING se define como demasiado corta, se cortar desde el extremo derecho.
Ejemplo en ST
Ejemplos en ST con resultados de la conversin:
Ejemplo
Resultado
i := REAL_TO_INT(1.5);
j := REAL_TO_INT(1.4);
i := REAL_TO_INT(-1.5);
j := REAL_TO_INT(-1.4);
Ejemplo en IL
LD
REAL_TO_INT
ST
EIO0000000071 04/2014
2.75
i
757
Operadores
Ejemplo en FBD
758
EIO0000000071 04/2014
Operadores
Conversiones TIME_TO/TIME_OF_DAY
Definicin
Operador IEC para conversiones del tipo de variable TIME o TIME_OF_DAY a un tipo diferente.
Sintaxis
TIME_TO_<tipo de datos>
TOD_TO_<tipo de datos>
Resultados de la conversin
La hora se almacenar internamente en un DWORD en milisegundos (empezando por las 12:00
A.M. para la variable TIME_OF_DAY). Este valor se convertir.
En caso de tipo STRING el resultado es una constante de tiempo.
Ejemplos en ST
Ejemplos en ST con resultados de la conversin:
Ejemplo
Resultado
str := TIME_TO_STRING(T#12ms);
T#12ms
dw := TIME_TO_DWORD(T#5m);
300000
si := TOD_TO_SINT(TOD#00:00:00.012);
12
Ejemplos en IL
Ejemplos en IL con resultados de la conversin:
Ejemplo
Resultado
LD
TIME_TO_STRI...
ST
T#12ms
LD
TIME_TO_DWORD
ST
T#300000ms
LD
TIME_TO_SINT
ST
TOD#00:00:00.012
EIO0000000071 04/2014
T#12ms
str
300000
dw
12
si
759
Operadores
Ejemplos en FBD
760
EIO0000000071 04/2014
Operadores
Conversiones DATE_TO/DT_TO
Definicin
Operador IEC para conversiones del tipo de variable DATE o DATE_AND_TIME a otro tipo.
Sintaxis
DATE_TO_<tipo de fecha>
DT_TO_<tipo de fecha>
Resultados de la conversin
La fecha se almacenar internamente en una DWORD en segundos desde el 1 de enero de 1970.
Este valor se convertir.
Para variables de tipo STRING, el resultado es la constante de fecha.
Ejemplos en ST
Ejemplos en ST con resultados de la conversin:
Ejemplo
Resultado
b := DATE_TO_BOOL(D#1970-01-01);
FALSE
i := DATE_TO_INT(D#1970-01-15);
29952
byt := DT_TO_BYTE(DT#1970-01-15-05:05:05);
129
str := DT_TO_STRING(DT#1998-02-13-14:20);
DT#1998-02-13-14:20
Ejemplos en IL
Ejemplos en IL con resultados de la conversin:
Ejemplo
Resultado
LD
DATE_TO_BOOL
ST
D#1970-01-01
LD
DATE_TO_INT
ST
D#1970-01-01
LD
DATE_TO_BYTE
ST
D#1970-01-15-05:05:
b
29952
i
129
byt
LD
D#1998-02-13-14:20
DATE_TO_STRI...
ST
str
EIO0000000071 04/2014
FALSE
DT#1998-02-13-14:20
761
Operadores
Ejemplos en FBD
762
EIO0000000071 04/2014
Operadores
Conversiones STRING_TO
Definicin
Operador IEC para conversiones del tipo de variable STRING a otro tipo distinto.
La conversin funciona conforme al mecanismo de compilacin C estndar:
STRING a INT y INT a BYTE. El byte ms alto se cortar; por tanto, solo habr valores entre 0 y
255.
Sintaxis
STRING_TO_<tipo de datos>
Resultados de la conversin
El operando de la variable de tipo STRING debe contener un valor vlido en el tipo de la variable
de destino. En caso contrario, el resultado ser 0.
Ejemplos en ST
Ejemplos en ST con resultados de conversin:
Ejemplo
Resultado
b := STRING_TO_BOOL(TRUE);
TRUE
w := STRING_TO_WORD(abc34);
t := STRING_TO_TIME(T#127ms);
T#127ms
bv := STRING_TO_BYTE(500);
244
Explicacin: 500 = 0x1F4; 0xF4=244
EIO0000000071 04/2014
763
Operadores
Ejemplos en IL
Ejemplos en IL con resultados de la conversin:
Ejemplo
Resultado
LD
TRUE
STRING_TO_BOOL
ST
b
TRUE
LD
abc34
STRING_TO_WORD
ST
w
LD
t#117ms
STRING_TO_TIME
ST
t
T#117ms
LD
500
STRING_TO_BYTE...
ST
bv
244
Ejemplos en FBD
Ejemplos en FBD con resultados de conversin:
Ejemplo
Resultado
TRUE
T#127ms
244
764
EIO0000000071 04/2014
Operadores
TRUNC
Definicin
Operador IEC para conversiones de REAL a DINT. Se utilizar toda la parte del nmero del valor.
Ejemplos en ST
Ejemplos en ST con resultados de la conversin:
Ejemplo
Resultado
diVar:=TRUNC(1.9);
diVar:=TRUNC(1.4);
Ejemplo en IL
LD
TRUNC
ST
EIO0000000071 04/2014
1.9
diVar
765
Operadores
TRUNC_INT
Definicin
Operador IEC para conversiones de REAL a INT. Se utilizar toda la parte del nmero del valor.
Ejemplos en ST
Ejemplos en ST con resultados de la conversin:
Ejemplo
Resultado
iVar:=TRUNC_INT(1.9);
iVar:=TRUNC_INT(-1.4);
Ejemplo en IL
LD
TRUNC_INT
ST
766
1.9
iVar
EIO0000000071 04/2014
Operadores
Conversiones ANY_..._TO
Definicin
Conversin a partir de cualquier tipo de datos o, ms concretamente, de cualquier tipo de datos
numricos a otro tipo de datos. Al igual que con cualquier tipo de conversin, se debe tener en
cuenta el tamao de los operandos para que la conversin sea correcta.
Sintaxis
ANY_NUM_TO_<tipo de datos numricos>
ANY_TO_<cualquier tipo de datos>
Ejemplo
Conversin de una variable de tipo de datos REAL a INT:
re : REAL := 1.234;
i : INT := ANY_TO_INT(re)
EIO0000000071 04/2014
767
Operadores
Seccin 30.9
Funciones numricas
Funciones numricas
Descripcin general
En este captulo se describen los operadores IEC numricos disponibles especificados en la
norma IEC 61131-3.
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
768
Pgina
ABS
769
SQRT
770
LN
771
LOG
772
EXP
773
SIN
774
COS
775
TAN
776
ASIN
777
ACOS
778
ATAN
779
EXPT
780
EIO0000000071 04/2014
Operadores
ABS
Definicin
Operador IEC numrico para devolver el valor absoluto de un nmero.
Entrada y salida pueden ser cualquier tipo de dato bsico numrico.
Ejemplo en IL
El resultado en i es 2.
LD
ABS
ST
2
i
Ejemplo en ST
i:=ABS(2);
Ejemplo en FBD
EIO0000000071 04/2014
769
Operadores
SQRT
Definicin
Operador IEC numrico para obtener la raz cuadrada de un nmero.
La variable de entrada puede ser cualquier tipo de dato bsico numrico, la variable salida debe
ser el tipo REAL o LREAL.
Ejemplo en IL
El resultado en q es 4.
LD
SQRT
ST
16
q
Ejemplo en ST
q:=SQRT(16);
Ejemplo en FBD
770
EIO0000000071 04/2014
Operadores
LN
Definicin
Operador IEC numrico para obtener el logaritmo natural de un nmero.
La variable de entrada puede ser cualquier tipo de dato bsico numrico, la variable de salida debe
ser el tipo REAL o LREAL.
Ejemplo en IL
El resultado en q es 3,80666.
LD
LN
ST
45
q
Ejemplo en ST
q:=LN(45);
Ejemplo en FBD
EIO0000000071 04/2014
771
Operadores
LOG
Definicin
Operador IEC numrico para obtener el logaritmo de un nmero de base 10.
La variable de entrada puede ser cualquier tipo de dato bsico numrico, la variable de salida debe
ser el tipo REAL o LREAL.
Ejemplo en IL
El resultado en q es 2,49762.
LD
LOG
ST
314.5
q
Ejemplo en ST
q:=LOG(314.5);
Ejemplo en FBD
772
EIO0000000071 04/2014
Operadores
EXP
Definicin
Operador IEC numrico para devolver la funcin exponencial.
La variable de entrada puede ser cualquier tipo de dato bsico numrico, la variable de salida debe
ser el tipo REAL o LREAL.
Ejemplo en IL
El resultado en q es 7,389056099.
LD
EXP
ST
2
q
Ejemplo en ST
q:=EXP(2);
Ejemplo en FBD
EIO0000000071 04/2014
773
Operadores
SIN
Definicin
Operador IEC numrico para obtener el seno de un ngulo.
La entrada que define el ngulo en minutos de arco puede ser de cualquier tipo de dato bsico
numrico, la variable de salida debe ser de tipo REAL o LREAL.
Ejemplo en IL
El resultado en q es 0,479426.
LD
SIN
ST
0.5
q
Ejemplo en ST
q:=SIN(0.5);
Ejemplo en FBD
774
EIO0000000071 04/2014
Operadores
COS
Definicin
Operador IEC numrico para obtener el coseno de un ngulo.
La entrada que define el ngulo en minutos de arco puede ser de cualquier tipo de dato bsico
numrico cuando la variable de salida debe ser de tipo REAL o LREAL.
Ejemplo en IL
El resultado en q es 0,877583.
LD
COS
ST
0.5
q
Ejemplo en ST
q:=COS(0.5);
Ejemplo en FBD
EIO0000000071 04/2014
775
Operadores
TAN
Definicin
Operador IEC numrico para obtener la tangente de un nmero. El valor se calcula en minutos de
arco.
La variable de entrada puede ser cualquier tipo de dato bsico numrico cuando la variable de
salida debe ser el tipo REAL o LREAL.
Ejemplo en IL
El resultado en q es 0,546302.
LD
TAN
ST
0.5
q
Ejemplo en ST
q:=TAN(0.5);
Ejemplo en FBD
776
EIO0000000071 04/2014
Operadores
ASIN
Definicin
Operador IEC numrico para obtener el arcoseno (funcin inversa del seno) de un nmero. El
valor se calcula en minutos de arco.
La variable de entrada puede ser cualquier tipo de dato bsico numrico cuando la variable de
salida debe ser el tipo REAL o LREAL.
Ejemplo en IL
El resultado en q es 0,523599.
LD
ASIN
ST
0.5
q
Ejemplo en ST
q:=ASIN(0.5);
Ejemplo en FBD
EIO0000000071 04/2014
777
Operadores
ACOS
Definicin
Operador IEC numrico para obtener el arcoseno (funcin inversa del coseno) de un nmero. El
valor se calcula en minutos de arco.
La variable de entrada puede ser cualquier tipo de dato bsico numrico cuando la variable de
salida debe ser el tipo REAL o LREAL.
Ejemplo en IL
El resultado en q es 1,0472.
LD
ACOS
ST
0.5
q
Ejemplo en ST
q:=ACOS(0.5);
Ejemplo en FBD
778
EIO0000000071 04/2014
Operadores
ATAN
Definicin
Operador IEC numrico para obtener la arcotangente (funcin inversa de la tangente) de un
nmero. El valor se calcula en minutos de arco.
La variable de entrada puede ser cualquier tipo de dato bsico numrico cuando la variable de
salida debe ser el tipo REAL o LREAL.
Ejemplo en IL
El resultado en q es 0,463648.
LD
ATAN
ST
0.5
q
Ejemplo en ST
q:=ATAN(0.5);
Ejemplo en FBD
EIO0000000071 04/2014
779
Operadores
EXPT
Definicin
Operador IEC numrico para la exponenciacin de una variable con otra variable:
OUT = IN1 a la IN2
La variable de entrada puede ser cualquier tipo de dato bsico numrico cuando la variable de
salida debe ser el tipo REAL o LREAL.
Ejemplo en IL
El resultado es 49.
LD
EXPT
ST
7
2
Var1
Ejemplo en ST
var1:=EXPT(7,2);
Ejemplo en FBD
780
EIO0000000071 04/2014
Operadores
Seccin 30.10
Operadores de ampliacin de IEC
Pgina
782
__DELETE
783
__ISVALIDREF
785
__NEW
786
__QUERYINTERFACE
790
__QUERYPOINTER
792
Operadores de mbito
794
EIO0000000071 04/2014
781
Operadores
782
EIO0000000071 04/2014
Operadores
__DELETE
Definicin
Este operador no se especifica en la norma IEC 61131-3.
NOTA: Por motivos de compatibilidad, la versin del compilador debe ser 3.3.2.0.
Para obtener ms informacin, consulte la tabla de asignaciones de la versin del compilador de
SoMachine/CoDeSys en la Compatibilidad y migracin - Gua del usuario (vase SoMachine Compatibilidad y migracin, Gua del usuario).
El operador __DELETE anula la memoria de objetos asignados antes a travs del operador
(vase pgina 786) __NEW.
__DELETE no tiene un valor de retorno y su operando se establecer en 0 tras la operacin.
Active la opcin Utilizar asignacin dinmica de memoria en la vista Opciones de creacin de
aplicaciones (Ver Propiedades... Opciones de creacin de aplicaciones).
Sintaxis
__DELETE (<puntero>)
Si el puntero apunta a un bloque de funciones, se llamar al mtodo especializado FB_Exit ante
de que el puntero se defina en NULL.
Ejemplo
En el ejemplo siguiente, el bloque de funciones FBDynamic se asigna de forma dinmica a travs
de _NEW desde el POU PLC_PRG. De este modo, se llamar al mtodo FB_Init, en el cual se
asigna un tipo de DUT. Cuando se llama a __DELETE, el puntero del bloque de funciones de
PLC_PRG, se llamar a FB_Exit, que a su vez libera el tipo interno asignado.
FUNCTION_BLOCK FBDynamic
VAR_INPUT
in1, in2 : INT;
END_VAR
VAR_OUTPUT
out : INT;
END_VAR
VAR
test1 : INT := 1234;
_inc : INT := 0;
_dut : POINTER TO DUT;
neu : BOOL;
END_VAR
out := in1 + in2;
EIO0000000071 04/2014
783
Operadores
784
EIO0000000071 04/2014
Operadores
__ISVALIDREF
Definicin
Este operador no se especifica en la norma IEC 61131-3.
Permite comprobar si una referencia apunta a un valor vlido.
Para obtener informacin sobre cmo utilizar y ver un ejemplo, consulte la descripcin de los tipos
de datos de referencia (vase pgina 671).
EIO0000000071 04/2014
785
Operadores
__NEW
Definicin
Este operador no est preestablecido por el estndar IEC 61131-3.
NOTA: Por motivos de compatibilidad, la versin del compilador debe ser 3.3.2.0.
Para obtener ms informacin, consulte la tabla de asignaciones de la versin del compilador
SoMachine/CoDeSys en la gua Compatibilidad y migracin - Gua del usuario (vase SoMachine
- Compatibilidad y migracin, Gua del usuario).
El operador __NEW asigna memoria para las instancias de los bloques de funciones o para
matrices de tipos de datos estndar. El operador devuelve un puntero adecuadamente escrito al
objeto. Si el operador no se utiliza en una asignacin aparecer un mensaje.
Active la opcin Utilizar asignacin dinmica de memoria en la vista Opciones de creacin de
aplicaciones (Ver Propiedades... Opciones de creacin de aplicaciones) para utilizar el
operador __NEW.
Si no puede asignar memoria,__NEW dar un retorno 0.
Utilice __DELETE si quiere anular una asignacin.
Sintaxis
__NEW (<type>, [<size>]
El operador crea un nuevo objeto del tipo especificado <type> y retornar un puntero a dicho
<type>. Se llama a la inicializacin del objeto despus de su creacin. Si el retorno es 0 la
operacin no se habr completado satisfactoriamente.
Si <type> es escalar, el operando opcional <length> deber establecerse adicionalmente y el
operador crear una matriz de tipo escalar con esa longitud.
786
EIO0000000071 04/2014
Operadores
Ejemplo
pScalarType := __New(ScalarType, length);
NOTA: No es posible una copia del cdigo en el cambio en lnea de los objetos creados de forma
dinmica.
Por lo tanto, nicamente los bloques de funciones fuera de bibliotecas (debido a que no pueden
cambiar) y los bloques de funciones con el atributo enable_dynamic_creation estn
permitidos para el operador __NEW. Si un bloque de funciones cambia con este indicador de
manera que se necesite hacer una copia del cdigo, aparecer un mensaje.
NOTA: El cdigo para la asignacin de memoria no puede ser reentrante.
Se utiliza un semforo (SysSemEnter) para evitar que dos tareas traten de asignar memoria al
mismo tiempo. En consecuencia, un uso excesivo de __New puede producir una mayor
fluctuacin.
Ejemplo con un tipo escalar:
TYPE DUT :
STRUCT
a,b,c,d,e,f : INT;
END_STRUCT
END_TYPE
PROGRAM PLC_PRG
VAR
pDut : POINTER TO DUT;
bInit: BOOL := TRUE;
bDelete: BOOL;
END_VAR
IF (bInit) THEN
pDut := __NEW(DUT);
bInit := FALSE;
END_IF
IF (bDelete) THEN
__DELETE(pDut);
END_IF
Ejemplo con un bloque de funciones:
EIO0000000071 04/2014
787
Operadores
FBDynamic(FP)
{attribute enable_dynamic_creation}
FUNCTION_BLOCK FBDynamic
VAR_INPUT
in1, in2 : INT;
END_VAR
VAR_OUTPUT
out : INT;
END_VAR
VAR
test1 : INT := 1234;
_inc : INT := 0;
_dut : POINTER TO DUT;
neu : BOOL;
END_VAR
out := in1 + in2;
PLC_PRG(PRG)
VAR
pFB : POINTER TO FBDynamic;
loc : INT;
bInit: BOOL := TRUE;
bDelete: BOOL;
END_VAR
IF (pFB <> 0) THEN
pFB^(in1 := 1, in2 := loc, out => loc);
pFB^.INC();
END_IF
IF (bDelete) THEN
__DELETE(pFB);
END_IF
Ejemplo con una matriz:
PLC_PRG(PRG)
VAR
bInit: BOOL := TRUE;
bDelete: BOOL;
pArrayBytes : POINTER TO BYTE;
pArrayDuts : POINTER TO BYTE;
test: INT;
parr : POINTER TO BYTE;
END_VAR
IF (bInit) THEN
pArrayBytes := __NEW(BYTE, 25);
788
EIO0000000071 04/2014
Operadores
bInit := FALSE;
END_IF
IF (pArrayBytes <> 0) THEN
pArrayBytes[24] := 125;
test := pArrayBytes[24];
END_IF
IF (bDelete) THEN
__DELETE(pArrayBytes);
END_IF
EIO0000000071 04/2014
789
Operadores
__QUERYINTERFACE
Definicin
Este operador no se prescribe mediante la norma IEC 61131-3.
Durante el tiempo de ejecucin, __QUERYINTERFACE habilita una conversin de tipo de una
referencia de interfaz a otra. El operador devuelve un resultado con tipo BOOL. TRUE implica que
la conversin se ha ejecutado correctamente.
NOTA: Por motivos de compatibilidad, la definicin de la referencia que se debe convertir debe
ser una extensin de la interfaz base __SYSTEM.IQueryInterface y la versin del compilador
debe ser 3.3.0.20.
Para obtener ms informacin, consulte la tabla de asignaciones de la versin del compilador de
SoMachine/CoDeSys en la Compatibilidad y migracin - Gua del usuario (vase SoMachine Compatibilidad y migracin, Gua del usuario).
Sintaxis
__QUERYINTERFACE(<ITF_Source>, < ITF_Dest>
El operador requiere una referencia de interfaz o una instancia del bloque de funciones del tipo
previsto como primer operando y una referencia de interfaz como segundo operando. Tras la
ejecucin de __QUERYINTERFACE, el ITF_Dest contiene una referencia para la interfaz prevista
si el objeto referenciado del cdigo de origen ITF implementa la interfaz. En este caso, la
conversin es correcta y el resultado del operador devuelve TRUE. En el resto de casos, el
operador devuelve FALSE.
Un requisito para una conversin explcita es que no solo ITF_Source, sino tambin ITF Dest,
sean una extensin de la interfaz __System.IQueryInterface. Esta interfaz se proporciona
de forma implcita y no requiere una biblioteca.
790
EIO0000000071 04/2014
Operadores
Ejemplo
Ejemplo en ST:
INTERFACE ItfBase EXTENDS __System.IQueryInterface
METHOD mbase : BOOL
END_METHOD
INTERFACE ItfDerived1 EXTENDS ItfBase
METHOD mderived1 : BOOL
END_METHOD
INTERFACE ItfDerived2 EXTENDS ItfBase
METHOD mderived2 : BOOL
END_METHOD
PROGRAMM POU
VAR
itfderived1 : ItfDerived1;
itfderived2 : ItfDerived2;
bTest1, bTest2, xResult1, xResult2: BOOL;
END_VAR
xResult1 := __QUERYINTERFACE(itfbase, itfderived1); // variablen vom Ty
pe ItfBase bzw ItfDerived1
xResult2 := __QUERYINTERFACE(itfbase, itfderived2); // variablen vom Ty
pe ItfBase bzw ItfDerived2
IF (xResult1 = TRUE) THEN
bTest1 := itfderived1.mderived1();
ELSIF xResult2 THEN
bTest2 := itfderived2.mderived2();
END_IF
EIO0000000071 04/2014
791
Operadores
__QUERYPOINTER
Definicin
Este operador no se especifica en la norma IEC 61131-3.
Durante el tiempo de ejecucin, __QUERYPOINTER se asigna a una referencia de interfaz en un
puntero sin tipo. El operador devuelve un resultado con tipo BOOL. TRUE implica que la
conversin se ha ejecutado correctamente.
NOTA: Por motivos de compatibilidad, la definicin de la referencia de la interfaz prevista debe
ser una extensin de la interfaz base __SYSTEM.IQueryInterface y la versin del compilador
debe ser 3.3.0.20.
Para obtener ms informacin, consulte la tabla de asignaciones de la versin del compilador de
SoMachine/CoDeSys en la Compatibilidad y migracin - Gua del usuario (vase SoMachine Compatibilidad y migracin, Gua del usuario).
Sintaxis
__QUERYPOINTER (<ITF_Source>, < Pointer_Dest>
Para el primer operando, el operador requiere una referencia de interfaz o una instancia del bloque
de funciones del tipo previsto y para el segundo operando, un puntero sin tipo. Tras la ejecucin
de __QUERYPOINTER, el Pointer_Dest contiene la direccin de la referencia en la interfaz
prevista. En este caso, la conversin es correcta y el resultado del operador devuelve TRUE. En
el resto de casos, el operador devuelve FALSE. Pointer_Dest es sin tipo y puede emitirse en
cualquier tipo. El programador debe garantizar el tipo real. Por ejemplo, la interfaz podra
proporcionar un mtodo que devuelva un cdigo de tipo.
Un requisito para una conversin explcita es que el ITF_Source es una extensin de la interfaz
__System.IQueryInterface. Esta interfaz se proporciona de forma implcita y no requiere una
biblioteca.
792
EIO0000000071 04/2014
Operadores
Ejemplo
INTERFACE Itf EXTENDS __System.IQueryInterface
FUNCTION_BLOCK FBVariant IMPLEMENTS ITF
METHOD m1 : BOOL
VAR
END_VAR
m1 := TRUE;
END_METHOD
PROGRAMM POU
VAR
itf1 : Itf;
insV : FBVariant;
xResult, xTest : BOOL;
pVar: POINTER TO FBVariant;
END_VAR
itf1 := insV;
xResult := __QUERYPOINTER(itf1, pVar);
IF xResult THEN
xTest := pVar.m1();
END_IF
EIO0000000071 04/2014
793
Operadores
Operadores de mbito
Definicin
Como extensin a los operadores de IEC, existen varias posibilidades para evitar la ambigedad
al acceder a las variables o mdulos si el nombre de la variable o mdulo se utiliza mltiples veces
dentro del mbito de un proyecto.
Los siguientes operadores de mbito pueden utilizarse para definir el espacio de nombre
correspondiente:
z operador de mbito global
z nombre de lista de variables globales
z nombre de enumeracin
z espacio de nombres de la biblioteca
Operador de mbito global
Una ruta de instancia que comienza con un punto (.) abre un mbito global (espacio de nombre)
As pues, si existe una variable local con el mismo nombre <varname> que una variable global
.<varname> se refiere a la variable global.
Nombre de lista de variables globales
Puede utilizar el nombre de una lista de variables globales como espacio de nombre para las
variables comprendidas en dicha lista. As, es posible declarar variables con nombres idnticos en
diferentes listas de variables globales y, precediendo el nombre de la variable por <global
variable list name>., es posible acceder a la deseada.
Sintaxis
<global variable list name>.<variable>
Ejemplo
La lista de variables globales globlist1 y globlist2 contienen, cada una, una variable
nombrada varx. En la lnea siguiente, varx de globlist2 es copiada a varx en globlist1:
globlist1.varx := globlist2.varx;
Si un nombre de variable declarado en ms de una lista de variables global es referenciado sin
que el nombre de lista de variables globales preceda al operador, aparecer un mensaje.
794
EIO0000000071 04/2014
Operadores
EIO0000000071 04/2014
795
Operadores
Seccin 30.11
Operador de inicializacin
Operador de inicializacin
Operador INI
Descripcin general
NOTA: El operador INI est obsoleto. El mtodo FB_init sustituye al operador INI. Para
obtener ms informacin sobre el mtodo FB_init, consulte el captulo Mtodos FB_init,
FB_reinit (vase pgina 603). Sin embargo, el operador an se puede utilizar para mantener la
compatibilidad con los proyectos importados de versiones de SoMachine anteriores.
Puede utilizar el operador INI para inicializar las variables de retencin que proporciona una
instancia del bloque de funciones usada en el POU.
Asigne el operador a una variable booleana.
Sintaxis
<bool-variable> := INI(<FB-instance, TRUE|FALSE)
Si el segundo parmetro del operador se define en TRUE, se inicializarn todas las variables de
retencin definidas en el bloque de funciones FB.
Ejemplo en ST
fbinst es la instancia del bloque de funciones fb, en la que se define una variable de retencin
retvar.
Declaracin en POU
fbinst:fb;
b:bool;
Parte de implementacin
b := INI(fbinst, TRUE);
ivar:=fbinst.retvar (* => retvar gets initialized *)
Ejemplo de llamada del operador en FBD
796
EIO0000000071 04/2014
SoMachine
Operandos
EIO0000000071 04/2014
Captulo 31
Operandos
Operandos
Contenido de este captulo
Este captulo contiene las siguientes secciones:
Seccin
Apartado
Pgina
31.1
Constantes
798
31.2
Variables
809
31.3
Direcciones
813
31.4
Funciones
817
EIO0000000071 04/2014
797
Operandos
Seccin 31.1
Constantes
Constantes
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
798
Pgina
Constantes BOOL
799
Constantes TIME
800
Constantes DATE
802
Constantes DATE_AND_TIME
803
Constantes TIME_OF_DAY
804
Constantes de nmero
805
Constantes REAL/LREAL
806
Constantes STRING
807
808
EIO0000000071 04/2014
Operandos
Constantes BOOL
Descripcin general
Las constantes BOOL son los valores lgicos TRUE y FALSE.
Consulte la descripcin de los tipos de datos BOOL (vase pgina 663).
EIO0000000071 04/2014
799
Operandos
Constantes TIME
Descripcin general
Las constantes TIME se emplean para hacer funcionar los mdulos del temporizador estndar. La
constante de tiempo TIME tiene un tamao de 32 bits y se ajusta a la norma IEC 61131-3.
Adems, LTIME se admite como ampliacin a la norma como base de tiempo para temporizadores
de alta resolucin. LTIME tiene un tamao de 64 bits y una resolucin en nanosegundos.
Sintaxis para la constante TIME
t#<declaracin de tiempo>
En vez de t#, tambin puede usar los siguientes:
T#
z time
z TIME
z
La declaracin de tiempo puede incluir las siguientes unidades de tiempo. Deben utilizarse en la
siguiente secuencia, pero no es obligatorio usarlas todas.
z d: das
z h: horas
z m: minutos
z s: segundos
z ms: milisegundos
Ejemplos de constantes TIME correctas en una asignacin de ST
Ejemplo
Descripcin
TIME1 := T#14ms;
TIME1 := T#100S12ms;
TIME1 := t#12h34m15s;
800
Ejemplo
Descripcin
TIME1 := t#5m68s;
TIME1 := 15ms;
(* falta T# *)
TIME1 := t#4ms13d;
EIO0000000071 04/2014
Operandos
EIO0000000071 04/2014
801
Operandos
Constantes DATE
Descripcin general
Use estas constantes para introducir fechas.
Sintaxis
d#<declaracin de fecha>
En vez de d#, tambin puede usar los siguientes:
D#
z date
z DATE
z
802
EIO0000000071 04/2014
Operandos
Constantes DATE_AND_TIME
Descripcin general
Las constantes DATE y las constantes TIME_OF_DAY tambin se pueden combinar para formar
las denominadas constantes DATE_AND_TIME.
Sintaxis
dt#<declaracin de fecha y hora>
En lugar de dt# puede usar lo siguiente:
DT#
z date_and_time
z DATE_AND_TIME
z
EIO0000000071 04/2014
803
Operandos
Constantes TIME_OF_DAY
Descripcin general
Use este tipo de constante para almacenar las horas.
Sintaxis
tod#<declaracin de tiempo>
En lugar de tod#, tambin puede usar lo siguiente:
TOD#
z time_of_day#
z TIME_OF_DAY#
z
804
EIO0000000071 04/2014
Operandos
Constantes de nmero
Descripcin general
Los valores de nmero pueden aparecer como nmeros binarios, nmeros octales, nmeros
decimales y nmeros hexadecimales. Los valores enteros que no son nmeros decimales se
representan con la base seguida de un signo de nmero (#) delante de la constante de entero. Los
valores para los nmeros 10...15 en nmeros hexadecimales se representan con las letras A...F.
Puede incluir el carcter guin bajo dentro del nmero.
Ejemplos
14
(nmero decimal)
2#1001_0011
(nmero dual)
8#67
(nmero octal)
16#A
(nmero hexadecimal)
EIO0000000071 04/2014
805
Operandos
Constantes REAL/LREAL
Descripcin general
Las constantes REAL y LREAL se pueden proporcionar como fracciones decimales y representar
de forma exponencial. Para ello, utilice el formato estndar ingls con el punto decimal.
Ejemplos
806
7.4
en lugar de 7,4
1.64e+009
en lugar de 1,64e+009
EIO0000000071 04/2014
Operandos
Constantes STRING
Descripcin general
Una cadena es una secuencia arbitraria de caracteres. Las constantes STRING
(vase pgina 665) van precedidas y seguidas de comillas simples. Tambin puede introducir
espacios en blanco y caracteres especiales (caracteres especiales de distintos idiomas, como
acentos o diresis). Se tratarn igual que el resto de caracteres.
En las cadenas, la combinacin del signo del dlar ($) seguido de dos nmeros hexadecimales se
interpretar como una representacin hexadecimal del cdigo de carcter de 8-bits.
Adems, hay ciertas combinaciones de caracteres que empiezan con un signo del dlar y que se
interpretan como sigue:
Combinacin introducida
Interpretacin
$$
comillas simples
$L o $l
avance de lnea
$N o $n
nueva lnea
$P o $p
avance de pgina
$R o $r
salto de lnea
$T o $t
tabulador
Ejemplos
w1W?
Abby and Craig
:-)
costs ($$)
EIO0000000071 04/2014
807
Operandos
808
EIO0000000071 04/2014
Operandos
Seccin 31.2
Variables
Variables
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
Pgina
Variables
810
811
EIO0000000071 04/2014
809
Operandos
Variables
Descripcin general
Puede declarar las variables localmente en la parte de declaracin de un POU, en una lista de
variables globales (GVL), en una lista de variables persistentes o en la asignacin de E/S de
dispositivos.
Consulte el captulo Declaracin de variables (vase pgina 573) para obtener ms informacin
sobre la declaracin de una variable, incluidas las normas relacionadas con el identificador de la
variable y el uso mltiple.
El tipo de datos (vase pgina 661) determina cundo se puede usar una variable.
Puede acceder a las variables disponibles a travs de la Accesibilidad.
Acceso a variable para matrices, estructuras y POU
En la tabla se enumera la sintaxis correspondiente para acceder a matrices, estructuras y POU:
810
Sintaxis
Acceso a
componentes de la matriz
(vase pgina 678) de dos dimensiones
<nombre de estructura>.<nombre de
variable>
EIO0000000071 04/2014
Operandos
EIO0000000071 04/2014
811
Operandos
812
EIO0000000071 04/2014
Operandos
Seccin 31.3
Direcciones
Direcciones
Direccin
Consideraciones para cambios en lnea
La ejecucin del comando Cambio online puede cambiar el contenido de las direcciones.
ATENCIN
PUNTERO NO VLIDO
Cuando utilice punteros en las direcciones y ejecute el comando Cambio online, verifique
siempre el contenido de los punteros.
El incumplimiento de estas instrucciones puede causar lesiones o dao al equipo.
Descripcin general
Al especificar una direccin, el tamao y la ubicacin de memoria se indican mediante secuencias
de caracteres especiales.
Sintaxis
%<memory area prefix><size prefix><number|.number|.number....>
Los siguientes prefijos de rea de memoria son compatibles:
I
Ubicacin de memoria
bit nico
Ninguna
bit nico
byte (8 bits)
EIO0000000071 04/2014
813
Operandos
Ejemplos
Direccin de ejemplo
Descripcin
%QX7.5
%Q7.5
%IW215
%QB7
byte de salida 7
%MD48
%IW2.5.7.1
814
EIO0000000071 04/2014
Operandos
Bytes
direccionamiento
de byte
direccionamiento
IEC orientado a la
palabra
D0
W0
D0
W0
X (Bits)
direccionamiento de byte
direccionamiento IEC
orientado a la palabra
B0
X0.7
...
X0.0
X0.7
...
X0.0
D1
W1
B1
X1.7
...
X1.0
X0.15
...
X0.8
...
W2
W1
B2
...
X1.7
...
X1.0
W3
B3
X1.15
...
X1.8
W4
D1
W2
B4
...
B5
W3
B6
B7
D2
W4
B8
...
...
...
...
...
...
D(n-3)
D(n/4)
...
W(n1)
W(n/2)
Bn
Xn.7
...
Xn.0
X(n/2)
.15
...
X(n/2)
.8
N = nmero de byte
815
Operandos
816
EIO0000000071 04/2014
Operandos
Seccin 31.4
Funciones
Funciones
Funciones
Descripcin general
En ST, una llamada a funcin se puede utilizar como un operando.
Ejemplo
Result := Fct(7) + 3;
Funcin TIME()
Esta funcin devuelve el tiempo (basado en milisegundos) que ha pasado desde que se inici el
sistema.
El tipo de datos es TIME.
Ejemplo en IL
TIME
ST systime
Ejemplo en ST
systime:=TIME();
EIO0000000071 04/2014
817
Operandos
818
EIO0000000071 04/2014
SoMachine
Plantillas de SoMachine
EIO0000000071 04/2014
Parte VIII
Plantillas de SoMachine
Plantillas de SoMachine
Contenido de esta parte
Esta parte contiene los siguientes captulos:
Captulo
Pgina
32
821
33
835
34
851
EIO0000000071 04/2014
819
Plantillas de SoMachine
820
EIO0000000071 04/2014
SoMachine
Informacin general sobre las plantillas de SoMachine
EIO0000000071 04/2014
Captulo 32
Informacin general sobre las plantillas de SoMachine
EIO0000000071 04/2014
821
Seccin 32.1
Plantillas de SoMachine
Plantillas de SoMachine
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
822
Pgina
823
826
EIO0000000071 04/2014
SoMachine proporciona varias plantillas, pero tambin puede crear las suyas propias para
cualquier funcionalidad que desee que est disponible para otros proyectos.
Creacin de sus propias plantillas
Es preciso realizar los pasos siguientes para todas las plantillas de SoMachine:
Paso
1
Accin
Cree su funcionalidad en un proyecto de SoMachine y prubela con el hardware apropiado o en
la simulacin.
Abra otro proyecto de SoMachine y seleccione la plantilla desde la biblioteca de plantillas para
que la funcionalidad est disponible en este proyecto.
Notas generales
Cuando utilice plantillas de SoMachine, tenga en cuenta lo siguiente:
Las plantillas no son especficas del controlador, por lo que pueden estar disponibles para
cualquier controlador. Verifique que el controlador al que se aade la plantilla sea capaz de
ejecutar la funcionalidad contenida en la plantilla.
z Una vez instalada la plantilla, podr adaptar libremente los objetos creados a sus requisitos
individuales.
z La funcin de plantillas no admite aplicaciones de Vijeo-Designer; las aplicaciones HMI no se
incluyen en las plantillas de SoMachine.
z Es posible instalar una plantilla varias veces en el mismo dispositivo controlador. Para evitar
conflictos de nomenclatura al crear los mismos objetos varias veces, se les cambia el nombre
automticamente durante la instalacin. Para obtener ms informacin, consulte la seccin
Nomenclatura de los objetos del captulo Adicin de dispositivos a partir de plantillas
(vase pgina 840).
z Se deben definir bloques de funciones o tipos de datos definidos por el usuario (DUT) en una
biblioteca de bloques de funciones si se van a utilizar en plantillas.
z
EIO0000000071 04/2014
823
NOTA: Aunque este formulario de marcadores de posicin para direcciones directas est
disponible, evite el direccionamiento directo en los programas y use direccionamiento simblico
siempre que sea posible.
SoMachine permite programar las instrucciones mediante un mtodo directo o indirecto del uso
de parmetros. El mtodo directo, denominado direccionamiento inmediato, implica el uso de la
direccin directa de un parmetro como, por ejemplo, %IWx o %QWx. El mtodo indirecto,
denominado direccionamiento simblico, implica en primer lugar la definicin de smbolos para los
mismos parmetros y, a continuacin, el uso de smbolos asociados con las instrucciones del
programa.
Los dos mtodos son vlidos y aceptables; sin embargo, el direccionamiento simblico ofrece
diferentes ventajas, especialmente al hacer modificaciones posteriores en la configuracin. Al
configurar las E/S y otros dispositivos para la aplicacin, SoMachine asignar automticamente
las direcciones inmediatas. A continuacin, al aadir o eliminar la E/S u otros dispositivos de la
configuracin, SoMachine realizar los cambios en la configuracin mediante la reasignacin de
las direcciones inmediatas. Este proceso cambiar en todo caso las asignaciones de su estado
anterior desde el punto en el que comienzan los cambios de la configuracin.
Si ya ha creado parte o la totalidad del programa utilizando direcciones inmediatas, necesitar
realizar este cambio en todas las instrucciones, bloques de funciones, etc. del programa,
modificando todas las direcciones inmediatas que se han reasignado. Sin embargo, si en el
programa utiliza smbolos en lugar de direcciones inmediatas, esta accin no ser necesaria. Los
smbolos se actualizarn automticamente con las nuevas asociaciones de direcciones
inmediatas siempre que estn vinculadas a la direccin en el cuadro de dilogo Asignacin de E/S
del Editor de dispositivos correspondiente, no solo una declaracin "AT" del propio programa.
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Revise y modifique, segn sea necesario, las direcciones inmediatas que se utilizan en el
programa despus de modificar la configuracin.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao
al equipo.
NOTA: Durante la programacin, Schneider Electric recomienda encarecidamente el uso
sistemtico de smbolos para evitar modificar el programa en gran medida y limitar la posibilidad
de que surjan anomalas de programacin una vez que se haya modificado la configuracin del
programa al aadir o eliminar E/S u otros dispositivos.
824
EIO0000000071 04/2014
EIO0000000071 04/2014
825
826
EIO0000000071 04/2014
EIO0000000071 04/2014
827
En el cuadro Plantillas instaladas se indican las plantillas instaladas en dos grupos: Plantillas
de dispositivos y Plantillas de funciones. Cada biblioteca de plantillas puede contener plantillas
de dispositivos o de funciones.
Instalacin de bibliotecas de plantillas adicionales
Para aadir bibliotecas de plantillas adicionales a esta lista, siga estos pasos:
Paso
Accin
Busque la carpeta en la que est guardado el archivo de biblioteca de plantillas que desee
instalar.
Accin
828
Accin
EIO0000000071 04/2014
Accin
Para crear una biblioteca de plantillas nueva, seleccione la opcin Usuario o <Todas las
ubicaciones> en la lista Ubicacin.
Para crear una biblioteca de plantillas nueva para plantillas de dispositivos, seleccione el nodo
Plantillas de dispositivos de la lista Plantillas instaladas y haga clic en el botn Crear
biblioteca.
Resultado: Se aadir una biblioteca de plantillas nueva con un nombre predeterminado al final
de la seccin Plantillas de dispositivos de la lista Plantillas instaladas.
Para crear una biblioteca de plantillas nueva para plantillas de funciones, seleccione el nodo
Plantillas de funciones de la lista Plantillas instaladas y haga clic en el botn Crear
biblioteca.
Resultado: Se aadir una biblioteca de plantillas nueva con un nombre predeterminado al final
de la seccin Plantillas de funciones de la lista Plantillas instaladas.
Cambie el nombre de la biblioteca de plantillas nueva tal como se indica ms arriba y compltela
con plantillas de dispositivos o funciones utilizando, por ejemplo, las operaciones de copiado y
pegado descritas a continuacin.
Accin
En el cuadro de dilogo Guardar archivo, busque la carpeta en la que desee guardar el archivo
de biblioteca de plantillas.
829
830
EIO0000000071 04/2014
Descripcin
EIO0000000071 04/2014
831
Elemento
Descripcin
Cuadro ID de Ayuda
Seccin Informacin
Lista Idioma
Cuadro Comentario
Cuadro Descripcin
Parmetro Imagen
Botn ...
La casilla Slo lectura slo est disponible para las bibliotecas de plantillas, con el fin de indicar
si la biblioteca de plantilla seleccionada tiene el estado de slo lectura. No es posible cambiar el
estado de la biblioteca de plantillas aqu.
832
EIO0000000071 04/2014
EIO0000000071 04/2014
833
834
EIO0000000071 04/2014
SoMachine
Administracin de plantillas de dispositivos
EIO0000000071 04/2014
Captulo 33
Administracin de plantillas de dispositivos
EIO0000000071 04/2014
835
Seccin 33.1
Administracin de plantillas de dispositivos
836
Pgina
837
838
841
842
843
846
EIO0000000071 04/2014
EIO0000000071 04/2014
837
Paso
838
Seleccione una entrada en la vista Dispositivos de campo, arrstrela al rbol Dispositivos y sultela
en el subnodo adecuado de un controlador.
Observacin: SoMachine resalta los subnodos adecuados.
Resultado: Aparecer el cuadro de dilogo Aadir dispositivo a partir de una plantilla.
EIO0000000071 04/2014
Paso
Accin
En el cuadro de dilogo Aadir dispositivo a partir de una plantilla, defina el Nombre de dispositivo
y la Direccin del dispositivo si el bus de campo requiere direcciones numricas. Si las plantillas de
dispositivos incluyen lgica de control, seleccione el programa (POU) en el que se insertar la lgica de
control.
Paso
Haga clic con el botn derecho en el administrador de dispositivos de campo y ejecute el comando
Aadir dispositivo a partir de una plantilla en el men contextual.
Resultado: Aparecer el cuadro de dilogo Aadir dispositivo a partir de una plantilla.
839
Entonces...
Caso 1:
incluye el nombre del dispositivo de campo
original,
Ejemplo:
La plantilla de dispositivos del dispositivo de
campo ATV1 contiene una variable
Var_ATV1_Input.
Caso 2:
no contiene el nombre del dispositivo original, se insertarn en el nombre original el nombre del dispositivo
nuevo y un carcter de subrayado para formar un nombre
nuevo exclusivo.
Ejemplo:
La plantilla de dispositivos del dispositivo de
campo ATV1 contiene una variable
Var_Input1.
840
EIO0000000071 04/2014
EIO0000000071 04/2014
841
842
EIO0000000071 04/2014
Una seccin de cdigo usa una nueva variable definida en la asignacin de E/S del dispositivo
de campo.
Una seccin de cdigo y la asignacin de E/S del dispositivo de campo usan una variable
comn que se define en una GVL o un programa del controlador contenido por la aplicacin a
la que pertenece la seccin del cdigo.
NOTA: Si usa estructuras o matrices, asegrese de que slo estn relacionadas con un
dispositivo de campo.
Una seccin de cdigo y el dispositivo de campo usan una variable fija especfica del dispositivo
(por ejemplo, las variables de referencia del eje usadas con las unidades Altivar o Lexium).
EIO0000000071 04/2014
843
844
EIO0000000071 04/2014
Tipo
Funcin
InOTB_Conv20
Bloque de entrada
Conv20
Bloque de control
Datos de procesamiento
OutOTB_Conv20
Bloque de salida
EIO0000000071 04/2014
845
846
Accin
Haga clic con el botn derecho en el dispositivo de campo que desea guardar
como plantilla de dispositivos en el rbol Dispositivos.
Haga clic en Aceptar para cerrar el cuadro de dilogo Guardar como plantilla
de dispositivo y crear la nueva plantilla de dispositivos.
EIO0000000071 04/2014
1
2
3
4
5
6
EIO0000000071 04/2014
847
Accin
848
Accin
EIO0000000071 04/2014
Accin
EIO0000000071 04/2014
849
850
EIO0000000071 04/2014
SoMachine
Administracin de plantillas de funciones
EIO0000000071 04/2014
Captulo 34
Administracin de plantillas de funciones
EIO0000000071 04/2014
851
Seccin 34.1
Administracin de plantillas de funciones
852
Pgina
853
854
861
864
EIO0000000071 04/2014
EIO0000000071 04/2014
853
Accin
Para aadir una funcin de aplicacin a partir de una plantilla de funciones mediante el men
contextual, haga lo siguiente:
Paso
854
Accin
Haga clic con el botn derecho del ratn en un nodo Aplicacin o en una carpeta debajo del
nodo Aplicacin y ejecute el comando Aadir funcin a partir de una plantilla en el men
contextual.
Resultado: Aparecer el cuadro de dilogo Aadir funcin a partir de una plantilla.
EIO0000000071 04/2014
EIO0000000071 04/2014
855
El cuadro de dilogo Aadir funcin a partir de una plantilla ofrece los elementos siguientes
para configurar la funcin:
Elemento
Descripcin
Plantilla de funciones
Nombre del dispositivo Contiene el nombre del dispositivo de campo futuro. No se puede
cambiar este nombre.
Tipo de dispositivo
Maestro
Direccin
Nombre
Tipo de datos
Asignacin
Descripcin
Tabla Parmetros
856
Nombre
Tipo de datos
EIO0000000071 04/2014
Elemento
Descripcin
Predeterminada
Nuevo valor
Descripcin
Botn Aceptar
EIO0000000071 04/2014
857
858
Columna
Descripcin
Canal
Direccin
Asignacin
Descripcin
EIO0000000071 04/2014
Tenga en cuenta las prcticas siguientes para asignar variables a canales de E/S:
z Asigne todas las variables proporcionadas por la plantilla de funciones a los canales de E/S.
z Puede asignar una variable de E/S de una plantilla de funciones a un canal de E/S que ya tenga
una asignacin. La asignacin existente se sobreescribe.
z No se permiten asignaciones que causen mltiples asignaciones de variables en el mismo
canal de E/S.
Objetos creados
La plantilla de funciones crea los objetos siguientes en el proyecto:
Objeto
Descripcin
Directorio raz
Se crea una carpeta nueva bajo el nodo Aplicacin en la vista Dispositivos con el
nombre definido en el cuadro de texto Nombre de la funcin.
Dispositivos de
campo
Visualizaciones
Programas
Los programas incluidos en la plantilla de funciones se crean debajo del directorio raz
con nombres que respetan las reglas de nomenclatura. Los nombres de los objetos del
programa que forman parte de la plantilla de funciones se ajustan automticamente.
Trazas
Las trazas incluidas en la plantilla de funciones se crean debajo del directorio raz con
nombres que respetan las reglas de nomenclatura y se pueden utilizar para realizar el
seguimiento de variables pertenecientes a la funcin de aplicacin.
tablas CAM
Las tablas CAM incluidas en la plantilla de funciones se crean debajo del directorio raz
con nombres que respetan las reglas de nomenclatura. Slo son necesarias si la funcin
de aplicacin incluye dispositivos SoftMotion.
Configuracin de
tareas
Listas de variables Las listas de variables globales incluidas en la plantilla de funciones se crean debajo del
globales
directorio raz con nombres que respetan las reglas de nomenclatura.
Variables externas Las variables globales cuyas listas de variables globales no pertenecen a la plantilla de
funciones se restauran en su lista de variables globales original del modo siguiente:
z Si an no existe una lista de variables globales con el nombre original debajo de la
aplicacin, se crea automticamente.
z Si an no existe una variable global con el nombre original en esta lista de variables
globales, se crea automticamente.
Si el tipo de variable global no es correcto, SoMachine muestra un mensaje de deteccin
de error.
EIO0000000071 04/2014
859
Objeto
Descripcin
Variables
persistentes
Todos los objetos que se creen con la instanciacin de la plantilla de funciones aparecern en la
subventana Mensajes.
Nomenclatura de los objetos
Para evitar conflictos de nomenclatura, si se instancia la misma plantilla de funciones varias veces
en el mismo dispositivo controlador, se aplican las convenciones de nomenclatura siguientes a las
funciones de aplicaciones y los objetos asociados:
Si el nombre del objeto original...
Entonces...
Caso 1:
contiene el nombre de la funcin de aplicacin,
Ejemplo:
La funcin de aplicacin original de plantilla Axis
contiene un programa Axis_Init.
Caso 2:
no contiene el nombre de la funcin de aplicacin,
Ejemplo:
La funcin de aplicacin original Axis contiene un
programa InitProg.
NOTA: Utilice ms bien nombres cortos para las funciones de aplicaciones para que no aparezcan
cortados.
860
EIO0000000071 04/2014
EIO0000000071 04/2014
861
862
EIO0000000071 04/2014
EIO0000000071 04/2014
863
En los prrafos siguientes se enumeran los pasos necesarios para guardar como plantillas de
funciones las funciones de aplicaciones ya disponibles que cumplan los criterios expuestos en el
apartado Funciones de aplicaciones como base para plantillas de funciones (vase pgina 861).
Procedimiento mediante la vista Macros
El procedimiento mediante la vista Macros permite crear su propia plantilla de funciones
arrastrando y soltando elementos:
Paso
864
Accin
EIO0000000071 04/2014
Paso
Accin
En la ficha Plantilla de funciones del cuadro de dilogo Crear plantilla nueva, en Nombre, introduzca
un nombre para la plantilla de funciones.
Arrastre los elementos que desea incluir en la plantilla de funciones desde Aplicaciones hasta el cuadro
Elementos de la ficha Plantilla de funciones. Los elementos enumerados en este cuadro se insertan
en la plantilla de funciones.
NOTA: Los elementos deben pertenecer a la misma aplicacin.
EIO0000000071 04/2014
865
Paso
5
Accin
La ficha Parmetros del cuadro de dilogo Crear plantilla nueva muestra las variables que estn
incluidas en los elementos que ha seleccionado en la ficha Plantilla de funciones.
En la lista de variables, seleccione aquellas que desee declarar como parmetros de plantilla; para ello,
seleccione la casilla de la variable o de un nodo.
866
La ficha Propiedades del cuadro de dilogo Crear plantilla nueva permite aadir ms informacin a la
plantilla de funciones.
Puede insertar un enlace a la ayuda online de esta plantilla de funciones. El cuadro de dilogo le permite
aadir texto informativo adicional que se puede traducir; tambin puede aadir un grfico a modo de
ilustracin de esta plantilla de funciones. Para obtener una descripcin de estos parmetros, consulte el
captulo Adicin de informacin para plantillas o bibliotecas de plantillas (vase pgina 830).
EIO0000000071 04/2014
Accin
Haga clic con el botn derecho del ratn en una subcarpeta del nodo Aplicacin en el rbol
Aplicaciones.
Haga clic en Aceptar para cerrar el cuadro de dilogo Guardar como plantilla de funciones y crear la
nueva plantilla de funciones.
Resultado: SoMachine comprobar que se pueda crear la plantilla de funciones y mostrar un mensaje
para indicar que se ha creado correctamente o indicar los errores detectados.
EIO0000000071 04/2014
867
Accin
En el cuadro de dilogo Guardar como plantilla de funciones, haga clic en el botn ... situado al lado
del cuadro de texto Biblioteca de plantillas.
Resultado: Aparecer el cuadro de dilogo Seleccionar la biblioteca de plantillas.
868
Accin
En el cuadro de dilogo Guardar como plantilla de funciones, haga clic en el botn ... situado a la
derecha del cuadro de texto Parmetros.
Resultado: Aparece el cuadro de dilogo Seleccionar variables como parmetros.
Muestra las variables que estn definidas en la aplicacin seleccionada.
Seleccione la casilla de una variable determinada para seleccionarla como parmetro de la plantilla de
funciones.
Como alternativa, seleccione la casilla de un nodo raz para seleccionar todos los elementos que hay
bajo dicho nodo.
EIO0000000071 04/2014
Accin
En el cuadro de dilogo Guardar como plantilla de funciones, haga clic en el botn ... situado a la
derecha del cuadro de texto Nombre de plantilla.
Haga clic en Aceptar para cerrar el cuadro de dilogo Guardar como plantilla de funciones y
reemplazar la plantilla de funciones seleccionada por la funcin de aplicacin nueva.
EIO0000000071 04/2014
869
870
EIO0000000071 04/2014
SoMachine
Solucin de problemas y FAQ
EIO0000000071 04/2014
Parte IX
Solucin de problemas y FAQ
Pgina
35
873
36
881
EIO0000000071 04/2014
871
872
EIO0000000071 04/2014
SoMachine
Genrico - Solucin de problemas y FAQ
EIO0000000071 04/2014
Captulo 35
Genrico - Solucin de problemas y FAQ
EIO0000000071 04/2014
873
Seccin 35.1
Preguntas frecuentes
Preguntas frecuentes
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
874
Pgina
875
877
878
EIO0000000071 04/2014
Accin
Haga doble clic en el nodo del dispositivo CANopen analgico en el rbol Dispositivos.
En la ficha Dispositivo remoto CANopen del editor, active la opcin Activar configuraciones de
experto.
Resultado: Aparecen fichas adicionales y se completa la ficha Service Data Object con informacin.
EIO0000000071 04/2014
875
Paso
876
Accin
En la lista de objetos, seleccione el objeto 6423, escriba 1 en Valor y haga clic en Aceptar.
Resultado: Se activa la transmisin de las entradas analgicas en el bus CANopen. Ahora podr
configurar parmetros de los valores analgicos tal como se describe en el manual de hardware del
dispositivo.
EIO0000000071 04/2014
Velocidad de arranque
Una vez que haya reiniciado el PC, el arranque de SoMachine puede tardar
ms de lo habitual, ya que Microsoft Windows inicia diversos servicios en
segundo plano necesarios para ejecutar SoMachine. Esto puede influir en la
duracin del arranque y es inevitable.
Inicios posteriores
EIO0000000071 04/2014
877
878
Accin
Para cargar esta configuracin estndar en la interfaz grfica de usuario de SoMachine, haga
clic en Aceptar.
EIO0000000071 04/2014
Accin
NOTA: Los mens y las teclas de mtodo abreviado del software de SoMachine varan segn la
ventana o el editor que est abierto actualmente.
Expansin de mens
Los mens principales y contextuales de SoMachine pueden verse expandidos o contrados. En
el modo contrado se ocultan los comandos usados con menor frecuencia o los deshabilitados. Al
pulsar la flecha
del final del men, el men correspondiente se expande, con lo que se
muestran todos sus elementos.
Si desea que se muestren siempre los mens en modo completo, active la opcin Mostrar
siempre mens completos en el cuadro de dilogo Herramientas Opciones
Caractersticas.
EIO0000000071 04/2014
879
880
EIO0000000071 04/2014
SoMachine
Acceso a controladores - Resolucin de problemas y preguntas frecuentes
EIO0000000071 04/2014
Captulo 36
Acceso a controladores - Resolucin de problemas y preguntas frecuentes
Apartado
Pgina
36.1
882
36.2
887
EIO0000000071 04/2014
881
Seccin 36.1
Resolucin de problemas: Acceso a nuevos controladores
882
Pgina
883
885
EIO0000000071 04/2014
Accin
EIO0000000071 04/2014
883
Paso
Accin
Para adaptar la configuracin de comunicacin del controlador, haga clic con el botn derecho
en el controlador en la lista Seleccin de controlador y ejecute el comando Procesar
configuracin de la comunicacin... en el men contextual.
Resultado: Se abrir el cuadro de dilogo Procesar configuracin de la comunicacin.
Gestione las direcciones IP con cuidado debido a que cada dispositivo de la red necesita una
direccin nica. Si existen varios dispositivos con la misma direccin IP, puede producirse un
funcionamiento impredecible en la red y el equipo asociado.
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
z
z
z
z
z
884
EIO0000000071 04/2014
1
2
3
4
5
PC
controlador de salto
controlador de destino
USB
Ethernet
Informacin de direccin
En este ejemplo, el USB utiliza un protocolo diferente. Por tanto, normalmente no se puede utilizar
una direccin IP para direccionar el controlador de destino. En su lugar, se utiliza la informacin
de rutas de acceso, que describe la manera de conectar con el controlador de destino en uno o
ms saltos.
La informacin de rutas de acceso se muestra como informacin sobre herramientas de una
entrada de la lista de controladores (en el ejemplo siguiente, [Address] 0000.2001):
EIO0000000071 04/2014
885
NOTA: Como esta direccin slo describe la manera en que se conecta con el controlador, puede
cambiar con cada modificacin de los PC locales o de la configuracin del adaptador de red del
controlador de salto. Por ejemplo, al activar o desactivar los adaptadores de red o al iniciar/detener
los servicios que utilizan los adaptadores de red. El direccionamiento a un destino especfico
puede diferir segn los diferentes PC de transmisin.
Nodename
Como el Nodename del controlador es un identificador estable en el sistema, se utiliza para
identificar el destino.
Si se selecciona Direccin IP como Modalidad de conexin, se prueba para obtener la
informacin del propio Nodename. Algunos controladores (como LMC 0C) crean el Nodename
automticamente incluyendo la direccin IP. Tambin puede configurar el Nodename por sus
propios medios (como se describe en Preguntas frecuentes - Por qu no se lista el controlador
en la vista Seleccin de controlador? (vase pgina 889)) para permitir que el sistema encuentre
un controlador por su direccin IP. Si en el Nodename falta la direccin IP, esta se intenta obtener
de un controlador. Pero no todos los dispositivos o su versin de firmware actual admiten el
servicio. En ese caso, utilice Modalidad de conexin Nodename para conectar o configurar un
nombre de dispositivo que incluya la direccin IP entre parntesis. Por ejemplo, MyDevice
(192.168.1.30).
886
EIO0000000071 04/2014
Seccin 36.2
Preguntas frecuentes: Qu puedo hacer en caso de que haya problemas de conexin con el controlador?
Pgina
888
891
EIO0000000071 04/2014
887
Accin
Para adaptar la configuracin de comunicacin del controlador, haga clic con el botn derecho
en el controlador en la lista Seleccin de controlador y ejecute el comando Procesar
configuracin de la comunicacin... en el men contextual.
Resultado: Se abrir el cuadro de dilogo Procesar configuracin de la comunicacin.
Adapte la Mscara de subred configurada para el controlador para que se ajuste exactamente
a la mscara de subred de su PC con SoMachine.
Ejemplo:
Cambie 255.255.0.0 por 255.255.255.0.
888
Accin
Seleccione la opcin Marque mediante "direccin IP" y confirme el ajuste haciendo clic en
Aceptar.
Adapte los ajustes de red del controlador a la red de su PC con SoMachine como se describe
en el captulo Acceso a nuevos controladores (vase pgina 883).
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
z
z
Verifique que todos los dispositivos tengan un Nodename exclusivo antes de poner el sistema
en funcionamiento.
Actualice el nodename tras clonar cualquier aplicacin que incluya comunicaciones Ethernet
a un nodename exclusivo.
EIO0000000071 04/2014
Accin
Haga clic con el botn derecho en el dispositivo que tiene asignado un Nodename duplicado en
la lista Seleccin de controlador y ejecute el comando Cambiar el nombre del dispositivo
en el men contextual.
Resultado: Se muestra el cuadro de dilogo Cambiar el nombre del dispositivo.
889
Paso
Accin
Haga clic en Aceptar para confirmar y cerrar el cuadro de dilogo Cambiar el nombre del
dispositivo.
En la vista Seleccin de controlador, haga clic en el botn Actualizar para actualizar la lista
de dispositivos.
Resultado: El segundo dispositivo con el mismo Nodename del dispositivo que acaba de
cambiar aparecer en la lista.
Repita los pasos del 1 al 4 hasta que haya eliminado todos los Nodename duplicados.
NOTA: Algunos controladores, como los controladores LMC 0C, crean un Nodename automticamente a partir del nombre de dispositivo del proyecto tras una descarga de proyecto y la
direccin IP (por ejemplo, MyLMC (192.168.1.30)). Este nombre automtico sobrescribe el
Nodename asignado si se realizan cambios en el controlador.
890
EIO0000000071 04/2014
Accin
Haga clic con el botn derecho del ratn en el icono Gateway Tray Application en la barra de
tareas de Windows
EIO0000000071 04/2014
891
892
EIO0000000071 04/2014
SoMachine
EIO0000000071 04/2014
Apndices
Contenido de este anexo
Este anexo contiene los siguientes captulos:
Captulo
A
Pgina
Comunicacin de red
895
903
Lenguaje de script
919
969
981
EIO0000000071 04/2014
893
894
EIO0000000071 04/2014
SoMachine
Comunicacin de red
EIO0000000071 04/2014
Apndice A
Comunicacin de red
Comunicacin de red
Contenido de este captulo
Este captulo contiene los siguiente apartados:
Apartado
Pgina
Topologa de red
896
Direccionamiento y enrutamiento
897
Estructura de direcciones
899
EIO0000000071 04/2014
895
Comunicacin de red
Topologa de red
Descripcin general
La red de control de SoMachine es un sistema programado para configurarse a s mismo
(asignacin de direccin) para admitir los medios de comunicacin transparentes y enrutar
paquetes entre redes diferentes. El mecanismo de enrutamiento es lo suficientemente simple para
que cualquier nodo de la red, es decir, incluso los nodos con pocos recursos, puedan enrutar
paquetes. Por ello, se evitan las tablas de enrutamiento grandes, los clculos complejos y las
solicitudes durante el tiempo de ejecucin.
La red de control se configura jerrquicamente; es decir, cada nodo tiene un nodo padre y un
nmero arbitrario de subobjetos. Un nodo que no tiene un nodo padre se llama nodo de nivel
superior. No se permiten los ciclos; es decir, una red de control tiene una estructura de rbol.
Las relaciones objeto padre-subobjeto proceden de la especificacin de segmentos de red. Un
segmento de red corresponde, por ejemplo, a una Ethernet local o a una conexin punto a punto
serie. Diferencia entre la red principal (mainnet) y las subredes (subnet). Cada nodo tiene, como
mximo, una red principal, en la que se espera que est el objeto padre. Para cada nodo se puede
configurar un nmero arbitrario de subredes. El nodo acta como objeto padre de todos ellos.
Si un segmento de red se ha definido al mismo tiempo que una subred de varios nodos, la red
tendr varios objetos padre. Sin embargo, la configuracin resultante no ser vlida, ya que cada
segmento de red solamente puede tener un objeto padre.
896
EIO0000000071 04/2014
Comunicacin de red
Direccionamiento y enrutamiento
Descripcin general
El direccionamiento correlaciona la topologa de la red de control con una direccin exclusiva. Una
direccin de nodo (vase pgina 900) est estructurada jerrquicamente.
Por cada conexin de red, se asigna una direccin local que identifica el nodo de forma exclusiva
en su red local respectiva mediante el controlador de bloque correspondiente. En el caso de la
direccin de nodo completa, esta direccin local va precedida por el ndice de subred a la que est
asignada la red local por parte del objeto padre. Adems, debe ir precedida de la direccin de nodo
de su objeto padre.
La longitud del ndice de subred (en bits) est determinada por el dispositivo, mientras que la
longitud de la direccin local est determinada por el tipo de red.
Un nodo sin red principal es un nodo de nivel superior con la direccin 0. Un nodo con una red
principal que no contenga un objeto padre tambin ser un nodo de nivel superior, y se asignar
a su direccin local en la red principal.
Ejemplo: Red principal y subredes
EIO0000000071 04/2014
897
Comunicacin de red
898
EIO0000000071 04/2014
Comunicacin de red
Estructura de direcciones
Descripcin general
A continuacin se muestra una descripcin detallada sobre la estructura de los siguientes tipos de
direccin:
z Direcciones de red (vase pgina 899)
z Direcciones de nodo (vase pgina 900)
z Direcciones absolutas y relativas (vase pgina 901)
z Direcciones de difusin (vase pgina 902)
Direcciones de red
Las direcciones de red representan una asignacin de direcciones de un tipo de red (por ejemplo,
direcciones IP) a direcciones lgicas dentro de una red de control. Esta asignacin se gestiona
mediante el controlador de bloque respectivo. En una Ethernet con direcciones IP de clase C, los
3 primeros bytes de la direccin IP son los mismos para todos los dispositivos de la red. Por tanto,
los ltimos 8 bits de la direccin IP son suficientes como direccin de red puesto que permiten una
asignacin inequvoca entre las 2 direcciones en el controlador de bloque.
Un nodo cuenta con direcciones de red distintas para cada conexin de red. Las diferentes
conexiones de red pueden contar con la misma direccin de red puesto que esta direccin debe
ser exclusiva slo de forma local para cada conexin de red.
Terminologa: en general, la direccin de red de un nodo sin una instruccin de la conexin de red
hace referencia a la direccin de red de la red principal.
La longitud de una direccin de red se especifica en bits y la puede elegir el controlador de bloque
segn corresponda. En un segmento de red, se debe usar la misma longitud para todos los nodos.
Una direccin de red se representa en forma de matriz de bytes con la siguiente codificacin:
Longitud de la direccin de red: n bits
z Bytes necesarios: b = (n + 7) DIV 8
z Los (n MOD 8) bits de orden ms bajo del primer byte y los (n DIV 8) bytes restantes se utilizan
para la direccin de red.
z
EIO0000000071 04/2014
899
Comunicacin de red
Direcciones de nodo
La direccin de nodo indica la direccin absoluta de un nodo en una red de control y, por tanto, es
exclusiva en todo el rbol. La direccin consta de hasta 15 componentes de direccin, cada uno
de los cuales est formado por 2 bytes. Cuanto ms bajo se encuentre un nodo en la jerarqua de
red, ms larga ser su direccin.
La direccin de nodo consta de las direcciones parciales de todos los predecesores del nodo y del
mismo nodo. Cada direccin parcial consta de uno o varios componentes de direccin. Por
consiguiente, la longitud es siempre un mltiplo de 2. La direccin parcial de un nodo se compone
a partir de la direccin de red del nodo en su red principal y del ndice de subred de la red principal
en el nodo padre. El enrutador del nodo principal determina los bits que se necesitan para el ndice
de subred. Entre el ndice de subred y la direccin de red se insertan bits de relleno para garantizar
que la longitud de la direccin parcial sea un mltiplo de 2 bytes.
Casos especiales:
El nodo tiene una red principal: esto significa que no hay ningn ndice de subred ni una
direccin de red en la red principal. En este caso, la direccin tiene el valor 0x0000.
z Nodo con red principal pero sin padre: en este caso, se da por sentado un ndice de subred con
una longitud de 0 bits. La direccin parcial se corresponde con una direccin de red,
complementada con los bits de relleno, si es necesario.
z
900
EIO0000000071 04/2014
Comunicacin de red
La direccin relativa se debe ajustar con cada paso a travs de un nodo intermedio. Basta con
ajustar el offset de direccin. El nodo padre siempre se encarga de ello: si un nodo padre recibe
un paquete de una de sus subredes, el offset de direccin debe incrementarse en la longitud del
componente de direccin de esta subred.
z
z
EIO0000000071 04/2014
901
Comunicacin de red
Surge una situacin especial cuando se produce el error descrito anteriormente al determinar el
padre comn. En este caso, el offset de direccin en el padre comn "real" es negativo, pero la
magnitud es mayor que la longitud de la direccin parcial de la subred de la que procede el
paquete. El nodo debe detectar este caso, calcular la direccin local del siguiente nodo hijo a partir
de la direccin del nodo anterior y la diferencia de longitud, y adaptar el offset de direccin, de
modo que el siguiente nodo vea una direccin relativa correcta. Adems, los componentes de
direccin no cambiarn, slo se modificar el offset de direccin.
Direcciones de difusin
Hay 2 tipos de difusin: global y local. Una difusin global se enva a todos los nodos de una red
de control. La direccin de nodo vaca (longitud 0) se reserva para este fin.
Las difusiones locales se envan a todos los dispositivos de un segmento de red. Para este fin,
todos los bits de la direccin de red tienen el valor 1. Esto es posible tanto en las direcciones
relativas como en las absolutas.
Un controlador de bloque debe poder gestionar las dos direcciones de difusin, es decir, las
direcciones de red vacas y las direcciones de red con todos los bits establecidos en 1 se deben
interpretar y enviar como una difusin.
902
EIO0000000071 04/2014
SoMachine
Uso del servidor OPC 3
EIO0000000071 04/2014
Apndice B
Uso del servidor OPC 3
Pgina
Informacin general
904
906
909
917
EIO0000000071 04/2014
903
Informacin general
Descripcin de OPC
OPC es una interfaz estandarizada para acceder a los datos de proceso. Se basa en el estndar
de Microsoft COM/DCOM2 (Component Object Model / Distributed COM) que se ha ampliado
debido a los requisitos de acceso a los datos en la automatizacin, en los que la interfaz se utiliza
principalmente para leer datos del controlador o escribir datos en l.
Ejemplos de clientes OPC tpicos
visualizaciones
z programas cuyo objetivo es recopilar datos de funcionamiento
z
904
EIO0000000071 04/2014
EIO0000000071 04/2014
905
906
Accin
Ejemplo
Cree un proyecto.
ExampleOPC
Configure el nombre del dispositivo haciendo clic dos veces en el nodo del
dispositivo para poder modificarlo.
MyPLCexample
Ejemplo de programa:
Aumente una variable
UINT:
VARIABLEEXAMPLE
MyPOUexample
EIO0000000071 04/2014
Paso
Accin
Ejemplo
10
11
12
Ejemplo de variable:
VARIABLEEXAMPLE
Ejemplo de programa:
MyPOUexample
EIO0000000071 04/2014
907
Paso
Accin
Ejemplo
13
Haga clic en el botn > para enviar la variable a la base de datos compartida
para que est disponible para el cliente OPC.
14
15
16
17
Descargue la aplicacin.
18
Inicie la aplicacin.
Comentario:
En el directorio en el que
ha almacenado el proyecto
encontrar un archivo XML
que incluye una lista de
variables que estn
accesibles para el cliente
OPC.
908
EIO0000000071 04/2014
Accin
Vaya al directorio:
C:\Archivos de programa\Schneider Electric\SoMachine OPCServer
909
Comando
Mtodos abreviados
Descripcin
Abrir
CTRL+O
Nuevo
CTRL+N
Guardar
CTRL+S
Guardar como
Lista de archivos INI que se han modificado desde la ltima vez que se
inici la herramienta.
Puede seleccionar un archivo para volver a cargarlo en la herramienta de
configuracin.
Salir
Termina la herramienta.
Si no se ha guardado ningn cambio en la configuracin actual, se le
pedir que lo haga.
910
EIO0000000071 04/2014
Mtodos abreviados
Descripcin
Nuevo grupo
redundante
CTRL+G
Agregar PLC
CTRL+O
Eliminar PLC
CTRL+D
Cambiar
nombre de PLC
CTRL+R
Restablecer
PLC
CTRL+Z
Configuracin
predeterminada
de PLC...
EIO0000000071 04/2014
an no disponible
911
912
Accin
Haga clic con el botn derecho en el icono Servidor y ejecute el comando Agregar PLC:
EIO0000000071 04/2014
Paso
Accin
Haga doble clic en la opcin PLC1 para cambiar su nombre (por ejemplo: MyPLCexample).
Para poder acceder a su variable desde su cliente OPC, introduzca la direccin del controlador (por
ejemplo: MyPLCexample). La direccin se proporciona en el cuadro de dilogo SoMachine
Configuracin de comunicacin del proyecto.
La direccin puede ser fsica o lgica: Para evitar reconfiguraciones de los valores de las
direcciones cuando hay muchos dispositivos en el proyecto, debera usar direcciones lgicas.
EIO0000000071 04/2014
913
Direccionamiento lgico
En nuestro ejemplo, la direccin es: MyPLCexample.
Introduzca directamente el nombre del nodo proporcionado en la ficha Configuracin de
comunicacin de MyPLCexample en su proyecto. Para configurar el nombre del nodo, haga
clic en el botn Edicin.
Direccionamiento fsica
En nuestro ejemplo, la direccin es: 007F.6200.0001
914
EIO0000000071 04/2014
Accin
EIO0000000071 04/2014
915
Paso
Accin
916
EIO0000000071 04/2014
EIO0000000071 04/2014
917
918
EIO0000000071 04/2014
SoMachine
Lenguaje de script
EIO0000000071 04/2014
Apndice C
Lenguaje de script
Lenguaje de script
Contenido de este captulo
Este captulo contiene las siguientes secciones:
Seccin
Apartado
Pgina
C.1
Informacin general
920
C.2
932
C.3
948
EIO0000000071 04/2014
919
Lenguaje de script
Seccin C.1
Informacin general
Informacin general
Contenido de esta seccin
Esta seccin contiene los siguientes apartados:
Apartado
920
Pgina
Introduccin
921
Ejecucin de scripts
925
Mejores prcticas
928
929
Puntos de entrada
931
EIO0000000071 04/2014
Lenguaje de script
Introduccin
Lenguaje de script SoMachine
El lenguaje de script SoMachine proporciona una potente herramienta para automatizar
secuencias. Puede iniciar comandos individuales o secuencias de comandos complejas
directamente desde el entorno de programacin SoMachine o la lnea de comandos de Windows.
El lenguaje de script SoMachine es un lenguaje modular basado en IronPython 2.7. El intrprete
de IronPython est integrado en el entorno de desarrollo SoMachine. Esta implementacin
permite utilizar las bibliotecas de la infraestructura de Python. Entre otras cosas, proporcionan
acceso a archivos en redes.
Este captulo no proporciona un ejemplo para cada miembro del Script Engine porque estara
fuera del mbito de este documento. Los ejemplos proporcionados aqu se han seleccionado
debido a una cierta lgica que discurre como un hilo comn en toda la API (interfaz de
programacin de aplicaciones). Si sigue este hilo, encontrar otros miembros en el documento
Automation Platform SDK, que se proporciona como ayuda online en la pgina web CoDeSys. A
continuacin, podr utilizar estos miembros de la misma manera que se describe en los ejemplos
de este captulo.
EIO0000000071 04/2014
921
Lenguaje de script
Caractersticas
Notepad++
z Resalte de sintaxis.
z Editor universal.
z Resalte de sintaxis.
z Resalte de sintaxis.
z Construcciones de lenguaje IntelliSense para
IronPython (y .NET).
z Funcin de depuracin integrada.
z Fcil de usar.
z Requiere Visual Studio.
PyCharm
922
z
z
z
z
z
z
Resalte de sintaxis.
IntelliSense
Funcin de depuracin integrada.
Fcil de usar.
Producto de software autnomo.
La versin Community Edition 3.0 y posteriores
admiten numerosas caractersticas como:
z Codificacin y aprendizaje de Python puro.
z Editor inteligente con completamiento de
cdigo, resalte inmediato de errores,
correcciones automticas, etc.
z Posibilidades de reescritura automtica de
cdigo y navegacin con funciones
adicionales.
z Depurador integrado y soporte para pruebas
de unidades.
z Integraciones VCS (sistema de control de
versiones) nativas.
z Interfaz de usuario personalizable y
vinculacin de claves, con emulacin
VIM (editor de texto Vi IMproved) disponible.
EIO0000000071 04/2014
Lenguaje de script
EIO0000000071 04/2014
923
Lenguaje de script
Enlaces de utilidad
Para obtener ms informacin, consulte los sitios web siguientes:
Pgina web oficial de Python, que proporciona un tutorial y documentacin de referencia del
lenguaje en: http://docs.python.org/.
z Blog oficial de Python, en: http://blog.python.org/.
z Beginners Guide to Python, en: http://wiki.python.org/moin/BeginnersGuide.
z Artculo de la Wikipedia sobre Python (lenguaje de programacin) en:
http://es.wikipedia.org/wiki/Python.
z Foro oficial de CoDeSys, que proporciona ejemplos e informacin prctica, en:
http://forum.codesys.com/.
z Intrprete IronPython, en: http://ironpython.codeplex.com/.
z PyTools (complemento Visual Studio) en: http://pytools.codeplex.com/.
z IronPython Cookbook en: http://www.ironpython.info/index.php/Contents.
z Galileo Openbook, gratuito (slo disponible en alemn), en:
http://openbook.galileocomputing.de/python/.
z
924
EIO0000000071 04/2014
Lenguaje de script
Ejecucin de scripts
Descripcin general
Puede ejecutar archivos de script (filename.py), que contengan una secuencia de comandos de
script, desde la interfaz de usuario de SoMachine.
Para obtener ms informacin sobre la ejecucin de scripts desde la interfaz de usuario de
SoMachine, consulte el captulo Comandos relacionados con los scripts (vase SoMachine,
Comandos de men, Ayuda en lnea).
Archivos por lotes
Comandos de uso frecuente
Comando
-
REM o ::
Descripcin
La lnea es un comentario y se ignorar.
cd
echo off
echo
set
>
>>
Ejemplo de aplicacin:
@echo off
REM Go to the directory where SoMachine is installed
cd "<Replace this with the path to the Central.exe, for example,
C:\Program Files (x86)\Schneider Electric\SoMachine Software\>"
REM Run Central.exe with no graphical user interface and the full path
to the script
Central.exe --noui --runscript="<Replace this with the full file path
where the script is stored, for example, D:\MyScripts\TestScript.py>"
pause
EIO0000000071 04/2014
925
Lenguaje de script
Aplicacin de consola C#
La ejecucin del script en una aplicacin C# le permite editarlo de forma dinmica antes de que el
motor lo ejecute. Adems, en la aplicacin C# tambin se pueden realizar algunos pasos previos.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace ExecuteScriptExample
{
class Program
{
static void Main(string[] args)
{
try
{
ProcessStartInfo psi = new ProcessStartInfo();
// Specify the name and the arguments you want to pass
psi.FileName = @"<Replace this with the path to the
Central.exe, for example,
C:\Program Files (x86)\Schneider Electric\SoMachine Software\>Central.e
xe>";
psi.Arguments = "--noui --enablescripttracing -AdvancedPythonFunctions --runscript=\
"<Replace this with the full file path where the script is stored,
for example, D:\MyScripts\TestScript.py>"";
// Create new process and set the starting information
Process p = new Process();
p.StartInfo = psi;
// Set this so that you can tell when the process has
completed
p.EnableRaisingEvents = true;
p.Start();
// Wait until the process has completed
while (!p.HasExited)
{
System.Threading.Thread.Sleep(1000);
}
926
EIO0000000071 04/2014
Lenguaje de script
}
catch (Exception ex)
{
Console.Write(ex.Message);
}
Console.ReadKey();
}
}
}
EIO0000000071 04/2014
927
Lenguaje de script
Mejores prcticas
Mejores prcticas
Tenga en cuenta las siguientes prcticas que pueden ayudarle a evitar errores en el cdigo del
programa:
z Los bloques de funciones no se crean mediante llaves ({}), sino mediante la sangra de los
bloques de cdigo.
Ejemplos:
Lenguaje de programacin C
Lenguaje de programacinPython
int factorial(int x)
{
if (x > 1)
return x* factorial(x - 1);
else
return 1;
}
def factorial(x):
if x > 1:
return x * factorial(x - 1)
else:
return 1
z
z
z
z
928
EIO0000000071 04/2014
Lenguaje de script
EIO0000000071 04/2014
929
Lenguaje de script
z
Las enumeraciones (ENUM) no existen como construccin del lenguaje en Python. Se utiliza
para definir una cantidad fija de valores constantes; por ejemplo, los das de la semana. Puede
accederse a los valores de enumeracin .NET en IronPython mediante la sintaxis
Nombre.Miembro (de forma similar a los miembros de clases estticas); por ejemplo,
OnlineChangeOption.Try. Existen varios patrones para emular valores de enumeracin en
Python; por ejemplo, http://pypi.python.org/pypi/enum/ o
http://www.ironpython.info/index.php/Enumerations.
Las propiedades marcadas con { get; set; } son de lectura y escritura, mientras que las
propiedades marcadas slo con { get; } son de slo lectura. Son similares al decorador
@property en Python.
930
EIO0000000071 04/2014
Lenguaje de script
Puntos de entrada
Informacin detallada sobre los puntos de entrada
Controlador
Nombre (Tipo)
Descripcin
Sistema
system (ISystem)
Severity
Guid
PromptResult
MultipleChoiceSelector
PromptChoiceFilter
Proyectos
Online
DeviceObject
EIO0000000071 04/2014
projects (IScriptProjects)
ExportReporter
ImportReporter
ConflictResolve
online (IScriptOnline)
OnlineChangeOption
ApplicationState
OperatingState
ValuesFailedException
TimeoutException
DeviceID
931
Lenguaje de script
Seccin C.2
Ejemplos de Schneider Electric Script Engine
932
Pgina
Parmetros de dispositivo
933
935
Perfil de visualizacin
936
Actualizacin de bibliotecas
937
938
Configuracin de comunicacin
939
940
941
Convertir dispositivo
942
Comparacin de proyectos
945
946
Acceso a POU
947
EIO0000000071 04/2014
Lenguaje de script
Parmetros de dispositivo
Descripcin general
Para cambiar un parmetro, se necesita el ID de parmetro y ParameterSet.
Para encontrar el dispositivo requerido y enumerar los parmetros respectivos, utilice el mtodo
de bsqueda que encuentra objetos a partir de un nombre o ruta especfico en el proyecto.
Ejemplo de Script Engine
# We enable the new python 3 print syntax
from __future__ import print_function
# The path to the project
project_path = r"D:\PythonProjects\SetParameter.project"
# Clean up any open project:
if projects.primary:
projects.primary.close()
# Load the project
proj = projects.open(project_path);
# Set the project as primary project
proj = projects.primary
# To set a parameter you need a device, a parameter and a new value
that should be assigned to the parameter
# At first search for the SERCOSIII node...
sercos Node = proj.find(SERCOSIII, True)[0]
# ... and add a device named Robot_XK29 to the node, assuming that no
other device is below the SERCOSIII node, otherwise the index must be c
hanged
sercosNode.insert("Robot_XK29", 0, DeviceID(4096, "1003
0082", "1.36.2.2"), LXM62DxS)
# Now get the children of the SERCOS node, assuming that Robot_XK29 is
the only one, otherwise the index must be changed
Robot_XK29 = sercosNode.get_children(True)[0]
# Call the get_all_parameters() function, to get a complete list of all
parameters of that device object.
# A parameter can contain subparameter, which can be checked with
.HasSubElements property
parameter_list = treeobj.get_all_parameters()
# prints all parameters
EIO0000000071 04/2014
933
Lenguaje de script
934
EIO0000000071 04/2014
Lenguaje de script
EIO0000000071 04/2014
935
Lenguaje de script
Perfil de visualizacin
Descripcin general
Gracias a la extensin del perfil de visualizacin, puede visualizar los perfiles de visualizacin y
puede establecer el perfil de visualizacin activo del proyecto.
Ejemplo de Script Engine
# Enable the new python 3 print syntax
from __future__ import print_function
#The path to the project
project_path = r"D:\PythonProjects\GetVisualizationProfile.project"
# Clean up any open Project:
if projects.primary:
projects.primary.close()
# Load the project
proj = projects.open(project_path);
# Set the project as primary project
proj = projects.primary
# Print the active profile
print("Current visual profile: " +
visualization_settings.active_profile_name)
# Get all available visualization profiles
profile_names = visualization_settings.get_all_visual_profile_names()
# Print the profiles
for visual_profile in profile_names:
print (" - " + visual_profile)
# Set the profile to V1.35.12.0
visualization_settings.active_profile_name = "V1.35.20.0"
# Get the active profile
profile_name = visualization_settings.active_profile_name
# Print the active profile
print("New visual profile: " + profile_name)
# Save project
projects.primary.save()
936
EIO0000000071 04/2014
Lenguaje de script
Actualizacin de bibliotecas
Descripcin general
Gracias a la extensin para actualizar bibliotecas, puede actualizar las bibliotecas del proyecto
automticamente. Se trata de la misma funcin que proporciona el comando Bibliotecas
Asignacin automtica de versiones (todas las bibliotecas) en la interfaz grfica de usuario
de SoMachine.
Ejemplo de Script Engine
# Enable the new python 3 print syntax
from __future__ import print_function
# The path to the project
project_path = r"D:\PythonProjects\Example.project"
# Clean up any open project:
if projects.primary:
projects.primary.close()
# Load the project
proj = projects.open(project_path);
# Set the project as primary project
proj = projects.primary
# Search for die library manager objects in the project
lib_managers = [i for i in proj.get_children(True) if i.is_libman]
# Make the auto mapping for each library manager found
for lib_manager in lib_managers:
lib_manager.make_auto_mapping()
EIO0000000071 04/2014
937
Lenguaje de script
938
EIO0000000071 04/2014
Lenguaje de script
Configuracin de comunicacin
Descripcin general
En este ejemplo se muestra cmo cargar o establecer la direccin IP de un controlador de su
eleccin ejecutando el script.
Ejemplo de Script Engine
from __future__ import print_function
def main():
if not projects.primary:
system.ui.error("No active project.")
return
project = projects.primary
#find the controller by the object name where address should be set
and read.
controller = project.find(LMC, True)[0]
#reboot the controller
controller.set_communication_address(192.168.2.25)
#read address back and show it.
print(get_communication_address:= +
controller.get_communication_address())
system.ui.info("Test complete")
main()
EIO0000000071 04/2014
939
Lenguaje de script
940
EIO0000000071 04/2014
Lenguaje de script
EIO0000000071 04/2014
941
Lenguaje de script
Convertir dispositivo
Descripcin general
La conversin de dispositivos dentro del proyecto puede ser un procedimiento complejo. Esta API
simplifica el proceso de conversin y permite evitar errores.
Uso del objeto DeviceID
La API de conversin utiliza el objeto DeviceID, que identifica un dispositivo o un mdulo de
dispositivo con una versin especfica. DeviceID se crea del modo siguiente:
<tipo de dispositivo> <modelo de dispositivo> <versin del dispositivo> <nombre del mdulo>
Elemento
Ejemplo
Descripcin
tipo de dispositivo
4096
identifica un controlador
modelo de dispositivo
1.50.0.4
LXM52
La API de conversin acepta DeviceID como instancia de objeto o como parmetro nico. Esto
permite utilizar un DeviceID que contenga todos los elementos mencionados en la tabla anterior
o pasar cada elemento como un solo parmetro.
En el ejemplo siguiente se muestra cmo crear un DeviceID para un controlador LMCx00C con
la versin de firmware 1.50.0.4:
Lmcx00c = DeviceID(4096, "1003 0082", "1.50.0.4")
942
EIO0000000071 04/2014
Lenguaje de script
EIO0000000071 04/2014
943
Lenguaje de script
print(deviceid_to_string(id))
drive = proj.find(drive, True)[0]
alternativeDrives = drive.get_alternative_devices()
print("ALTERNATIVE DEVICES FOR DRIVE")
for id in alternativeDrives:
print(deviceid_to_string(id))
system.ui.info("Test complete. Please check the script output
window")
main()
Conversin del dispositivo
El proceso de convertir el dispositivo es sencillo, ya que la nica accin que se requiere es llamar
al mtodo de conversin.
from __future__ import print_function
def main():
proj = projects.primary
controller = proj.find(LMC, True)[0]
drive = proj.find(Drive, True)[0]
# converting the controller
controller.convert(4096, "1003 009D", "1.36.2.6")
# converting the drive
drive.convert(DeviceID(4096, "1003 0082", "1.50.0.4"), "LXM52")
main()
944
EIO0000000071 04/2014
Lenguaje de script
Comparacin de proyectos
Descripcin general
En varios casos resulta til tener un script que compare automticamente el contenido de
2 proyectos. La funcin de comparacin de proyectos Python le permite comparar 2 proyectos.
Como resultado, proporciona informacin si los proyectos son distintos, as como un rbol XML
detallado que refleja el rbol de proyectos y muestra las diferencias para cada objeto.
Ejemplo de Script Engine
from __future__ import print_function
def main():
proj = projects.primary
# compare the Primary Project to another Project on disk
diff = proj.compare_to("CompTest_Right.project")
write_diff(diff, "Diff1.xml")
# compare, but ignore whitespaces, comments and properties
diff = proj.compare_to("CompTest_Right.project", True, True, True)
write_diff(diff, "Diff2.xml")
def write_diff(differences, filename):
if differences.DifferenceFound:
f = open(filename, wb)
f.writelines(differences.ResultTree)
main()
EIO0000000071 04/2014
945
Lenguaje de script
946
EIO0000000071 04/2014
Lenguaje de script
Acceso a POU
Descripcin general
En el siguiente ejemplo se muestra cmo imprimir y manipular el cdigo de una POU. Slo est
disponible para lenguajes de programacin textual.
Ejemplo de Script Engine
if not projects.primary:
system.ui.error(No primary project set)
p = projects.primary
pou = p.find(SR_Main, True)[0]
# read and print the declaration of the program
decl = pou.get_interface_text()
print(decl)
# read and print the implementation of the program
code = pou.get_implementation_text()
print(code)
decl = "PROGRAM SR_Main\n" + \
"VAR\n" + \
"
iTest: INT;\n" + \
"END_VAR";
code = "iTest := iTest +1;"
# write new code to the declaration and implementation
pou.set_interface_text(decl)
pou.set_implementation_text(code)
EIO0000000071 04/2014
947
Lenguaje de script
Seccin C.3
Ejemplos de CoDeSys Script Engine
948
Pgina
Proyecto
949
Aplicaciones online
954
Objetos
957
Dispositivos
958
960
Valores de lectura
962
963
965
966
EIO0000000071 04/2014
Lenguaje de script
Proyecto
Descripcin general
Debido a que los ejemplos de este espacio de nombres son relativamente cortos y autoexplicativos, su significado no se explica en detalle. Se proporcionan ejemplos completos cuando
corresponda.
Nuevo proyecto
Con este mtodo se crea un nuevo proyecto.
Consta de 2 parmetros:
una cadena que especifica la ubicacin donde se guardar el proyecto
z un parmetro booleano: si es TRUE, el proyecto ser el nuevo proyecto primario. Este
parmetro es opcional. El valor predeterminado es TRUE.
z
EIO0000000071 04/2014
949
Lenguaje de script
Cerrar proyecto
Con este mtodo se cierra el proyecto. Si hay cambios sin guardar en este proyecto, se
descartarn.
# Clean up any open project:
if projects.primary:
projects.primary.close()
Buscar objeto
Este mtodo permite buscar objetos que coincidan con el nombre dado.
Consta de 2 parmetros:
El primer parmetro es el nombre del objeto que se busca.
z El segundo parmetro especifica si se realiza una bsqueda recursiva. Este parmetro es
opcional. El valor predeterminado es FALSE. Este mtodo devuelve una coleccin de objetos.
z
950
EIO0000000071 04/2014
Lenguaje de script
EIO0000000071 04/2014
951
Lenguaje de script
Native Export
Con este mtodo se exportan los objetos especificados en formato nativo en una cadena o un
archivo de la ruta indicada. Los objetos que no son exportables se detectan como error, pero la
exportacin contina.
# Tests CoDeSys native import/export functionality.
from __future__ import print_function
project_path = r"D:\MyProjects\Example.project"
# Clean up any open Project:
if projects.primary:
projects.primary.close()
proj = projects.open(project_path);
proj=projects.primary
import sys, io
# Collect all POU nodes in that list.
projectObjects = []
# Collect all the leaf nodes.
for node in proj.get_children(True):
projectObjects.append(node)
# Print everything just to know what is going on.
for i in projectObjects:
print("Found: ", i.type, i.guid, i.get_name())
# Export the files.
for candidate in projectObjects:
# Create a list of objects to export:
# The object itself
objects = [candidate]
# And sub-objects (POUs can have actions, properties, ...)
objects.extend(candidate.get_children(True))
# And the parent folders.
parent = candidate.parent
while ((not parent.is_root) and parent.is_folder):
objects.append(parent)
parent = parent.parent
# Create a unique file name:
filename = "D:\ExportFiles\\%s__%s.export" % (candidate.get_name(),
candidate.guid)
# print some user information
print("Exporting ", len(objects), " objects to: ", filename)
# and actually export the project.
proj.export_native(objects, filename)
952
EIO0000000071 04/2014
Lenguaje de script
Exportacin PLCOpenXML
Con este mtodo se exportan los objetos especificados en formato PLCopenXML en una cadena
o un archivo de la ruta indicada. Los objetos que no son exportables se detectan como error, pero
la exportacin contina.
# CoDeSys XML import/export functionality.
from __future__ import print_function
import sys, io
# Set target Project to primary
proj=projects.primary
# define the printing function
def printtree(treeobj, depth=0):
name = treeobj.get_name(False)
if treeobj.is_device:
deviceid = treeobj.get_device_identification()
print("{0} - {1} {2}".format("
"*depth, name, deviceid))
for child in treeobj.get_children(False):
printtree(child, depth+1)
for obj in projects.primary.get_children():
printtree(obj)
# Create the export reporter
class Reporter(ExportReporter):
def error(self, message):
system.write_message(Severity.Error, message)
def warning(self, message):
system.write_message(Severity.Warning, message)
def nonexportable(self, message):
print(message)
@property
def aborting(self):
return False
reporter = Reporter()
# Finds the DRV_Master object in the project
device = proj.find(DRV_Master, True)
filename = r"D:\ExportObjects\Drv_Master.xml"
# Exports the object to the hard drive
proj.export_xml(reporter, device, filename, True, True)
EIO0000000071 04/2014
953
Lenguaje de script
Aplicaciones online
Descripcin general
NOTA: Algunos de los comandos de las aplicaciones online pueden cambiar temporalmente la
aplicacin activa.
Esta interfaz se exporta a Python y, por tanto, cumple los estndares de nomenclatura de Python.
Creacin de aplicaciones en lnea
Con este mtodo se crea una aplicacin en lnea.
app = online.create_online_application();
Valores preparados
Este ejemplo muestra cmo escribir valores preparados.
# Tests for the Online functionality - listing of prepared values.
import utils
try:
print "Trying to create online application."
app = online.create_online_application();
except Exception as e:
print "Currently offline, executing startup..."
execfile(utils.makepath("OnlineTestStartup.py"))
print "Retrying to create online application."
app = online.create_online_application();
print "app:", app.application_state, "op:",
app.operation_state.ToString("f")
print "Unpreparing values:"
for expression in app.get_prepared_expressions():
app.set_prepared_value(expression, )
print "%s: %s %s" % (expression, app.read_value(expression),
app.get_prepared_value(expression))
print "Unforcing values:"
for expression in app.get_forced_expressions():
app.set_unforce_value(expression)
print "%s: %s %s" % (expression, app.read_value(expression),
app.get_prepared_value(expression))
app.force_prepared_values()
assert len(app.get_prepared_expressions()) == 0, "still some prepared
values remain..."
954
EIO0000000071 04/2014
Lenguaje de script
EIO0000000071 04/2014
955
Lenguaje de script
Inicio de la aplicacin
Este mtodo inicia la aplicacin.
project_path = r"D:\MyProjects\Example.project"
# Clean up any open Project:
if projects.primary:
projects.primary.close()
proj = projects.open(PROJECT);
proj = projects.primary
# Fetch the active application.
app = proj.active_application
# Create the online application for it.
onlineapp = online.create_online_application(app)
# Log in to the device.
onlineapp.login(OnlineChangeOption.Try, True)
# Start the application, if necessary.
if not onlineapp.application_state == ApplicationState.run:
onlineapp.start()
# Let the app do its work for some time...
system.delay(1000)
Detencin de la aplicacin
Este mtodo detiene la aplicacin.
# Stop the application
onlineapp.stop()
956
EIO0000000071 04/2014
Lenguaje de script
Objetos
Buscar
Este mtodo permite buscar objetos que coincidan con el nombre dado.
Consta de 2 parmetros:
El primer parmetro es el nombre del objeto que se busca.
z El segundo parmetro especifica si se realiza una bsqueda recursiva. Este parmetro es
opcional. El valor predeterminado es FALSE. Este mtodo devuelve una coleccin de objetos.
z
EIO0000000071 04/2014
957
Lenguaje de script
Dispositivos
Descripcin general
En este captulo se describen los mtodos para la manipulacin de objetos de dispositivo.
Agregar
Este mtodo aade el dispositivo especificado.
Consta de 3 parmetros:
una cadena que especifica el nombre del dispositivo
z DeviceID que especifica el ID del dispositivo
z una cadena que especifica el ID de mdulo
z
958
EIO0000000071 04/2014
Lenguaje de script
Get Gateway
Este mtodo devuelve la GUID de la puerta de enlace.
# Finds the DRV_Master object in the project
device = proj.find(DRV_Master, True)[0]
gateway = device.get_gateway()
Insertar
Este mtodo inserta el dispositivo especificado en el ndice especificado.
Consta de 4 parmetros:
z una cadena que especifica el nombre del dispositivo
z Int32 que especifica el ndice dnde insertar el dispositivo
z DeviceID que especifica el ID del dispositivo
z una cadena que especifica el ID de mdulo
device.insert("RobotA", 1, DeviceID(4096, "1003 0082", "1.36.1.1"),
LXM62DxS)
Set Gateway and Address
Este mtodo establece la puerta de enlace y la direccin. Si transmite la GUID vaca y una
direccin vaca, se borrar la direccin de la puerta de enlace.
device.set_gateway_and_address(GUID gateway, string address)
Set Simulation Mode
Este mtodo establece el modo de simulacin. Si se establece en True, la simulacin est
habilitada.
# Finds the DRV_Master object in the project
device = proj.find(DRV_Master, True)[0]
device.set_simulation_mode (True)
Actualizar
Este mtodo actualiza el dispositivo especificado.
# Finds the DRV_Master object in the project
device = proj.find(DRV_Master, True)[0]
device.update(DeviceID(4096, "1003 0082", "1.36.1.1"), LXM62DxS)
EIO0000000071 04/2014
959
Lenguaje de script
Este mtodo devuelve la ruta seleccionada. Si cancela el cuadro de dilogo, no se devolver nada.
Seleccin
Este mtodo permite elegir uno de varios elementos listados.
list = ["RobotA", "RobotB", "RobotC"]
system.ui.choose("Choose", list, True)
Consta de 3 parmetros:
una cadena que contiene el mensaje
z una lista de las opciones que se mostrarn: los objetos se convierten a cadena para poder
visualizarlos.
z un parmetro booleano: si es True, en el cuadro de dilogo se mostrar un botn que permite
crear nuevas carpetas.
z
EIO0000000071 04/2014
Lenguaje de script
EIO0000000071 04/2014
961
Lenguaje de script
Valores de lectura
Descripcin general
Puede iniciar el ejemplo siguiente desde la interfaz de usuario de SoMachine o desde la lnea de
comandos.
Para iniciarlo desde la lnea de comandos, cambie al subdirectorio Common de la ruta de
instalacin de SoMachine (<Sustituir por la ruta a Central.exe, por ejemplo, C:\Archivos de
programa (x86)\Schneider Electric\SoMachine Software\>) y escriba el comando
start /wait Central.exe -runscript="<Replace this with the full file path
where the script is stored, for example, D:\MyScripts\ReadVariable.py>".
El script abre una aplicacin en SoMachine e inicia sesin en el dispositivo. Si el controlador no
est en modalidad de ejecucin, se establecer en RUN. A continuacin, la variable iVar1 se lee
y se muestra en la vista Mensajes o en la lnea de comandos. Al final, la aplicacin se cierra.
# Ejemplo de script ReadVariable.py
# Close all projects
while len(projects.all) > 0:
projects.all[0].close()
# opens project
proj = projects.open("D:\\data\\projects\\Ampel.project")
# set "Ampel.project" to active application
app = proj.active_application
onlineapp = online.create_online_application(app)
# login to device
onlineapp.login(OnlineChangeOption.Try, True)
# set status of application to "run", if not in "run"
if not onlineapp.application_state == ApplicationState.run:
onlineapp.start()
# wait 1 second
system.delay(1000)
# read value of iVar1
value = onlineapp.read_value("PLC_PRG.iVar1")
# display value in message view or command line
print value
# log out from device and close "Ampel.project"
onlineapp.logout()
proj.close()
962
EIO0000000071 04/2014
Lenguaje de script
963
Lenguaje de script
recipe_output_file.write(watch_expressions[i])
recipe_output_file.write(" = ")
recipe_output_file.write(watch_values[i])
recipe_output_file.write("\n")
# Close files
recipe_input_file.close()
recipe_output_file.close()
# send Email
# import respective libraries
import smtplib
from email.mime.text import MIMEText
#open output file
recipe_output_file = open("D:\\Data\\projects\\RecipeOutput.txt", "r")
mail = MIMEText(recipe_output_file.read())
recipe_output_file.close()
#email address sender and recipient
fromm = "info@3s-software.com"
to = "info@3s-software.com"
# set sender and recipient
mail["Subject"] = "Attention value has changed"
mail["From"] = fromm
mail["To"] = to
# send email
smtp = smtplib.SMTP("name of smtp server")
smtp.sendmail(fromm, [to], mail.as_string())
smtp.quit()
# logout and close application
online_application.logout()
project.close()
964
EIO0000000071 04/2014
Lenguaje de script
EIO0000000071 04/2014
965
Lenguaje de script
EIO0000000071 04/2014
Lenguaje de script
EIO0000000071 04/2014
967
Lenguaje de script
968
EIO0000000071 04/2014
SoMachine
Administracin de usuarios para Soft PLC
EIO0000000071 04/2014
Apndice D
Administracin de usuarios para Soft PLC
Pgina
970
Usuarios y grupos
972
Derechos de acceso
976
EIO0000000071 04/2014
969
970
EIO0000000071 04/2014
Los derechos de acceso para objetos se heredan. Si un objeto tiene un objeto padre (por
ejemplo, si una accin est asignada a un objeto de programa que est insertado en el rbol
de estructura debajo del programa, entonces el programa es el padre del objeto de accin), los
derechos actuales del padre se convertirn automticamente en los valores predeterminados
del hijo. Las relaciones padre-hijo de los objetos referentes a los derechos de acceso suelen
corresponder a las relaciones que se muestran en DispositivosAplicaciones y Herramientas
y se indican en el cuadro de dilogo Permisos mediante la sintaxis <objeto padre>.<objeto
hijo>. Ejemplo: La accin ACT est asignada el objeto POU PLC_PRG. De este modo, en
Aplicaciones se muestra ACT en la estructura de rbol con sangra debajo de PLC_PRG. En
el cuadro de dilogo Permisos, ACT se representa mediante PLC_PRG.ACT, lo que indica que
PLC_PRG es el padre de ACT. Si el derecho de modificacin se prohbe explcitamente para
PLC_PRG y un determinado grupo de usuarios, el valor predeterminado del derecho de
modificacin para ACT tambin se prohibir automticamente.
EIO0000000071 04/2014
971
Usuarios y grupos
Descripcin general
La vista Usuarios y grupos del editor de dispositivos se proporciona para los dispositivos que
admiten la administracin de usuarios online. Esta vista permite configurar cuentas de usuario y
grupos de usuarios y, en combinacin con la administracin de los derechos de acceso, permite
controlar el acceso a los objetos en el controlador en modalidad online.
Si desea que determinadas funciones de un controlador slo las puedan ejecutar los usuarios
autorizados, utilice la funcin de administracin de usuarios online. Esta funcin permite
configurar cuentas de usuario para asignar derechos de acceso a grupos de usuarios y forzar la
autenticacin de usuario en el inicio de sesin.
La administracin de usuarios especfica de dispositivo puede predefinirse mediante la
descripcin del dispositivo. Esta descripcin tambin define en qu medida pueden editarse las
definiciones en los cuadros de dilogo de configuracin.
Como en la administracin de usuarios de proyecto, los usuarios deben ser miembros de grupos.
Slo los grupos de usuarios pueden obtener determinados derechos de acceso
(vase pgina 976).
972
EIO0000000071 04/2014
EIO0000000071 04/2014
973
rea de usuarios
Para configurar cuentas de usuario estn disponibles los botones siguientes:
Botn
Descripcin
Agregar
Importar
Editar
Eliminar
rea de grupos
Para configurar grupos de usuarios estn disponibles los botones siguientes:
974
Botn
Descripcin
Agregar
Importar
Abre el cuadro de dilogo Importar grupos. Muestra todos los grupos que
se han definido en la administracin de usuarios del proyecto.
Seleccione 1 o varias entradas y haga clic en Aceptar para integrarlas en la
lista de grupos de la administracin de usuarios especfica del dispositivo.
Editar
Eliminar
EIO0000000071 04/2014
Descripcin
Cargar en el dispositivo
EIO0000000071 04/2014
975
Derechos de acceso
Descripcin general
La vista Derechos de acceso del editor de dispositivos forma parte de la funcin de
administracin de usuarios online (vase pgina 972). Sirve para otorgar o denegar determinados
permisos a los grupos de usuarios que haya definido; de esta forma, se definen los derechos de
acceso de los usuarios a los archivos y los objetos (por ejemplo, una aplicacin) en el controlador
durante el tiempo de ejecucin.
Tenga en cuenta que los permisos de acceso solamente se pueden asignar a grupos, no a
usuarios individuales. Por este motivo, tiene que definir un usuario como miembro de un grupo.
Realice la configuracin de los usuarios y los grupos en lavista Usuarios y grupos del editor de
dispositivos (vase pgina 972).
Consulte el ejemplo de la imagen siguiente: se otorga permiso para aadir y eliminar subobjetos
en el objeto PlcLogic al grupo de usuarios developpers_1.
Vista Derechos de acceso del editor de dispositivos
976
EIO0000000071 04/2014
Accin
Seleccione las entradas de los objetos bajo el tipo de accin que desea en el rea Acciones.
Los nodos correspondientes a los 4 tipos de acciones aparecen con sangra debajo de las
categoras de objetos. Se pueden realizar en los objetos individuales.
z Modificar (por ejemplo, descargar una aplicacin)
z Ver (supervisin)
z Agregar/eliminar subobjetos (aadir o eliminar subobjetos en un objeto existente)
z Ejecutar (por ejemplo, iniciar o detener una aplicacin, establecer puntos de interrupcin)
Bajo cada nodo de tipo de accin se encuentran los objetos, o destinos de la accin. Se trata de
los objetos del archivo del controlador o del tiempo de ejecucin; por ejemplo, Dispositivo.
Estas entradas de objetos se muestran en una estructura de rbol que asigna la estructura del
sistema de archivos o el rbol de dispositivos.
NOTA: La asignacin de una definicin de derecho de acceso a un nodo padre suele significar
que los nodos hijo heredarn esta definicin. Esto es vlido siempre y cuando no apliquen su
propia definicin explcita. Sin embargo, en funcin del dispositivo, esto se puede gestionar de otra
manera. En cualquier caso, las herencias no se muestran en esta vista.
EIO0000000071 04/2014
977
rea Permisos
El rea Permisos muestra los grupos de usuarios definidos.
Delante de cada grupo habr uno de los iconos siguientes, que indican el permiso que est
asignado en relacin con el destino que est seleccionado en el rea Acciones:
Icono
Descripcin
(signo menos)
+ (signo ms)
Despus de seleccionar los objetos bajo la accin que desea en el rea Acciones y el grupo que
desea en el rea Permisos, puede utilizar los botones siguientes:
Botn
Descripcin
Permitir
Prohibir
Borrar
Descripcin
Cargar en el dispositivo
Cargar desde el dispositivo Carga los derechos de acceso que se aplican actualmente al dispositivo en
el cuadro de dilogo de configuracin.
Guardar en disco/Cargar
desde el disco
EIO0000000071 04/2014
Accin
Derechos
Agregar/eliminar
subobjetos
Ejecutar
Modificar Ver
EIO0000000071 04/2014
979
Objetos
Dispositivo
Registro
Accin
Derechos
Inicio de sesin
Leer entradas
Crear
Crear subobjeto
Eliminar
Descargar /
Cambio en lnea
Crear proyecto de
inicio
Leer variable
Escribir variable
Forzar variable
Establecer y
eliminar punto de
interrupcin
Definir la siguiente
instruccin
Leer pila de
llamadas
Ciclo individual
Establecer control
de flujo
Leer control de
flujo
Ejecutar/Detener
Restablecer
Leer valores de
configuracin
Escribir valores de
configuracin
Leer configuracin
Escribir
configuracin
PlcLogic
Aplicacin Inicio de sesin
Configuracin
Administracin de
usuarios
980
EIO0000000071 04/2014
SoMachine
Conjuntos de caractersticas de controlador para la migracin
EIO0000000071 04/2014
Apndice E
Conjuntos de caractersticas de controlador para la migracin
Dig In
Dig Out
MOD
FC
HSC
PWM
Serie
ETH
TWDLCAA10DRF
No
No
TWDLCDA10DRF
No
No
TWDLCAA16DRF
No
1+1
No
TWDLCDA16DRF
No
1+1
No
TWDLCAA24DRF
14
10
No
1+1
No
TWDLCDA24DRF
14
10
No
1+1
No
TWDLCAA40DRF
24
16
No
1+1
No
TWDLCDA40DRF
24
16
No
1+1
No
TWDLCAE40DRF
24
16
No
1+1
TWDLCDE40DRF
24
16
No
1+1
TWDLMDA20DTK
12
1+1
No
TWDLMDA20DUK
12
1+1
No
TWDLMDA20DRT
12
1+1
No
TWDLMDA40DTK
24
16
1+1
No
TWDLMDA40DUK
24
16
1+1
No
EIO0000000071 04/2014
981
Controladores M221
Controlador
Dig In
Dig Out
Ana In
MOD
FC
HSC
PWM
Serie
ETH
CART
TM221C16R
TM2 / TM3
No
TM221C16T
TM2 / TM3
No
TM221C24R
14
10
TM2 / TM3
No
TM221C24T
14
10
TM2 / TM3
No
TM221C40R
24
16
TM2 / TM3
No
TM221C40T
24
16
TM2 / TM3
No
TM221CE16R
TM2 / TM3
TM221CE16T
TM2 / TM3
TM221CE24R
14
10
TM2 / TM3
TM221CE24T
14
10
TM2 / TM3
TM221CE40R
24
16
TM2 / TM3
TM221CE40T
24
16
TM2 / TM3
TM221M16R/G
TM2 / TM3
No
TM221M16T/G
TM2 / TM3
No
TM221M32TK
16
16
TM2 / TM3
No
TM221ME16R/G
TM2 / TM3
TM221ME16T/G
TM2 / TM3
TM221ME32TK
16
16
TM2 / TM3
982
EIO0000000071 04/2014
Controladores SoMachine
Controlador
Dig In
Dig Out
Ana In
MOD
TM241C24R
14
10
TM241C24T/U
14
10
TM241C40R
24
16
TM241C40T/U
24
16
TM241CE24R
14
TM241CE24T/U
14
TM241CE40R
TM241CE40T/U
FC
HSC
PWM
Serie
ETH
CART
TM2 / TM3 4
No
TM2 / TM3 4
No
TM2 / TM3 4
No
TM2 / TM3 4
No
10
TM2 / TM3 4
10
TM2 / TM3 4
24
16
TM2 / TM3 4
24
16
TM2 / TM3 4
TM241CEC24R
14
10
TM2 / TM3 4
TM241CEC24T/U
14
10
TM2 / TM3 4
HMISCUA5
16
10
No
HMISCUB5
No
EIO0000000071 04/2014
983
984
EIO0000000071 04/2014
SoMachine
Glosario
EIO0000000071 04/2014
Glosario
C
CFC
(diagrama de funcin continua) Un lenguaje de programacin (una ampliacin del estndar IEC
61131-3) basado en el lenguaje de diagrama de bloque de funciones (FBD) y que funciona como
un diagrama de flujo. Sin embargo, no se utiliza ninguna red y es posible un posicionamiento libre
de elementos grficos, lo que permite bucles de realimentacin. En cada bloque, las entradas se
sitan a la izquierda y las salidas, a la derecha. Las salidas del bloque se pueden conectar a las
entradas de otros bloques para formar expresiones complejas.
D
direccin MAC
(direccin de control de acceso a medios) Un nmero nico de 48 bits asociado a una parte
especfica del hardware. La direccin MAC se programa en cada tarjeta de red o dispositivo
cuando se fabrica.
DTM
(gestor de tipos de dispositivo) Clasificado en dos categoras:
z Los DTMs del dispositivo se conectan a los componentes de configuracin del dispositivo de
campo.
z Los CommDTMs se conectan a los componentes de comunicaciones del software.
El DTM ofrece una estructura unificada para acceder a los parmetros de dispositivo, adems de
configurar, utilizar y diagnosticar los dispositivos. Los DTMs pueden incluir desde una simple
interfaz grfica de usuario para configurar parmetros de dispositivo hasta una aplicacin
sofisticada que permite realizar clculos complejos en tiempo real con fines de diagnstico y
mantenimiento.
DUT
(tipos de datos) Junto con los tipos de datos estndar, el usuario puede definir estructuras de tipo
de datos propio, tipos de enumeracin y referencias como unidades de tipos de datos en un editor
DUT.
E
elemento
El nombre abreviado de ARRAY.
EIO0000000071 04/2014
985
Glosario
F
FBD
(diagrama de bloques de funciones) Uno de los cinco lenguajes para lgica o control que cumplen
con el estndar IEC 61131-3 para sistemas de control. El diagrama de bloques de funciones es
un lenguaje de programacin orientado grficamente. Funciona con una lista de redes en la que
cada red contiene una estructura grfica de cuadros y lneas de conexin que representa una
expresin lgica o aritmtica, la llamada de un bloque de funciones, un salto o una instruccin de
retorno.
FDT
(herramienta de dispositivo de campo) La especificacin que describe el intercambio de datos
estandarizado entre los dispositivos y el sistema de control o las herramientas de ingeniera o de
gestin de archivos.
G
GVL
(lista de variables globales) Gestiona variables globales que se pueden transferir entre
controladores en una red Ethernet TCP/IP Modbus.
I
IL
(lista de instrucciones) Un programa escrito en lenguaje que se compone de una serie de
instrucciones basadas en texto y ejecutadas secuencialmente por el controlador. Cada instruccin
incluye un nmero de lnea, un cdigo de instruccin y un operando (consulte IEC 61131-3).
L
LD
(diagrama de contactos) Una representacin grfica de instrucciones de un programa de
controlador con smbolos para contactos, bobinas y bloques en una serie de escalones ejecutados
de forma secuencial por un controlador (consulte IEC 61131-3).
P
POU
(unidad de organizacin de programas) Una declaracin variable en el cdigo fuente y el conjunto
de instrucciones correspondiente. Las POUs facilitan la reutilizacin modular de programas de
software, funciones y bloques de funciones. Una vez declaradas, cada una de las POUs est
disponible para las otras.
986
EIO0000000071 04/2014
Glosario
R
RTS
(peticin de envo) Una seal de transmisin de datos y seal CTS que reconoce la seal RTS
desde el nodo de destino.
S
SFC
(diagrama funcional secuencial) Un lenguaje formado por pasos con acciones asociadas,
transiciones con una condicin lgica asociada y enlaces dirigidos entre pasos y transiciones. (La
norma SFC est definida en IEC 848. Es conforme con IEC 61131-3.)
U
UDP
(protocolo de datagramas de usuario) Un protocolo de modalidades sin conexin (definido por la
IETF RFC 768) en el que los mensajes se entregan en un datagrama (telegrama de datos) a un
ordenador de destino de una red IP. El protocolo UDP generalmente se integra con el protocolo
de Internet. Los mensajes UDP/IP no necesitan una respuesta y, por lo tanto, son perfectos para
aplicaciones en las que los paquetes cerrados no requieren retransmisin (como redes y vdeos
que necesitan rendimiento en tiempo real).
EIO0000000071 04/2014
987
Glosario
988
EIO0000000071 04/2014
SoMachine
ndice
EIO0000000071 04/2014
ndice
Symbols
IronPython, 921
A
actualizar dispositivos, 81
adicin de dispositivos a partir de plantillas de
dispositivos mediante el mtodo de arrastrar
y soltar, 70
administracin de usuarios, 137
administrar etiquetas, 42
ampliaciones, 73
aadir controladores, 72
aadir controladores mediante el mtodo de
arrastrar y soltar, 68
aadir dispositivos a partir de plantillas de
funciones mediante el mtodo de arrastrar y
soltar, 70
aadir dispositivos de ampliacin mediante el
mtodo de arrastrar y soltar, 69
aadir dispositivos y mdulos mediante el
mtodo de arrastrar y soltar, 69
aplicacin de arranque, 251, 259
asignacin automtica de E/S, 155
B
bibliotecas de plantillas, 837
BIT, 670
BOOL, 663
buscador de funciones y bloques de funciones, 470
buscador FFB, 470
buscar en catlogos, 42
buses de campo compatibles con plantillas,
825
Catlogo vista, 42
comando
Convertir dispositivo, 83
Convertir proyecto de SoMachine Basic,
88
Convertir proyecto de Twido, 88
con tipo
literales, 598
configuracin de comunicacin, 108
configuracin de dispositivos de campo, 75
configuracin de smbolos, 556
configuracin del administrador de comunicacin, 75
Configuracin del servidor OPC, 909
constantes, 598
Convertir dispositivo, comando , 83
convertir proyecto de SoMachine Basic, 88
convertir proyecto de Twido, 88
D
DATE, 665
DATE_AND_TIME, 665
definicin de variables, 560
descarga
aplicacin de arranque, 251
descargar, 250, 258
aplicacin de arranque, 259
detener, 269
diagnstico de configuracin, 78
direccionamiento, 897
dispositivos
aadir, 77
dispositivos CANopen, 75
dispositivos de ampliacin, 73
dispositivos Modbus SL, 75
DT, 665
DTM, 37
C
CANopen, entradas analgicas, 875
EIO0000000071 04/2014
989
ndice
editor ST
instrucciones, 400
ejecutar, 269
enrutamiento, 897
entero, 663
entornos de programacin para Python, 921
entradas analgicas
CANopen, 875
etiquetar elementos de catlogo, 42
FdtConnections nodo, 37
GNVL
lista de variables globales de red, 436
objetos IEC
asignacin de E/S de diagnstico de buses de campo, 77
I
informacin de estado
bus de campo, 77
informacin de estado de buses de campo,
77
iniciar sesin, 250, 258
instrucciones
editor ST, 400
P
plantillas, 822
plantillas de dispositivos, 837, 838
plantillas de funciones, 853
Procesar configuracin de la comunicacin,
cuadro de dilogo, 108
publicacin de variables, 564
publicacin de variables (HMI), 568
Python, 921
mens, 878
mtodos abreviados, 878
990
REAL, 664
EIO0000000071 04/2014
ndice
T
tareas
aadir, 247
TIME, 665
TIME_OF_DAY, 665
tipos de datos, 663
tipos de datos de tiempo, 665
tipos de variables, 560
TOD, 665
U
UNION, 667
Usuarios y grupos, 137
Utilizar conexin de DTM casilla , 37
V
variables, 592
persistentes, 230
publicacin, 564
publicacin (HMI), 568
remanentes, 230
variables de entrada, 592
variables de entrada y salida, 593
variables de salida, 593
variables estticas, 594
variables externas, 595
variables globales, 594
variables locales, 592
variables persistentes, 597
variables remanentes, 596
variables Retain, 596
variables temporales, 594
velocidad de arranque de SoMachine, 877
visualizaciones, 842
W
WSTRING, 669
EIO0000000071 04/2014
991
ndice
992
EIO0000000071 04/2014