Tema 5 Operaciones básicas de programación 20/10/14 TEMA 5 OPERACIONES BÁSICAS DE PROGRAMACIÓN 1
Tema 5 Operaciones básicas de programación
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
1
Índice • Áreas de memoria • Tipos de datos • Direccionamiento • Estructura del programa en KOP • Operaciones lógicas con bits
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
2
Áreas de memoria • La CPU ofrece disNntas áreas de memoria, incluyendo entradas (I), salidas (Q), marcas (M), bloque de datos (DB) y memoria temporal o local (L). • El programa de usuario accede a (lee de y escribe en) los datos almacenados en estas áreas de memoria.
• Cada posición de memoria Nene una dirección unívoca. • El programa de usuario uNliza estas direcciones para acceder a la información de la posición de memoria.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
3
3
5HVXPHQ�EUHYH� �����,QIRUPDFLµQ�E£VLFD�VREUH�FµPR�IXQFLRQD�OD�&38�
� *HWWLQJ�6WDUWHG�GHO�6���������� *HWWLQJ�6WDUWHG��SULPHURV�SDVRV������������$�(������������
����� �UHDV�GH�PHPRULD�GHO�6��������
� 1RWD�8VR�GH�GLUHFFLRQHV�VLPEµOLFDV�HQ�YH]�GH�GLUHFFLRQHV�DEVROXWDV�67(3���%DVLF�IDFLOLWD�OD�SURJUDPDFLµQ�VLPEµOLFD��/RV�QRPEUHV�VLPEµOLFRV�R��YDULDEOHV��VH�FUHDQ�SDUD�ODV�GLUHFFLRQHV�GH�ORV�GDWRV��\D�VHD�FRPR�YDULDEOHV�3/&�DVLJQDGDV�D�GLUHFFLRQHV�GH�PHPRULD�\�(�6�R�FRPR�YDULDEOHV�ORFDOHV�XWLOL]DGDV�GHQWUR�GH�XQ�EORTXH�OµJLFR��3DUD�XWLOL]DU�HVWDV�YDULDEOHV�HQ�HO�SURJUDPD�GH�XVXDULR�EDVWD�FRQ�LQWURGXFLU�HO�QRPEUH�GH�OD�YDULDEOH�SDUD�HO�SDU£PHWUR�GH�OD�LQVWUXFFLµQ��3DUD�XQD�PHMRU�FRPSUHQVLµQ�GH�FµPR�OD�&38�HVWUXFWXUD�\�GLUHFFLRQD�ODV�£UHDV�GH�PHPRULD��ORV�VLJXLHQWHV�S£UUDIRV�H[SOLFDQ�HO�GLUHFFLRQDPLHQWR��DEVROXWR��UHIHUHQFLDGR�SRU�ODV�YDULDEOHV�3/&��
�
/D�&38�RIUHFH�GLVWLQWDV�£UHDV�GH�PHPRULD��LQFOX\HQGR�HQWUDGDV��,���VDOLGDV��4���PDUFDV��0���EORTXH�GH�GDWRV��'%��\�PHPRULD�WHPSRUDO�R�ORFDO��/���(O�SURJUDPD�GH�XVXDULR�DFFHGH�D��OHH�GH�\�HVFULEH�HQ��ORV�GDWRV�DOPDFHQDGRV�HQ�HVWDV�£UHDV�GH�PHPRULD��&DGD�SRVLFLµQ�GH�PHPRULD�WLHQH�XQD�GLUHFFLµQ�XQ¯YRFD��(O�SURJUDPD�GH�XVXDULR�XWLOL]D�HVWDV�GLUHFFLRQHV�SDUD�DFFHGHU�D�OD�LQIRUPDFLµQ�GH�OD�SRVLFLµQ�GH�PHPRULD�����UHD�GH�PHPRULD� 'HVFULSFLµQ�,��0HPRULD�LPDJHQ�GH�SURFHVR�GH�ODV�HQWUDGDV�
/D�&38�FRSLD�HO�HVWDGR�GH�ODV�HQWUDGDV�I¯VLFDV�HQ�OD�PHPRULD�,�DO�FRPLHQ]R�GHO�FLFOR��3DUD�HO�DFFHVR�LQPHGLDWR�R�IRU]DGR�SHUPDQHQWH�GH�ODV�HQWUDGDV�I¯VLFDV�HV�SUHFLVR�D³DGLU���3��D�OD�GLUHFFLµQ�R�YDULDEOH��S��HM���6WDUW�3��R�,����3���
4��0HPRULD�LPDJHQ�GH�SURFHVR�GH�ODV�VDOLGDV�
/D�&38�FRSLD�HO�HVWDGR�GH�OD�PHPRULD�4�HQ�ODV�VDOLGDV�I¯VLFDV�DO�FRPLHQ]R�GHO�FLFOR��3DUD�HO�DFFHVR�LQPHGLDWR�R�IRU]DGR�SHUPDQHQWH�GH�ODV�VDOLGDV�I¯VLFDV�HV�SUHFLVR�D³DGLU���3��D�OD�GLUHFFLµQ�R�YDULDEOH��S��HM���6WRS�3��R�4����3���
0���UHD�GH�PDUFDV�
(O�SURJUDPD�GH�XVXDULR�OHH�\�HVFULEH�ORV�GDWRV�DOPDFHQDGRV�HQ�OD�PHPRULD�0��&XDOTXLHU�EORTXH�OµJLFR�SXHGH�DFFHGHU�D�OD�PHPRULD�0��(V�SRVLEOH�FRQILJXUDU�GLUHFFLRQHV�HQ�OD�PHPRULD�0�SDUD�FRQVHUYDU�ORV�YDORUHV�GH�ORV�GDWRV�WUDV�GHVFRQHFWDU�\�YROYHU�D�FRQHFWDU�OD�DOLPHQWDFLµQ��
/�0HPRULD�WHPSRUDO�
&DGD�YH]�TXH�VH�OODPD�XQ�EORTXH�OµJLFR��OD�&38�DVLJQD�OD�PHPRULD�WHPSRUDO�R�ORFDO��/��TXH�GHEH�XWLOL]DUVH�GXUDQWH�OD�HMHFXFLµQ�GHO�EORTXH��&XDQGR�ILQDOL]D�OD�HMHFXFLµQ�GHO�EORTXH�OµJLFR��OD�&38�UHDVLJQD�OD�PHPRULD�ORFDO�SDUD�OD�HMHFXFLµQ�GH�RWURV�EORTXHV�OµJLFRV���
'%�%ORTXH�GH�GDWRV�
/RV�EORTXHV�GH�GDWRV�VH�XWLOL]DQ�SDUD�DOPDFHQDU�GLIHUHQWHV�WLSRV�GH�GDWRV��LQFOX\HQGR�HO�HVWDGR�LQWHUPHGLR�GH�XQD�RSHUDFLµQ�X�RWUD�LQIRUPDFLµQ�GH�FRQWURO��SDU£PHWURV�GH�)%V��DV¯�FRPR�HVWUXFWXUDV�GH�GDWRV�UHTXHULGDV�SDUD�QXPHURVDV�LQVWUXFFLRQHV��S��HM��WHPSRUL]DGRUHV�\�FRQWDGRUHV��(V�SRVLEOH�GHWHUPLQDU�TXH�XQ�EORTXH�GH�GDWRV�VHD�GH�OHFWXUD�HVFULWXUD�R�GH�VµOR�OHFWXUD��$�ORV�EORTXHV�GH�GDWRV�VH�SXHGH�DFFHGHU�HQ�IRUPDWR�GH�ELWV��E\WHV��SDODEUDV�R�SDODEUDV�GREOHV��/RV�DFFHVRV�WDQWR�GH�OHFWXUD�FRPR�GH�HVFULWXUD�HVW£Q�SHUPLWLGRV�SDUD�ORV�EORTXHV�GH�GDWRV�GH�OHFWXUD�HVFULWXUD��$�ORV�EORTXHV�GH�GDWRV�GH�VµOR�OHFWXUD�VH�SHUPLWHQ�VµOR�ORV�DFFHVRV�GH�OHFWXUD��
7DQWR�VL�VH�XWLOL]D�XQD�YDULDEOH��S��HM���6WDUW��R��6WRS���FRPR�VL�XWLOL]D�XQD�GLUHFFLµQ�DEVROXWD��S��HM���,�����R��4�������XQD�UHIHUHQFLD�D�ODV�£UHDV�GH�PHPRULD�GH�ODV�HQWUDGDV��,��R�VDOLGDV��4��DFFHGH�D�OD�PHPRULD�LPDJHQ�GH�SURFHVR��\�QR�D�OD�VDOLGD�I¯VLFD��3DUD�HO�DFFHVR�LQPHGLDWR�R�HO�IRU]DGR�SHUPDQHQWH�GH�OD�HQWUDGD�R�VDOLGD�I¯VLFD��GH�SHULIHULD��HQ�HO�SURJUDPD�GH�XVXDULR�HV�SUHFLVR�D³DGLU���3��D�OD�UHIHUHQFLD��S��HM���6WRS�3��R��4����3�����
Tipos de datos • El Npo de datos especifica no sólo el tamaño de un elemento de datos, sino también la estructura de los bits en los datos.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
4
4
� 5HVXPHQ�EUHYH�� ����,QIRUPDFLµQ�E£VLFD�VREUH�FµPR�IXQFLRQD�OD�&38�
*HWWLQJ�6WDUWHG�GHO�6�������*HWWLQJ�6WDUWHG��SULPHURV�SDVRV������������$�(������������ ���
����� 7LSRV�GH�GDWRV�VRSRUWDGRV�SRU�HO�6�������(O�WLSR�GH�GDWRV�HVSHFLILFD�QR�VµOR�HO�WDPD³R�GH�XQ�HOHPHQWR�GH�GDWRV��VLQR�WDPEL«Q�OD�HVWUXFWXUD�GH�ORV�ELWV�HQ�ORV�GDWRV���
�7LSR�GH�GDWRV� 7DPD³R� 5DQJR� (MHPSORV�GH�HQWUDGD�GH�
FRQVWDQWHV�%RRO��ERROHDQR�� ��ELW� ��D��� 758(��)$/6(�������%\WH��E\WH��
��ELWV����E\WH��
������D����))� ����������$%�
:RUG��SDODEUD��
���ELWV����E\WHV��
��������D����))))� ���$%&'����������
':RUG��SDODEUD�GREOH��
���ELWV����E\WHV��
������������D����))))))))� ��������$&(�
&KDU��FDU£FWHU��
��ELWV����E\WH��
������D����))� $��W��#�
6,QW��HQWHUR�FRUWR��
��ELWV����E\WH��
�����D����� ����������
86,QW��HQWHUR�FRUWR�VLQ�VLJQR��
��ELWV����E\WH��
��D����� ����
,QW���HQWHUR��
���ELWV����E\WHV��
��������D�������� ����������
8,QW��HQWHUR�VLQ�VLJQR��
���ELWV����E\WHV��
��D�������� ����
',QW��HQWHUR�GREOH��
���ELWV����E\WHV��
���������������D��������������� ����������
8',QW��HQWHUR�GREOH�VLQ�VLJQR��
���ELWV����E\WHV��
��D��������������� ����
5HDO��UHDO�R�FRPD�IORWDQWH��
���ELWV����E\WHV��
��������[��������D���������[������� �������������������(���������(���
/5HDO��UHDO�ODUJR��
���ELWV����E\WHV��
��������[��������D���������[������� ��������������������(����
7LPH��KRUD��
���ELWV����E\WHV��
7����GB��KB��PB��VB���PV�WR�7���GB��KB��PB��VB���PV�$OPDFHQDGR�FRPR�����������������PV��WR����������������PV��
7��PB��V�����G�7��GB�KB��PB��[B��PV�
6WULQJ��FDGHQD�GH�FDUDFWHUHV��
9DULDEOH� ��D�����FDUDFWHUHV�HQ�WDPD³R�GH�E\WH� $%&�
'7/���IHFKD�\�KRUD�ODUJD��
���E\WHV� 0¯QLPR���'7/�����������������������0£[LPR���'7/���������������������������������
'7/�������������������������
�� (O�WLSR�GH�GDWRV�'7/�HV�XQD�HVWUXFWXUD�GH����E\WHV�TXH�DOPDFHQD�LQIRUPDFLµQ�GH�IHFKD�\�KRUD�HQ�XQD�HVWUXFWXUD�SUHGHILQLGD��8Q�'7/�VH�SXHGH�GHILQLU�HQ�OD�PHPRULD�WHPSRUDO�GHO�EORTXH�R�HQ�XQ�'%���
Direccionamiento
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
6
6
5HVXPHQ�EUHYH� �����,QIRUPDFLµQ�E£VLFD�VREUH�FµPR�IXQFLRQD�OD�&38�
� *HWWLQJ�6WDUWHG�GHO�6���������� *HWWLQJ�6WDUWHG��SULPHURV�SDVRV������������$�(������������
����� 'DWRV�GLJLWDOHV�DOPDFHQDGRV�HQ�ELWV��E\WHV��SDODEUDV�\�P£V��
8Q��ELW���R��G¯JLWR�ELQDULR���HV�OD�XQLGDG�GH�LQIRUPDFLµQ�P£V�SHTXH³D�HQ�XQ�VLVWHPD�GLJLWDO��8Q�ELW�DOPDFHQD�XQR�GH�GRV�HVWDGRV�SRVLEOHV��ELHQ�VHD������IDOVR��µ������YHUGDGHUR���
�
8Q�LQWHUUXSWRU�GH�OX]�HV�XQ�HMHPSOR�GH�XQ�VLVWHPD��ELQDULR��FRQ�VµOR�GRV�HVWDGRV��(O�LQWHUUXSWRU�GH�OX]�GHWHUPLQD�HO�HVWDGR��HQFHQGLGR��R��DSDJDGR��\�HVWH��YDORU��VH�SXHGH�JXDUGDU�HQ�XQ�ELW��(O�YDORU�GLJLWDO�GHO�LQWHUUXSWRU�GH�OX]�UHVSRQGH�D�OD�SUHJXQWD����(VW£�HQFHQGLGD�OD�OX]"��6L�OD�OX]�HVW£�HQFHQGLGD���YHUGDGHUR����HO�YDORU�HV����6L�OD�OX]�HVW£�DSDJDGD���IDOVR����HO�YDORU�HV����
�
�/D�&38�RUJDQL]D�ORV�ELWV�GH�GDWRV�HQ�JUXSRV��8Q�JUXSR�GH���ELWV��VH�GHQRPLQD�E\WH���
�
&DGD�ELW�GHO�JUXSR�HVW£�GHILQLGR�H[DFWDPHQWH�SRU�XQD�SRVLFLµQ�SURSLD�FRQ�XQD�GLUHFFLµQ�HVSHF¯ILFD��7RGR�ELW�WLHQH�XQD�GLUHFFLµQ�GH�E\WH�\�GLUHFFLRQHV�GH�ELW�GH���D����
8Q�JUXSR�GH���E\WHV�VH�GHQRPLQD��SDODEUD���8Q�JUXSR�GH���E\WHV�VH�GHQRPLQD��SDODEUD�GREOH���
� 3DODEUD�� %\WH�
�
� %LW�
(O�VLVWHPD�QXP«ULFR�ELQDULR��HQ�EDVH����VH�XWLOL]D�SDUD�FRQWDU�ORV�Q¼PHURV��8QD�SDODEUD�SXHGH�UHSUHVHQWDU�XQ�Q¼PHUR�HQWHUR�FRPSUHQGLGR�HQWUH��������\���������(O�ELW�FRQ�HO�YDORU�����VH�XWLOL]D�SDUD�LQGLFDU�XQ�Q¼PHUR�QHJDWLYR��VL�OD�SRVLFLµQ�����WLHQH�HO�YDORU������VLJQLILFD�TXH�HO�Q¼PHUR�HV�QHJDWLYR����
�
� 1RWD�/D�&38�VRSRUWD�DVLPLVPR�JUXSRV�GH���E\WHV�TXH�IRUPDQ�XQ�WLSR�GH�GDWRV��ORQJ�UHDO���/5HDO��SDUD�DOPDFHQDU�YDORUHV�PX\�JUDQGHV�R�PX\�SUHFLVRV��(O�UDQJR�GH�/5HDO�HV����������[��������D���������[�������
�
MB100 MB100
0 7
MB100 MB101 MW100
MB100 MB101 MB102 MB103 MD100
0
0
7
7
Estructura del programa en KOP • KOP
• la lógica se divide en unidades pequeñas y de fácil comprensión llamadas “segmentos" o “networks”
• El programa se ejecuta segmento por segmento, de izquierda a derecha y luego de arriba a abajo.
• Tras alcanzar la CPU el final del programa, comienza nuevamente en la primera operación del mismo
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
7
7
Cuadros representan operaciones adicionales tales como temporizadores, contadores u operaciones aritméNcas.
Contactos representan condiciones lógicas de "entrada" similares a interruptores, botones, condiciones internas, etc.
Bobinas representan condiciones lógicas de "salida" similares a lámparas, arrancadores de motor, relés interpuestos, condiciones internas de salida, etc.
�
&RQWURODGRU�SURJUDPDEOH�6�������0DQXDO�GH�VLVWHPD�����������$�(������������ ����
,QVWUXFFLRQHV�E£VLFDV� ���� ,QVWUXFFLRQHV�OµJLFDV�FRQ�ELWV�
����� &RQWDFWRV�\�ERELQDV�HQ�LQVWUXFFLRQHV�OµJLFDV�FRQ�ELWV�.23�\�)83�UHVXOWDQ�PX\�HIHFWLYRV�SDUD�SURFHVDU�OµJLFD�ERROHDQD��3RU�RWUR�ODGR��DXQTXH�6&/�UHVXOWD�HVSHFLDOPHQWH�HIHFWLYR�SDUD�OD�FRPSXWDFLµQ�PDWHP£WLFD�FRPSOHMD�\�SDUD�HVWUXFWXUDV�GH�FRQWURO�GH�SUR\HFWRV��VH�SXHGH�XWLOL]DU�SDUD�OD�OµJLFD�ERROHDQD��
&RQWDFWRV�.23�
7DEOD������ &RQWDFWRV�QRUPDOPHQWH�DELHUWRV�\�QRUPDOPHQWH�FHUUDGRV�
.23� 6&/� 'HVFULSFLµQ�
�
IF in THEN Statement; ELSE Statement; END_IF;
�
IF NOT (in) THEN Statement; ELSE Statement; END_IF;
&RQWDFWRV�QRUPDOPHQWH�DELHUWRV�\�QRUPDOPHQWH�FHUUDGRV��/RV�FRQWDFWRV�VH�SXHGHQ�FRQHFWDU�D�RWURV�FRQWDFWRV��FUHDQGR�DV¯�XQD�OµJLFD�FRPELQDFLRQDO�SURSLD��6L�HO�ELW�GH�HQWUDGD�LQGLFDGR�XWLOL]D�HO�LGHQWLILFDGRU�GH�PHPRULD�,��HQWUDGD��R�4��VDOLGD���HO�YDORU�GH�ELW�VH�OHH�GH�OD�PHPRULD�LPDJHQ�GH�SURFHVR��/DV�VH³DOHV�GH�ORV�FRQWDFWRV�I¯VLFRV�GHO�SURFHVR�FRQWURODGR�VH�FDEOHDQ�FRQ�ORV�ERUQHV�GH�HQWUDGD�GHO�3/&��/D�&38�FRQVXOWD�ODV�VH³DOHV�GH�HQWUDGD�FDEOHDGDV�\�DFWXDOL]D�FRQWLQXDPHQWH�ORV�YDORUHV�GH�HVWDGR�FRUUHVSRQGLHQWHV�HQ�OD�PHPRULD�LPDJHQ�GH�SURFHVR�GH�ODV�HQWUDGDV������/D�OHFWXUD�LQPHGLDWD�GH�XQD�HQWUDGD�I¯VLFD�VH�LQGLFD�LQWURGXFLHQGR���3��GHVSX«V�GHO�RIIVHW�,��S��HM����,����3����(Q�XQD�OHFWXUD�LQPHGLDWD��ORV�YDORUHV�GH�GDWRV�GH�ELW�VH�OHHQ�GLUHFWDPHQWH�GH�OD�HQWUDGD�I¯VLFD�\�QR�GH�OD�PHPRULD�LPDJHQ�GH�SURFHVR��/D�OHFWXUD�LQPHGLDWD�QR�DFWXDOL]D�OD�PHPRULD�LPDJHQ�GH�SURFHVR��
�
7DEOD������ 7LSRV�GH�GDWRV�SDUD�ORV�SDU£PHWURV�
3DU£PHWUR� 7LSR�GH�GDWRV� 'HVFULSFLµQ�,1� %RRO� %LW�DVLJQDGR�
Ⴠ� (O�FRQWDFWR�QRUPDOPHQWH�DELHUWR�VH�FLHUUD��21��FXDQGR�HO�YDORU�GH�ELW�DVLJQDGR�HV�LJXDO�D����
Ⴠ� (O�FRQWDFWR�QRUPDOPHQWH�FHUUDGR�VH�FLHUUD��21��FXDQGR�HO�YDORU�GH�ELW�DVLJQDGR�HV�LJXDO�D����
Ⴠ� /RV�FRQWDFWRV�FRQHFWDGRV�HQ�VHULH�FUHDQ�VHJPHQWRV�OµJLFRV�<��
Ⴠ� /RV�FRQWDFWRV�FRQHFWDGRV�HQ�SDUDOHOR�FUHDQ�VHJPHQWRV�OµJLFRV�2��
Operaciones lógicas con bits • CONTACTOS
• Los contactos son la base de programación en lenguaje KOP. Son elementos Npo bit que pueden adoptar los valores 1 ó 0. Se representan como abiertos o cerrados, y su uso es idénNco al que se hace de los contactos de relés en esquemas cableados. Pueden estar asociados a diversas áreas de memoria (E/S dsicas, temporizadores, contadores, marcas y variables, etc.).
• La dirección de memoria asociada al contacto será una dirección Npo bit de acuerdo a la estructura de direccionamiento directo anteriormente vista.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
8
8
�
&RQWURODGRU�SURJUDPDEOH�6�������0DQXDO�GH�VLVWHPD�����������$�(������������ ����
,QVWUXFFLRQHV�E£VLFDV� ���� ,QVWUXFFLRQHV�OµJLFDV�FRQ�ELWV�
����� &RQWDFWRV�\�ERELQDV�HQ�LQVWUXFFLRQHV�OµJLFDV�FRQ�ELWV�.23�\�)83�UHVXOWDQ�PX\�HIHFWLYRV�SDUD�SURFHVDU�OµJLFD�ERROHDQD��3RU�RWUR�ODGR��DXQTXH�6&/�UHVXOWD�HVSHFLDOPHQWH�HIHFWLYR�SDUD�OD�FRPSXWDFLµQ�PDWHP£WLFD�FRPSOHMD�\�SDUD�HVWUXFWXUDV�GH�FRQWURO�GH�SUR\HFWRV��VH�SXHGH�XWLOL]DU�SDUD�OD�OµJLFD�ERROHDQD��
&RQWDFWRV�.23�
7DEOD������ &RQWDFWRV�QRUPDOPHQWH�DELHUWRV�\�QRUPDOPHQWH�FHUUDGRV�
.23� 6&/� 'HVFULSFLµQ�
�
IF in THEN Statement; ELSE Statement; END_IF;
�
IF NOT (in) THEN Statement; ELSE Statement; END_IF;
&RQWDFWRV�QRUPDOPHQWH�DELHUWRV�\�QRUPDOPHQWH�FHUUDGRV��/RV�FRQWDFWRV�VH�SXHGHQ�FRQHFWDU�D�RWURV�FRQWDFWRV��FUHDQGR�DV¯�XQD�OµJLFD�FRPELQDFLRQDO�SURSLD��6L�HO�ELW�GH�HQWUDGD�LQGLFDGR�XWLOL]D�HO�LGHQWLILFDGRU�GH�PHPRULD�,��HQWUDGD��R�4��VDOLGD���HO�YDORU�GH�ELW�VH�OHH�GH�OD�PHPRULD�LPDJHQ�GH�SURFHVR��/DV�VH³DOHV�GH�ORV�FRQWDFWRV�I¯VLFRV�GHO�SURFHVR�FRQWURODGR�VH�FDEOHDQ�FRQ�ORV�ERUQHV�GH�HQWUDGD�GHO�3/&��/D�&38�FRQVXOWD�ODV�VH³DOHV�GH�HQWUDGD�FDEOHDGDV�\�DFWXDOL]D�FRQWLQXDPHQWH�ORV�YDORUHV�GH�HVWDGR�FRUUHVSRQGLHQWHV�HQ�OD�PHPRULD�LPDJHQ�GH�SURFHVR�GH�ODV�HQWUDGDV������/D�OHFWXUD�LQPHGLDWD�GH�XQD�HQWUDGD�I¯VLFD�VH�LQGLFD�LQWURGXFLHQGR���3��GHVSX«V�GHO�RIIVHW�,��S��HM����,����3����(Q�XQD�OHFWXUD�LQPHGLDWD��ORV�YDORUHV�GH�GDWRV�GH�ELW�VH�OHHQ�GLUHFWDPHQWH�GH�OD�HQWUDGD�I¯VLFD�\�QR�GH�OD�PHPRULD�LPDJHQ�GH�SURFHVR��/D�OHFWXUD�LQPHGLDWD�QR�DFWXDOL]D�OD�PHPRULD�LPDJHQ�GH�SURFHVR��
�
7DEOD������ 7LSRV�GH�GDWRV�SDUD�ORV�SDU£PHWURV�
3DU£PHWUR� 7LSR�GH�GDWRV� 'HVFULSFLµQ�,1� %RRO� %LW�DVLJQDGR�
Ⴠ� (O�FRQWDFWR�QRUPDOPHQWH�DELHUWR�VH�FLHUUD��21��FXDQGR�HO�YDORU�GH�ELW�DVLJQDGR�HV�LJXDO�D����
Ⴠ� (O�FRQWDFWR�QRUPDOPHQWH�FHUUDGR�VH�FLHUUD��21��FXDQGR�HO�YDORU�GH�ELW�DVLJQDGR�HV�LJXDO�D����
Ⴠ� /RV�FRQWDFWRV�FRQHFWDGRV�HQ�VHULH�FUHDQ�VHJPHQWRV�OµJLFRV�<��
Ⴠ� /RV�FRQWDFWRV�FRQHFWDGRV�HQ�SDUDOHOR�FUHDQ�VHJPHQWRV�OµJLFRV�2��
�
&RQWURODGRU�SURJUDPDEOH�6�������0DQXDO�GH�VLVWHPD�����������$�(������������ ����
,QVWUXFFLRQHV�E£VLFDV� ���� ,QVWUXFFLRQHV�OµJLFDV�FRQ�ELWV�
����� &RQWDFWRV�\�ERELQDV�HQ�LQVWUXFFLRQHV�OµJLFDV�FRQ�ELWV�.23�\�)83�UHVXOWDQ�PX\�HIHFWLYRV�SDUD�SURFHVDU�OµJLFD�ERROHDQD��3RU�RWUR�ODGR��DXQTXH�6&/�UHVXOWD�HVSHFLDOPHQWH�HIHFWLYR�SDUD�OD�FRPSXWDFLµQ�PDWHP£WLFD�FRPSOHMD�\�SDUD�HVWUXFWXUDV�GH�FRQWURO�GH�SUR\HFWRV��VH�SXHGH�XWLOL]DU�SDUD�OD�OµJLFD�ERROHDQD��
&RQWDFWRV�.23�
7DEOD������ &RQWDFWRV�QRUPDOPHQWH�DELHUWRV�\�QRUPDOPHQWH�FHUUDGRV�
.23� 6&/� 'HVFULSFLµQ�
�
IF in THEN Statement; ELSE Statement; END_IF;
�
IF NOT (in) THEN Statement; ELSE Statement; END_IF;
&RQWDFWRV�QRUPDOPHQWH�DELHUWRV�\�QRUPDOPHQWH�FHUUDGRV��/RV�FRQWDFWRV�VH�SXHGHQ�FRQHFWDU�D�RWURV�FRQWDFWRV��FUHDQGR�DV¯�XQD�OµJLFD�FRPELQDFLRQDO�SURSLD��6L�HO�ELW�GH�HQWUDGD�LQGLFDGR�XWLOL]D�HO�LGHQWLILFDGRU�GH�PHPRULD�,��HQWUDGD��R�4��VDOLGD���HO�YDORU�GH�ELW�VH�OHH�GH�OD�PHPRULD�LPDJHQ�GH�SURFHVR��/DV�VH³DOHV�GH�ORV�FRQWDFWRV�I¯VLFRV�GHO�SURFHVR�FRQWURODGR�VH�FDEOHDQ�FRQ�ORV�ERUQHV�GH�HQWUDGD�GHO�3/&��/D�&38�FRQVXOWD�ODV�VH³DOHV�GH�HQWUDGD�FDEOHDGDV�\�DFWXDOL]D�FRQWLQXDPHQWH�ORV�YDORUHV�GH�HVWDGR�FRUUHVSRQGLHQWHV�HQ�OD�PHPRULD�LPDJHQ�GH�SURFHVR�GH�ODV�HQWUDGDV������/D�OHFWXUD�LQPHGLDWD�GH�XQD�HQWUDGD�I¯VLFD�VH�LQGLFD�LQWURGXFLHQGR���3��GHVSX«V�GHO�RIIVHW�,��S��HM����,����3����(Q�XQD�OHFWXUD�LQPHGLDWD��ORV�YDORUHV�GH�GDWRV�GH�ELW�VH�OHHQ�GLUHFWDPHQWH�GH�OD�HQWUDGD�I¯VLFD�\�QR�GH�OD�PHPRULD�LPDJHQ�GH�SURFHVR��/D�OHFWXUD�LQPHGLDWD�QR�DFWXDOL]D�OD�PHPRULD�LPDJHQ�GH�SURFHVR��
�
7DEOD������ 7LSRV�GH�GDWRV�SDUD�ORV�SDU£PHWURV�
3DU£PHWUR� 7LSR�GH�GDWRV� 'HVFULSFLµQ�,1� %RRO� %LW�DVLJQDGR�
Ⴠ� (O�FRQWDFWR�QRUPDOPHQWH�DELHUWR�VH�FLHUUD��21��FXDQGR�HO�YDORU�GH�ELW�DVLJQDGR�HV�LJXDO�D����
Ⴠ� (O�FRQWDFWR�QRUPDOPHQWH�FHUUDGR�VH�FLHUUD��21��FXDQGR�HO�YDORU�GH�ELW�DVLJQDGR�HV�LJXDO�D����
Ⴠ� /RV�FRQWDFWRV�FRQHFWDGRV�HQ�VHULH�FUHDQ�VHJPHQWRV�OµJLFRV�<��
Ⴠ� /RV�FRQWDFWRV�FRQHFWDGRV�HQ�SDUDOHOR�FUHDQ�VHJPHQWRV�OµJLFRV�2��
Operaciones lógicas con bits • BOBINA DE RELÉ • La instrucción "Bobina de salida, rele” escribe un valor en un bit de salida. Si el bit de salida indicado uNliza el idenNficador de memoria Q, la CPU acNva o desacNva el bit de salida en la memoria imagen de proceso, poniendo el bit especificado al correspondiente estado de flujo de corriente. • Si fluye corriente a través de una bobina de salida, el bit de salida se pone a 1.
• Si no fluye corriente a través de una bobina de salida, el bit de la bobina de salida se pone a 0.
• Si fluye corriente a través de una bobina de rele negada, el bit de salida se pone a 0.
• Si no fluye corriente a través de una bobina de rele negada, el bit de salida se pone a 1.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
9
9
Programación cada vez más sencilla 6.3 Instrucciones eficaces que facilitan la programación
Easy Book 88 Manual de producto, 04/2011, A5E02486778-02
Bobina de relé, salida Bobina de relé negada
● Si fluye corriente a través de una bobina de salida, el bit de salida se pone a 1.
● Si no fluye corriente a través de una bobina de salida, el bit de la bobina de salida se pone a 0.
● Si fluye corriente a través de una bobina de relé negada, el bit de salida se pone a 0.
● Si no fluye corriente a través de una bobina de relé negada, el bit de salida se pone a 1.
La instrucción "Bobina de salida, relé" escribe un valor en un bit de salida. Si el bit de salida indicado utiliza el identificador de memoria Q, la CPU activa o desactiva el bit de salida en la memoria imagen de proceso, poniendo el bit especificado al correspondiente estado de flujo de corriente. Las señales de salida de los actuadores de control se cablean con los terminales de salida del PLC. En el modo RUN, el sistema CPU explora las señales de entrada, procesa los estados de entrada acorde con la lógica del programa de usuario, y a continuación reacciona aplicando nuevos estados lógicos de salida en la memoria imagen de proceso de las salidas. Tras cada ciclo del programa, la CPU transfiere el nuevo estado de las salidas almacenado en la memoria imagen de proceso a los bornes de salida cableados.
La escritura inmediata de una salida física se especifica introduciendo ":P" después de la variable de una salida (p. ej. "Motor_on:P" o "Q3.4:P"). En una escritura inmediata, los valores de datos de bit se escriben en la memoria imagen de proceso de las salidas y directamente en la salida física.
Las bobinas no tienen que estar necesariamente al final de un segmento. Se pueden insertar en el centro de un circuito del segmento KOP, entre contactos u otras instrucciones.
Contacto negado NOT (KOP)
Cuadro Y con una entrada lógica negada (FUP)
Cuadro Y con entrada y salida lógica negada (FUP)
El contacto NOT KOP invierte el estado lógico de la entrada de flujo de corriente.
● Si no fluye corriente al contacto NOT, hay flujo de corriente en la salida.
● Si fluye corriente al contacto NOT, no hay flujo de corriente en la salida.
En la programación FUP es posible arrastrar la función "Negar valor binario" desde la barra de herramientas "Favoritos" o desde el árbol de instrucciones y soltarla en una entrada o salida para crear un inversor lógico en ese conector del cuadro.
Cuadro Y (FUP) Cuadro O (FUP) Cuadro O-exclusiva (FUP)
Operaciones lógicas con bits • FUNCIONES SET/RESET • La acNvación de salidas (áreas de memoria) asociada a bobinas sólo se manNene durante el Nempo que dure la señal acNvadora. Es posible no obstante producir un cambio permanente en el área de memoria con sólo un flanco posiNvo de señal (cambio de 0 a 1 en la alimentación de la bobina) mediante la función SET.
• Una vez hecho un SET de una salida (área de memoria), sólo se podra desacNvar haciendo un correspondiente RESET, ya que aunque no le llegue alimentación a la función SET, la salida sobre la que actuo conNnuará acNvada en tanto no se realice su correspondiente RESET.
• Existen las funciones S_BF y R_BF, que permiten poner a SET o a RESET un bloque de bits indicando su dirección inicial y su tamaño.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
10
10
,QVWUXFFLRQHV�E£VLFDV� �����,QVWUXFFLRQHV�OµJLFDV�FRQ�ELWV�
� &RQWURODGRU�SURJUDPDEOH�6����������� 0DQXDO�GH�VLVWHPD�����������$�(������������
7DEOD������ 7LSRV�GH�GDWRV�SDUD�ORV�SDU£PHWURV�
3DU£PHWUR� 7LSR�GH�GDWRV� 'HVFULSFLµQ�287� %RRO� %LW�DVLJQDGR�
Ⴠ� 6L�IOX\H�FRUULHQWH�D�WUDY«V�GH�XQD�ERELQD�GH�VDOLGD�R�VH�KDELOLWD�XQ�FXDGUR�)83�� ���HO�ELW�GH�VDOLGD�VH�SRQH�D����
Ⴠ� 6L�QR�IOX\H�FRUULHQWH�D�WUDY«V�GH�XQD�ERELQD�GH�VDOLGD�R�QR�VH�KDELOLWD�XQ�FXDGUR�GH�DVLJQDFLµQ�)83�� ���HO�ELW�GH�VDOLGD�VH�SRQH�D����
Ⴠ� 6L�IOX\H�FRUULHQWH�D�WUDY«V�GH�XQD�ERELQD�GH�VDOLGD�LQYHUWLGD�R�VH�KDELOLWD�XQ�FXDGUR�)83��� ���HO�ELW�GH�VDOLGD�VH�SRQH�D����
Ⴠ� 6L�QR�IOX\H�FRUULHQWH�D�WUDY«V�GH�XQD�ERELQD�GH�VDOLGD�LQYHUWLGD�R�QR�VH�KDELOLWD�XQ�FXDGUR�)83��� ���HO�ELW�GH�VDOLGD�VH�SRQH�D����
����� ,QVWUXFFLRQHV��$FWLYDU�VDOLGD��\��'HVDFWLYDU�VDOLGD��
$FWLYDU�\�GHVDFWLYDU���ELW�
7DEOD������ ,QVWUXFFLRQHV�6�\�5�
.23� )83� 6&/� 'HVFULSFLµQ�
� �
1R�GLVSRQLEOH� 6L�VH�DFWLYD�6��6HW��HO�YDORU�GH�GDWRV�GH�OD�GLUHFFLµQ�287�VH�SRQH�D����6L�6�QR�HV�HVW£�DFWLYDGR��287�QR�FDPELD��������
� �
1R�GLVSRQLEOH� 6L�VH�DFWLYD�5��5HVHW���HO�YDORU�GH�GDWRV�GH�OD�GLUHFFLµQ�GH�VDOLGD�287�VH�SRQH�D����6L�QR�VH�DFWLYD�5��QR�VH�PRGLILFD�287��
�� (Q�.23�\�)83��(VWDV�LQVWUXFFLRQHV�SXHGHQ�GLVSRQHUVH�HQ�FXDOTXLHU�SRVLFLµQ�GHO�VHJPHQWR���� (Q�6&/��(V�QHFHVDULR�HVFULELU�FµGLJR�SDUD�GXSOLFDU�HVWD�IXQFLµQ�HQ�OD�DSOLFDFLµQ���
7DEOD������ 7LSRV�GH�GDWRV�SDUD�ORV�SDU£PHWURV�
3DU£PHWUR� 7LSR�GH�GDWRV� 'HVFULSFLµQ�,1��R�FRQHFWDU�D�FRQWDFWR�OµJLFD�GH�SXHUWD�� %RRO� 'LUHFFLµQ�GH�ELW�TXH�GHEH�YLJLODUVH�287� %RRO� 'LUHFFLµQ�GH�ELW�TXH�VH�GHEH�DFWLYDU�R�GHVDFWLYDU�
,QVWUXFFLRQHV�E£VLFDV� �����,QVWUXFFLRQHV�OµJLFDV�FRQ�ELWV�
� &RQWURODGRU�SURJUDPDEOH�6����������� 0DQXDO�GH�VLVWHPD�����������$�(������������
7DEOD������ 7LSRV�GH�GDWRV�SDUD�ORV�SDU£PHWURV�
3DU£PHWUR� 7LSR�GH�GDWRV� 'HVFULSFLµQ�287� %RRO� %LW�DVLJQDGR�
Ⴠ� 6L�IOX\H�FRUULHQWH�D�WUDY«V�GH�XQD�ERELQD�GH�VDOLGD�R�VH�KDELOLWD�XQ�FXDGUR�)83�� ���HO�ELW�GH�VDOLGD�VH�SRQH�D����
Ⴠ� 6L�QR�IOX\H�FRUULHQWH�D�WUDY«V�GH�XQD�ERELQD�GH�VDOLGD�R�QR�VH�KDELOLWD�XQ�FXDGUR�GH�DVLJQDFLµQ�)83�� ���HO�ELW�GH�VDOLGD�VH�SRQH�D����
Ⴠ� 6L�IOX\H�FRUULHQWH�D�WUDY«V�GH�XQD�ERELQD�GH�VDOLGD�LQYHUWLGD�R�VH�KDELOLWD�XQ�FXDGUR�)83��� ���HO�ELW�GH�VDOLGD�VH�SRQH�D����
Ⴠ� 6L�QR�IOX\H�FRUULHQWH�D�WUDY«V�GH�XQD�ERELQD�GH�VDOLGD�LQYHUWLGD�R�QR�VH�KDELOLWD�XQ�FXDGUR�)83��� ���HO�ELW�GH�VDOLGD�VH�SRQH�D����
����� ,QVWUXFFLRQHV��$FWLYDU�VDOLGD��\��'HVDFWLYDU�VDOLGD��
$FWLYDU�\�GHVDFWLYDU���ELW�
7DEOD������ ,QVWUXFFLRQHV�6�\�5�
.23� )83� 6&/� 'HVFULSFLµQ�
� �
1R�GLVSRQLEOH� 6L�VH�DFWLYD�6��6HW��HO�YDORU�GH�GDWRV�GH�OD�GLUHFFLµQ�287�VH�SRQH�D����6L�6�QR�HV�HVW£�DFWLYDGR��287�QR�FDPELD��������
� �
1R�GLVSRQLEOH� 6L�VH�DFWLYD�5��5HVHW���HO�YDORU�GH�GDWRV�GH�OD�GLUHFFLµQ�GH�VDOLGD�287�VH�SRQH�D����6L�QR�VH�DFWLYD�5��QR�VH�PRGLILFD�287��
�� (Q�.23�\�)83��(VWDV�LQVWUXFFLRQHV�SXHGHQ�GLVSRQHUVH�HQ�FXDOTXLHU�SRVLFLµQ�GHO�VHJPHQWR���� (Q�6&/��(V�QHFHVDULR�HVFULELU�FµGLJR�SDUD�GXSOLFDU�HVWD�IXQFLµQ�HQ�OD�DSOLFDFLµQ���
7DEOD������ 7LSRV�GH�GDWRV�SDUD�ORV�SDU£PHWURV�
3DU£PHWUR� 7LSR�GH�GDWRV� 'HVFULSFLµQ�,1��R�FRQHFWDU�D�FRQWDFWR�OµJLFD�GH�SXHUWD�� %RRO� 'LUHFFLµQ�GH�ELW�TXH�GHEH�YLJLODUVH�287� %RRO� 'LUHFFLµQ�GH�ELW�TXH�VH�GHEH�DFWLYDU�R�GHVDFWLYDU�
� ,QVWUXFFLRQHV�E£VLFDV�� ����,QVWUXFFLRQHV�OµJLFDV�FRQ�ELWV�
&RQWURODGRU�SURJUDPDEOH�6�������0DQXDO�GH�VLVWHPD�����������$�(������������ ����
$FWLYDU�\�GHVDFWLYDU�PDSD�GH�ELWV�
7DEOD������� ,QVWUXFFLRQHV�6(7B%)�\�5(6(7B%)�
.23�� )83� 6&/� 'HVFULSFLµQ�
� �
1R�GLVSRQLEOH� &XDQGR�VH�DFWLYD�6(7B%)��HO�YDORU�GH�GDWRV���VH�DVLJQD�D��Q��ELWV��FRPHQ]DQGR�HQ�OD�GLUHFFLµQ�287��6L�6(7B%)�QR�VH�DFWLYD��287�QR�FDPELD��
� �
1R�GLVSRQLEOH� 5(6(7B%)�HVFULEH�HO�YDORU�GH�GDWRV���HQ��Q��ELWV��FRPHQ]DQGR�HQ�OD�GLUHFFLµQ�287��6L�5(6(7B%)�QR�VH�DFWLYD��287�QR�FDPELD��
�� (Q�.23�\�)83��(VWDV�LQVWUXFFLRQHV�VµOR�VH�SXHGHQ�GLVSRQHU�HQ�HO�H[WUHPR�GHUHFKR�GH�XQD�UDPD���� (Q�6&/��(V�QHFHVDULR�HVFULELU�FµGLJR�SDUD�GXSOLFDU�HVWD�IXQFLµQ�HQ�OD�DSOLFDFLµQ���
7DEOD������� 7LSRV�GH�GDWRV�SDUD�ORV�SDU£PHWURV�
3DU£PHWUR� 7LSR�GH�GDWRV� 'HVFULSFLµQ�287� %RRO� (OHPHQWR�LQLFLDO�GH�XQ�PDSD�GH�ELWV�TXH�VH�GHEH�DFWLYDU�R�
GHVDFWLYDU��HMHPSOR���0\$UUD\>�@��Q� &RQVWDQWH��8,QW�� 1¼PHUR�GH�ELWV�TXH�GHEHQ�HVFULELUVH�
)OLSIORS�GH�DFWLYDFLµQ�GHVDFWLYDFLµQ�\�IOLSIORS�GH�GHVDFWLYDFLµQ�DFWLYDFLµQ�
7DEOD������� ,QVWUXFFLRQHV�56�\�65�
.23���)83� 6&/� 'HVFULSFLµQ�
�
1R�GLVSRQLEOH� 56�HV�XQ�IOLSIORS�HQ�HO�TXH�GRPLQD�OD�DFWLYDFLµQ��6L�ODV�VH³DOHV�GH�DFWLYDFLµQ��6���\�GHVDFWLYDFLµQ��5��VRQ�YHUGDGHUDV��OD�GLUHFFLµQ�GH�VDOLGD�287�VH�SRQH�D����
�
1R�GLVSRQLEOH� 65�HV�XQ�IOLSIORS�HQ�HO�TXH�GRPLQD�OD�GHVDFWLYDFLµQ��6L�ODV�VH³DOHV�GH�DFWLYDFLµQ��6��\�GHVDFWLYDFLµQ��5���VRQ�YHUGDGHUDV��OD�GLUHFFLµQ�GH�VDOLGD�287�VH�SRQH�D����
�� (Q�.23�\�)83��(VWDV�LQVWUXFFLRQHV�VµOR�VH�SXHGHQ�GLVSRQHU�HQ�HO�H[WUHPR�GHUHFKR�GH�XQD�UDPD���� (Q�6&/��(V�QHFHVDULR�HVFULELU�FµGLJR�SDUD�GXSOLFDU�HVWD�IXQFLµQ�HQ�OD�DSOLFDFLµQ���
� ,QVWUXFFLRQHV�E£VLFDV�� ����,QVWUXFFLRQHV�OµJLFDV�FRQ�ELWV�
&RQWURODGRU�SURJUDPDEOH�6�������0DQXDO�GH�VLVWHPD�����������$�(������������ ����
$FWLYDU�\�GHVDFWLYDU�PDSD�GH�ELWV�
7DEOD������� ,QVWUXFFLRQHV�6(7B%)�\�5(6(7B%)�
.23�� )83� 6&/� 'HVFULSFLµQ�
� �
1R�GLVSRQLEOH� &XDQGR�VH�DFWLYD�6(7B%)��HO�YDORU�GH�GDWRV���VH�DVLJQD�D��Q��ELWV��FRPHQ]DQGR�HQ�OD�GLUHFFLµQ�287��6L�6(7B%)�QR�VH�DFWLYD��287�QR�FDPELD��
� �
1R�GLVSRQLEOH� 5(6(7B%)�HVFULEH�HO�YDORU�GH�GDWRV���HQ��Q��ELWV��FRPHQ]DQGR�HQ�OD�GLUHFFLµQ�287��6L�5(6(7B%)�QR�VH�DFWLYD��287�QR�FDPELD��
�� (Q�.23�\�)83��(VWDV�LQVWUXFFLRQHV�VµOR�VH�SXHGHQ�GLVSRQHU�HQ�HO�H[WUHPR�GHUHFKR�GH�XQD�UDPD���� (Q�6&/��(V�QHFHVDULR�HVFULELU�FµGLJR�SDUD�GXSOLFDU�HVWD�IXQFLµQ�HQ�OD�DSOLFDFLµQ���
7DEOD������� 7LSRV�GH�GDWRV�SDUD�ORV�SDU£PHWURV�
3DU£PHWUR� 7LSR�GH�GDWRV� 'HVFULSFLµQ�287� %RRO� (OHPHQWR�LQLFLDO�GH�XQ�PDSD�GH�ELWV�TXH�VH�GHEH�DFWLYDU�R�
GHVDFWLYDU��HMHPSOR���0\$UUD\>�@��Q� &RQVWDQWH��8,QW�� 1¼PHUR�GH�ELWV�TXH�GHEHQ�HVFULELUVH�
)OLSIORS�GH�DFWLYDFLµQ�GHVDFWLYDFLµQ�\�IOLSIORS�GH�GHVDFWLYDFLµQ�DFWLYDFLµQ�
7DEOD������� ,QVWUXFFLRQHV�56�\�65�
.23���)83� 6&/� 'HVFULSFLµQ�
�
1R�GLVSRQLEOH� 56�HV�XQ�IOLSIORS�HQ�HO�TXH�GRPLQD�OD�DFWLYDFLµQ��6L�ODV�VH³DOHV�GH�DFWLYDFLµQ��6���\�GHVDFWLYDFLµQ��5��VRQ�YHUGDGHUDV��OD�GLUHFFLµQ�GH�VDOLGD�287�VH�SRQH�D����
�
1R�GLVSRQLEOH� 65�HV�XQ�IOLSIORS�HQ�HO�TXH�GRPLQD�OD�GHVDFWLYDFLµQ��6L�ODV�VH³DOHV�GH�DFWLYDFLµQ��6��\�GHVDFWLYDFLµQ��5���VRQ�YHUGDGHUDV��OD�GLUHFFLµQ�GH�VDOLGD�287�VH�SRQH�D����
�� (Q�.23�\�)83��(VWDV�LQVWUXFFLRQHV�VµOR�VH�SXHGHQ�GLVSRQHU�HQ�HO�H[WUHPR�GHUHFKR�GH�XQD�UDPD���� (Q�6&/��(V�QHFHVDULR�HVFULELU�FµGLJR�SDUD�GXSOLFDU�HVWD�IXQFLµQ�HQ�OD�DSOLFDFLµQ���
Operaciones lógicas con bits
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
12
12
• AND(SERIE) Y OR(PARALELO)
AND
OR
AND
Ejemplos de programación • La figura siguiente muestra una cinta transportadora que se pone en marcha eléctricamente. Al principio de la cinta transportadora se encuentran dos pulsadores: S1 para MARCHA y S2 para PARO. Al final de la cinta transportadora se encuentran otros dos pulsadores: S3 para MARCHA y S4 para PARO. La cinta transportadora puede ponerse en marcha o pararse desde cualquiera de ambos extremos.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
13
13
��� (MHPSORV�GH�SURJUDPDFLµQ
����� (MHPSORV�GH�SURJUDPDFLµQ�.23
������� (MHPSOR�GH�FRQWURO�GH�XQD�FLQWD�WUDQVSRUWDGRUD�
&RQWURO�GH�XQD�FLQWD�WUDQVSRUWDGRUD���/D�ILJXUD�VLJXLHQWH�PXHVWUD�XQD�FLQWD�WUDQVSRUWDGRUD�TXH�VH�SRQH�HQ�PDUFKD�HO«FWULFDPHQWH��$O�SULQFLSLR�GH�OD�FLQWD�WUDQVSRUWDGRUD�VH�HQFXHQWUDQ�GRV�SXOVDGRUHV��6��SDUD�0$5&+$�\�6��SDUD�3$52��$O�ILQDO�GH�OD�FLQWD�WUDQVSRUWDGRUD�VH�HQFXHQWUDQ�RWURV�GRV�SXOVDGRUHV��6��SDUD�0$5&+$�\�6��SDUD�3$52��/D�FLQWD�WUDQVSRUWDGRUD�SXHGH�SRQHUVH�HQ�PDUFKD�R�SDUDUVH�GHVGH�FXDOTXLHUD�GH�DPERV�H[WUHPRV�
5HDOL]DFLµQ/D�WDEOD�VLJXLHQWH�PXHVWUD�OD�GHILQLFLµQ�GH�ODV�YDULDEOHV�XWLOL]DGDV�
1RPEUH 7LSR�GH�GDWRV 'HVFULSFLµQ0DUFKDBL]TXLHUGD��6�� %22/ 3XOVDGRU�GH�PDUFKD�HQ�HO�
H[WUHPR�L]TXLHUGR�GH�OD�FLQWD�WUDQVSRUWDGRUD
3DURBL]TXLHUGD��6�� %22/ 3XOVDGRU�GH�SDUR�HQ�HO�H[WUHPR�L]TXLHUGR�GH�OD�FLQWD�WUDQVSRUWDGRUD
0DUFKDBGHUHFKD��6�� %22/ 3XOVDGRU�GH�PDUFKD�HQ�HO�H[WUHPR�GHUHFKR�GH�OD�FLQWD�WUDQVSRUWDGRUD
3DURBGHUHFKD��6�� %22/ 3XOVDGRU�GH�SDUR�HQ�HO�H[WUHPR�GHUHFKR�GH�OD�FLQWD�WUDQVSRUWDGRUD
02725B21 %22/ &RQHFWDU�HO�PRWRU�GH�OD�FLQWD�WUDQVSRUWDGRUD
3URJUDPDU�HO�3/&����(MHPSORV�GH�SURJUDPDFLµQ
67(3���%DVLF�9����0DQXDO�GH�VLVWHPD������������ ����
��� (MHPSORV�GH�SURJUDPDFLµQ
����� (MHPSORV�GH�SURJUDPDFLµQ�.23
������� (MHPSOR�GH�FRQWURO�GH�XQD�FLQWD�WUDQVSRUWDGRUD�
&RQWURO�GH�XQD�FLQWD�WUDQVSRUWDGRUD���/D�ILJXUD�VLJXLHQWH�PXHVWUD�XQD�FLQWD�WUDQVSRUWDGRUD�TXH�VH�SRQH�HQ�PDUFKD�HO«FWULFDPHQWH��$O�SULQFLSLR�GH�OD�FLQWD�WUDQVSRUWDGRUD�VH�HQFXHQWUDQ�GRV�SXOVDGRUHV��6��SDUD�0$5&+$�\�6��SDUD�3$52��$O�ILQDO�GH�OD�FLQWD�WUDQVSRUWDGRUD�VH�HQFXHQWUDQ�RWURV�GRV�SXOVDGRUHV��6��SDUD�0$5&+$�\�6��SDUD�3$52��/D�FLQWD�WUDQVSRUWDGRUD�SXHGH�SRQHUVH�HQ�PDUFKD�R�SDUDUVH�GHVGH�FXDOTXLHUD�GH�DPERV�H[WUHPRV�
5HDOL]DFLµQ/D�WDEOD�VLJXLHQWH�PXHVWUD�OD�GHILQLFLµQ�GH�ODV�YDULDEOHV�XWLOL]DGDV�
1RPEUH 7LSR�GH�GDWRV 'HVFULSFLµQ0DUFKDBL]TXLHUGD��6�� %22/ 3XOVDGRU�GH�PDUFKD�HQ�HO�
H[WUHPR�L]TXLHUGR�GH�OD�FLQWD�WUDQVSRUWDGRUD
3DURBL]TXLHUGD��6�� %22/ 3XOVDGRU�GH�SDUR�HQ�HO�H[WUHPR�L]TXLHUGR�GH�OD�FLQWD�WUDQVSRUWDGRUD
0DUFKDBGHUHFKD��6�� %22/ 3XOVDGRU�GH�PDUFKD�HQ�HO�H[WUHPR�GHUHFKR�GH�OD�FLQWD�WUDQVSRUWDGRUD
3DURBGHUHFKD��6�� %22/ 3XOVDGRU�GH�SDUR�HQ�HO�H[WUHPR�GHUHFKR�GH�OD�FLQWD�WUDQVSRUWDGRUD
02725B21 %22/ &RQHFWDU�HO�PRWRU�GH�OD�FLQWD�WUDQVSRUWDGRUD
3URJUDPDU�HO�3/&����(MHPSORV�GH�SURJUDPDFLµQ
67(3���%DVLF�9����0DQXDO�GH�VLVWHPD������������ ����
Ejemplos de programación
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
14
14
/RV�VHJPHQWRV�VLJXLHQWHV�PXHVWUDQ�OD�SURJUDPDFLµQ�.23�SDUD�VROXFLRQDU�OD�WDUHD�
6HJPHQWR���
(O�PRWRU�GH�OD�FLQWD�WUDQVSRUWDGRUD�VH�FRQHFWD�FXDQGR�VH�DFFLRQD�HO�SXOVDGRU�GH�PDUFKD��6���R��6���
6HJPHQWR���
(O�PRWRU�GH�OD�FLQWD�WUDQVSRUWDGRUD�VH�GHVFRQHFWD�FXDQGR�VH�DFFLRQD�HO�SXOVDGRU�GH�SDUR��6���R��6���
������� (MHPSOR�GH�GHWHFFLµQ�GHO�VHQWLGR�GH�PDUFKD�GH�XQD�FLQWD�WUDQVSRUWDGRUD
'HWHFFLµQ�GHO�VHQWLGR�GH�PDUFKD�GH�XQD�FLQWD�WUDQVSRUWDGRUD�����/D�ILJXUD�PXHVWUD�XQD�FLQWD�WUDQVSRUWDGRUD�HTXLSDGD�FRQ�GRV�EDUUHUDV�IRWRHO«FWULFDV��%)��\�%)����/DV�EDUUHUDV�IRWRHO«FWULFDV�VLUYHQ�SDUD�GHWHUPLQDU�HQ�TX«�VHQWLGR�VH�GHVSOD]D�XQ�REMHWR�VREUH�OD�FLQWD�WUDQVSRUWDGRUD�
3URJUDPDU�HO�3/&����(MHPSORV�GH�SURJUDPDFLµQ
67(3���%DVLF�9�������� 0DQXDO�GH�VLVWHPD������������
Ejemplos de programación
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
15
15
• TAREA DE CONTROL DE UNA PRENSA. • Una prensa con disposiNvo de protección solo se acNvará con un pulsador START de inicio S3 si está cerrada la rejilla
protectora. Este estado se vigila con un sensor de rejilla protectora cerrada B1. • Si es así, se acciona una válvula distribuidora 5/2 M0 para el cilindro de la prensa, para que se pueda prensar un molde de
plásNco. • La prensa debe elevarse de nuevo al accionar el pulsador de PARADA DE EMERGENCIA (NC), al dejar de responder el sensor
de rejilla protectora B1 o al responder el sensor de cilindro B2 reNrado.
• Lista de asignación: Direcc Símbolo Comentario %I 0.1 PARADA EMERG Pulsador de parada de emergencia NC %I 0.3 S3 Pulsador de inicio S3 %I 0.4 B1 Sensor rejilla protectora cerrada %I 0.5 B2 Sensor cilindro reNrado %Q 0.0 M0 Extraer cilindro A
PARADA DE EMERGENCIA
Operaciones lógicas con bits • CONTACTO NOT • El contacto NOT KOP invierte el estado lógico de la entrada de flujo de corriente. • Si no fluye corriente al contacto NOT, hay flujo de corriente en la salida. • Si fluye corriente al contacto NOT, no hay flujo de corriente en la salida.
• CONSULTA DE FLANCO • Todas las instrucciones de detección de flancos uNlizan una marca (M_BIT) para almacenar el estado anterior de la señal de entrada que se está vigilando. Un flanco se detecta comparando el estado de la entrada con el estado de la marca. Si los estados indican un cambio de la entrada en el senNdo deseado, se noNfica un flanco acNvando la salida (TRUE). De lo contrario, se desacNvará la salida (FALSE).
• Contacto P: • El estado de este contacto es TRUE (verdadero) cuando se detecta un flanco
ascendente (OFF a ON) en el bit "IN" asignado. El estado lógico del contacto se combina entonces con el estado de entrada del flujo de corriente para acNvar el estado de salida del flujo de corriente. El contacto P puede disponerse en cualquier posición del segmento, excepto al final de una rama.
• Contacto N: • El estado de este contacto es TRUE (verdadero) cuando se detecta un flanco
descendente (ON a OFF) en el bit de entrada asignado. El estado lógico del contacto se combina entonces con el estado de entrada del flujo de corriente para acNvar el estado de salida del flujo de corriente. El contacto N puede disponerse en cualquier posición del segmento, excepto al final de una rama.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
16
16
Programación cada vez más sencilla 6.3 Instrucciones eficaces que facilitan la programación
Easy Book 88 Manual de producto, 04/2011, A5E02486778-02
Bobina de relé, salida Bobina de relé negada
● Si fluye corriente a través de una bobina de salida, el bit de salida se pone a 1.
● Si no fluye corriente a través de una bobina de salida, el bit de la bobina de salida se pone a 0.
● Si fluye corriente a través de una bobina de relé negada, el bit de salida se pone a 0.
● Si no fluye corriente a través de una bobina de relé negada, el bit de salida se pone a 1.
La instrucción "Bobina de salida, relé" escribe un valor en un bit de salida. Si el bit de salida indicado utiliza el identificador de memoria Q, la CPU activa o desactiva el bit de salida en la memoria imagen de proceso, poniendo el bit especificado al correspondiente estado de flujo de corriente. Las señales de salida de los actuadores de control se cablean con los terminales de salida del PLC. En el modo RUN, el sistema CPU explora las señales de entrada, procesa los estados de entrada acorde con la lógica del programa de usuario, y a continuación reacciona aplicando nuevos estados lógicos de salida en la memoria imagen de proceso de las salidas. Tras cada ciclo del programa, la CPU transfiere el nuevo estado de las salidas almacenado en la memoria imagen de proceso a los bornes de salida cableados.
La escritura inmediata de una salida física se especifica introduciendo ":P" después de la variable de una salida (p. ej. "Motor_on:P" o "Q3.4:P"). En una escritura inmediata, los valores de datos de bit se escriben en la memoria imagen de proceso de las salidas y directamente en la salida física.
Las bobinas no tienen que estar necesariamente al final de un segmento. Se pueden insertar en el centro de un circuito del segmento KOP, entre contactos u otras instrucciones.
Contacto negado NOT (KOP)
Cuadro Y con una entrada lógica negada (FUP)
Cuadro Y con entrada y salida lógica negada (FUP)
El contacto NOT KOP invierte el estado lógico de la entrada de flujo de corriente.
● Si no fluye corriente al contacto NOT, hay flujo de corriente en la salida.
● Si fluye corriente al contacto NOT, no hay flujo de corriente en la salida.
En la programación FUP es posible arrastrar la función "Negar valor binario" desde la barra de herramientas "Favoritos" o desde el árbol de instrucciones y soltarla en una entrada o salida para crear un inversor lógico en ese conector del cuadro.
Cuadro Y (FUP) Cuadro O (FUP) Cuadro O-exclusiva (FUP)
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 Manual de sistema, 11/2009, A5E02486683-02 109
6.1.1.2 Instrucciones "Consultar flanco de señal ascendente de un operando" y "Consultar flanco de señal descendente de un operando"
Consultar flanco de señal ascendente de un operando y Consultar flanco de señal descendente de un operando
Contacto P: KOP Contacto N: KOP Cuadro P: FUP Cuadro N: FUP
Bobina P: KOP Bobina N: KOP Cuadro P=: FUP Cuadro N=: FUP
P_TRIG: KOP/FUP N_TRIG: KOP/FUP
Parámetro Tipo de
datos Descripción
M_BIT Bool Marca en la que se almacena el estado anterior de la entrada IN Bool Bit de entrada cuyo flanco debe detectarse OUT Bool Bit de salida que indica que se ha detectado un flanco CLK Bool Flujo de corriente o bit de entrada cuyo flanco debe detectarse Q Bool Salida que indica que se ha detectado un flanco
Contacto P: KOP
El estado de este contacto es TRUE (verdadero) cuando se detecta un flanco ascendente (OFF a ON) en el bit "IN" asignado. El estado lógico del contacto se combina entonces con el estado de entrada del flujo de corriente para activar el estado de salida del flujo de corriente. El contacto P puede disponerse en cualquier posición del segmento, excepto al final de una rama.
Contacto N: KOP
El estado de este contacto es TRUE (verdadero) cuando se detecta un flanco descendente (ON a OFF) en el bit de entrada asignado. El estado lógico del contacto se combina entonces con el estado de entrada del flujo de corriente para activar el estado de salida del flujo de corriente. El contacto N puede disponerse en cualquier posición del segmento, excepto al final de una rama.
Operaciones lógicas con bits • CONSULTA DE FLANCO • Bobina P:
• El bit asignado "OUT" es TRUE (verdadero) cuando se detecta un flanco ascendente (OFF a ON) en el flujo de corriente que entra a la bobina. El estado de entrada del flujo de corriente atraviesa la bobina como el estado de salida del flujo de corriente. La bobina P puede disponerse en cualquier posición del segmento.
• Bobina N: • El bit asignado "OUT" es TRUE (verdadero) cuando se detecta un flanco descendente (ON a OFF) en el flujo de corriente que entra a la bobina. El estado de entrada del flujo de corriente atraviesa la bobina como el estado de salida del flujo de corriente. La bobina N puede disponerse en cualquier posición del segmento.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
17
17
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 Manual de sistema, 11/2009, A5E02486683-02 109
6.1.1.2 Instrucciones "Consultar flanco de señal ascendente de un operando" y "Consultar flanco de señal descendente de un operando"
Consultar flanco de señal ascendente de un operando y Consultar flanco de señal descendente de un operando
Contacto P: KOP Contacto N: KOP Cuadro P: FUP Cuadro N: FUP
Bobina P: KOP Bobina N: KOP Cuadro P=: FUP Cuadro N=: FUP
P_TRIG: KOP/FUP N_TRIG: KOP/FUP
Parámetro Tipo de
datos Descripción
M_BIT Bool Marca en la que se almacena el estado anterior de la entrada IN Bool Bit de entrada cuyo flanco debe detectarse OUT Bool Bit de salida que indica que se ha detectado un flanco CLK Bool Flujo de corriente o bit de entrada cuyo flanco debe detectarse Q Bool Salida que indica que se ha detectado un flanco
Contacto P: KOP
El estado de este contacto es TRUE (verdadero) cuando se detecta un flanco ascendente (OFF a ON) en el bit "IN" asignado. El estado lógico del contacto se combina entonces con el estado de entrada del flujo de corriente para activar el estado de salida del flujo de corriente. El contacto P puede disponerse en cualquier posición del segmento, excepto al final de una rama.
Contacto N: KOP
El estado de este contacto es TRUE (verdadero) cuando se detecta un flanco descendente (ON a OFF) en el bit de entrada asignado. El estado lógico del contacto se combina entonces con el estado de entrada del flujo de corriente para activar el estado de salida del flujo de corriente. El contacto N puede disponerse en cualquier posición del segmento, excepto al final de una rama.
Operaciones lógicas con bits • INSTRUCCIONES DE COMPARACIÓN
• Las instrucciones de comparación se uNlizan para comparar dos valores de un mismo Npo de datos. Si la comparación de contactos KOP es TRUE (verdadera), se acNva el contacto. Si la comparación de cuadros FUP es TRUE (verdadera), la salida del cuadro es TRUE.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
18
18
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 126 Manual de sistema, 11/2009, A5E02486683-02
6.1.4 Comparación
KOP FUP
Las instrucciones de comparación se utilizan para comparar dos valores de un mismo tipo de datos. Si la comparación de contactos KOP es TRUE (verdadera), se activa el contacto. Si la comparación de cuadros FUP es TRUE (verdadera), la salida del cuadro es TRUE.
Tras hacer clic en la instrucción en el editor de programación, es posible seleccionar el tipo de comparación y el tipo de datos en las listas desplegables respectivas. Tipo de relación La comparación se cumple si:
== IN1 es igual a IN2 <> IN1 es diferente de IN2 >= IN1 es mayor o igual a IN2 <= IN1 es menor o igual a IN2 > IN1 es mayor que IN2 < IN1 es menor que IN2
Parámetro Tipo de datos Descripción IN1, IN2 SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal,
String, Char, Time, DTL, constante Valores que deben compararse
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 126 Manual de sistema, 11/2009, A5E02486683-02
6.1.4 Comparación
KOP FUP
Las instrucciones de comparación se utilizan para comparar dos valores de un mismo tipo de datos. Si la comparación de contactos KOP es TRUE (verdadera), se activa el contacto. Si la comparación de cuadros FUP es TRUE (verdadera), la salida del cuadro es TRUE.
Tras hacer clic en la instrucción en el editor de programación, es posible seleccionar el tipo de comparación y el tipo de datos en las listas desplegables respectivas. Tipo de relación La comparación se cumple si:
== IN1 es igual a IN2 <> IN1 es diferente de IN2 >= IN1 es mayor o igual a IN2 <= IN1 es menor o igual a IN2 > IN1 es mayor que IN2 < IN1 es menor que IN2
Parámetro Tipo de datos Descripción IN1, IN2 SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal,
String, Char, Time, DTL, constante Valores que deben compararse
Operaciones lógicas con bits • TEMPORIZADORES • Todos los temporizadores Nenen base de Nempo de 1ms, por lo que el valor de Nempo puede introducirse directamente independientemente del número de temporizador.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
19
19
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 112 Manual de sistema, 11/2009, A5E02486683-02
6.1.2 Temporizadores Las instrucciones con temporizadores se utilizan para crear retardos programados: ● TP: El temporizador Impulso genera un impulso con una duración predeterminada. ● TON: La salida Q del temporizador de retardo al conectar se activa al cabo de un tiempo
de retardo predeterminado. ● TOF: La salida Q del temporizador de retardo al desconectar se desactiva al cabo de un
tiempo de retardo predeterminado. ● TONR: La salida Q del acumulador de tiempo se activa al cabo de un tiempo de retardo
predeterminado. El tiempo transcurrido se acumula a lo largo de varios periodos de temporización hasta que la entrada R inicializa el tiempo transcurrido.
● RT: Inicializa un temporizador borrando los datos de tiempo almacenados en el bloque de datos instancia del temporizador indicado.
Todos los temporizadores utilizan una estructura almacenada en un bloque de datos para mantener los datos. El bloque de datos se asigna al colocar la instrucción de temporización en el editor. Al colocar instrucciones de temporización en un bloque de función es posible seleccionar la opción de bloque de datos multiinstancia. Los nombres de estructura de los temporizadores pueden diferir en las distintas estructuras, pero los datos de los temporizadores se encuentran en un bloque de datos individual y no requieren un bloque de datos propio para cada temporizador. Esto reduce el tiempo de procesamiento y la memoria de datos necesaria para gestionar los temporizadores. No hay interacción entre las estructuras de datos de los temporizadores en el bloque de datos multiinstancia compartido.
Los temporizadores TP, TON y TOF tienen los mismos parámetros de entrada y salida.
El temporizador TONR dispone adicionalmente de la entrada de reset R.Cree un "Nombre de temporizador" propio para designar el bloque de datos temporizador y describir el objetivo de este temporizador en el proceso.
"Nombre de temporizador" ----[ RT ]----
La instrucción RT inicializa el tiempo del temporizador indicado.
Parámetro Tipo de datos Descripción IN Bool Habilitar entrada del temporizador R Bool Poner a cero el tiempo transcurrido de TONR PT Bool Entrada que indica el tiempo predeterminado Q Bool Salida del temporizador ET Time Salida que indica el tiempo transcurrido Bloque de datos temporizador
DB Indica qué temporizador debe inicializarse con la instrucción RT
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 114 Manual de sistema, 11/2009, A5E02486683-02
Valores TIME Los valores PT (tiempo predeterminado) y ET (tiempo transcurrido) se almacenan en la memoria como enteros dobles con signo que representan milisegundos. Los datos TIME utilizan el identificador T# y pueden introducirse como unidad de tiempo simple "T#200ms" o como unidades de tiempo compuestas "T#2s_200ms". Tipo de datos
Tamaño Rangos válidos
TIME 32 bits Almacenado
como
T#-24d_20h_31m_23s_648ms hastaT#24d_20h_31m_23s_647ms -2.147.483.648 ms hasta +2.147.483.647 ms
Nota El rango negativo del tipo de datos TIME indicado arriba no puede utilizarse con las instrucciones de temporización. Los valores PT (tiempo predeterminado) negativos se ponen a cero cuando se ejecuta la instrucción de temporización. ET (tiempo transcurrido) es siempre un valor positivo.
TP: Cronograma de impulsos
TON: Cronograma de retardo al conectar
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 112 Manual de sistema, 11/2009, A5E02486683-02
6.1.2 Temporizadores Las instrucciones con temporizadores se utilizan para crear retardos programados: ● TP: El temporizador Impulso genera un impulso con una duración predeterminada. ● TON: La salida Q del temporizador de retardo al conectar se activa al cabo de un tiempo
de retardo predeterminado. ● TOF: La salida Q del temporizador de retardo al desconectar se desactiva al cabo de un
tiempo de retardo predeterminado. ● TONR: La salida Q del acumulador de tiempo se activa al cabo de un tiempo de retardo
predeterminado. El tiempo transcurrido se acumula a lo largo de varios periodos de temporización hasta que la entrada R inicializa el tiempo transcurrido.
● RT: Inicializa un temporizador borrando los datos de tiempo almacenados en el bloque de datos instancia del temporizador indicado.
Todos los temporizadores utilizan una estructura almacenada en un bloque de datos para mantener los datos. El bloque de datos se asigna al colocar la instrucción de temporización en el editor. Al colocar instrucciones de temporización en un bloque de función es posible seleccionar la opción de bloque de datos multiinstancia. Los nombres de estructura de los temporizadores pueden diferir en las distintas estructuras, pero los datos de los temporizadores se encuentran en un bloque de datos individual y no requieren un bloque de datos propio para cada temporizador. Esto reduce el tiempo de procesamiento y la memoria de datos necesaria para gestionar los temporizadores. No hay interacción entre las estructuras de datos de los temporizadores en el bloque de datos multiinstancia compartido.
Los temporizadores TP, TON y TOF tienen los mismos parámetros de entrada y salida.
El temporizador TONR dispone adicionalmente de la entrada de reset R.Cree un "Nombre de temporizador" propio para designar el bloque de datos temporizador y describir el objetivo de este temporizador en el proceso.
"Nombre de temporizador" ----[ RT ]----
La instrucción RT inicializa el tiempo del temporizador indicado.
Parámetro Tipo de datos Descripción IN Bool Habilitar entrada del temporizador R Bool Poner a cero el tiempo transcurrido de TONR PT Bool Entrada que indica el tiempo predeterminado Q Bool Salida del temporizador ET Time Salida que indica el tiempo transcurrido Bloque de datos temporizador
DB Indica qué temporizador debe inicializarse con la instrucción RT
Operaciones lógicas con bits • TEMPORIZADORES • Todos los temporizadores uNlizan una estructura almacenada en un bloque de datos para mantener los datos. El bloque de datos se asigna al colocar la instrucción de temporización en el editor.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
20
20
Operaciones lógicas con bits • TEMPORIZADORES • TP: El temporizador Impulso genera un impulso con una duración predeterminada.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
21
21
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 112 Manual de sistema, 11/2009, A5E02486683-02
6.1.2 Temporizadores Las instrucciones con temporizadores se utilizan para crear retardos programados: ● TP: El temporizador Impulso genera un impulso con una duración predeterminada. ● TON: La salida Q del temporizador de retardo al conectar se activa al cabo de un tiempo
de retardo predeterminado. ● TOF: La salida Q del temporizador de retardo al desconectar se desactiva al cabo de un
tiempo de retardo predeterminado. ● TONR: La salida Q del acumulador de tiempo se activa al cabo de un tiempo de retardo
predeterminado. El tiempo transcurrido se acumula a lo largo de varios periodos de temporización hasta que la entrada R inicializa el tiempo transcurrido.
● RT: Inicializa un temporizador borrando los datos de tiempo almacenados en el bloque de datos instancia del temporizador indicado.
Todos los temporizadores utilizan una estructura almacenada en un bloque de datos para mantener los datos. El bloque de datos se asigna al colocar la instrucción de temporización en el editor. Al colocar instrucciones de temporización en un bloque de función es posible seleccionar la opción de bloque de datos multiinstancia. Los nombres de estructura de los temporizadores pueden diferir en las distintas estructuras, pero los datos de los temporizadores se encuentran en un bloque de datos individual y no requieren un bloque de datos propio para cada temporizador. Esto reduce el tiempo de procesamiento y la memoria de datos necesaria para gestionar los temporizadores. No hay interacción entre las estructuras de datos de los temporizadores en el bloque de datos multiinstancia compartido.
Los temporizadores TP, TON y TOF tienen los mismos parámetros de entrada y salida.
El temporizador TONR dispone adicionalmente de la entrada de reset R.Cree un "Nombre de temporizador" propio para designar el bloque de datos temporizador y describir el objetivo de este temporizador en el proceso.
"Nombre de temporizador" ----[ RT ]----
La instrucción RT inicializa el tiempo del temporizador indicado.
Parámetro Tipo de datos Descripción IN Bool Habilitar entrada del temporizador R Bool Poner a cero el tiempo transcurrido de TONR PT Bool Entrada que indica el tiempo predeterminado Q Bool Salida del temporizador ET Time Salida que indica el tiempo transcurrido Bloque de datos temporizador
DB Indica qué temporizador debe inicializarse con la instrucción RT
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 114 Manual de sistema, 11/2009, A5E02486683-02
Valores TIME Los valores PT (tiempo predeterminado) y ET (tiempo transcurrido) se almacenan en la memoria como enteros dobles con signo que representan milisegundos. Los datos TIME utilizan el identificador T# y pueden introducirse como unidad de tiempo simple "T#200ms" o como unidades de tiempo compuestas "T#2s_200ms". Tipo de datos
Tamaño Rangos válidos
TIME 32 bits Almacenado
como
T#-24d_20h_31m_23s_648ms hastaT#24d_20h_31m_23s_647ms -2.147.483.648 ms hasta +2.147.483.647 ms
Nota El rango negativo del tipo de datos TIME indicado arriba no puede utilizarse con las instrucciones de temporización. Los valores PT (tiempo predeterminado) negativos se ponen a cero cuando se ejecuta la instrucción de temporización. ET (tiempo transcurrido) es siempre un valor positivo.
TP: Cronograma de impulsos
TON: Cronograma de retardo al conectar
Operaciones lógicas con bits • TEMPORIZADORES • TON: La salida Q del temporizador de retardo al conectar se acNva al cabo de un Nempo de retardo predeterminado.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
22
22
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 114 Manual de sistema, 11/2009, A5E02486683-02
Valores TIME Los valores PT (tiempo predeterminado) y ET (tiempo transcurrido) se almacenan en la memoria como enteros dobles con signo que representan milisegundos. Los datos TIME utilizan el identificador T# y pueden introducirse como unidad de tiempo simple "T#200ms" o como unidades de tiempo compuestas "T#2s_200ms". Tipo de datos
Tamaño Rangos válidos
TIME 32 bits Almacenado
como
T#-24d_20h_31m_23s_648ms hastaT#24d_20h_31m_23s_647ms -2.147.483.648 ms hasta +2.147.483.647 ms
Nota El rango negativo del tipo de datos TIME indicado arriba no puede utilizarse con las instrucciones de temporización. Los valores PT (tiempo predeterminado) negativos se ponen a cero cuando se ejecuta la instrucción de temporización. ET (tiempo transcurrido) es siempre un valor positivo.
TP: Cronograma de impulsos
TON: Cronograma de retardo al conectar
Operaciones lógicas con bits • TEMPORIZADORES • TOF: La salida Q del temporizador de retardo al desconectar se desacNva al cabo de un Nempo de retardo predeterminado. • Si IN cambia a TRUE durante el funcionamiento del temporizador, éste se inicializará y se detendra.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
23
23
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 Manual de sistema, 11/2009, A5E02486683-02 115
TOF: Cronograma de retardo al desconectar
TONR: Cronograma del acumulador de tiempo
� ,QVWUXFFLRQHV�E£VLFDV�� ����7HPSRUL]DGRUHV�
&RQWURODGRU�SURJUDPDEOH�6�������0DQXDO�GH�VLVWHPD�����������$�(������������ ����
��� 7HPSRUL]DGRUHV�/DV�LQVWUXFFLRQHV�FRQ�WHPSRUL]DGRUHV�VH�XWLOL]DQ�SDUD�FUHDU�UHWDUGRV�SURJUDPDGRV��(O�Q¼PHUR�GH�WHPSRUL]DGRUHV�TXH�SXHGHQ�XWLOL]DUVH�HQ�HO�SURJUDPD�GH�XVXDULR�HVW£�OLPLWDGR�VµOR�SRU�OD�FDQWLGDG�GH�PHPRULD�GLVSRQLEOH�HQ�OD�&38��&DGD�WHPSRUL]DGRU�XWLOL]D�XQD�HVWUXFWXUD�GH�'%�GHO�WLSR�GH�GDWRV�,(&B7LPHU�GH����E\WHV�SDUD�JXDUGDU�OD�LQIRUPDFLµQ�GHO�WHPSRUL]DGRU�HVSHFLILFDGD�HQFLPD�GH�OD�LQVWUXFFLµQ�GH�FXDGUR�R�ERELQD��67(3���FUHD�DXWRP£WLFDPHQWH�HO�'%�DO�LQWURGXFLU�OD�LQVWUXFFLµQ���������������������
7DEOD������� ,QVWUXFFLRQHV�FRQ�WHPSRUL]DGRUHV�
&XDGURV�.23���)83� %RELQDV�.23�
6&/� 'HVFULSFLµQ�
�
�
"IEC_Timer_0_DB".TP( IN:=_bool_in_, PT:=_time_in_, Q=>_bool_out_, ET=>_time_out_);
(O�WHPSRUL]DGRU�73�JHQHUD�XQ�LPSXOVR�FRQ�XQD�GXUDFLµQ�SUHGHWHUPLQDGD���
�
�
"IEC_Timer_0_DB".TON ( IN:=_bool_in_, PT:=_time_in_, Q=>_bool_out_, ET=>_time_out_);
(O�WHPSRUL]DGRU�721�SRQH�OD�VDOLGD�4�D�21�WUDV�XQ�WLHPSR�GH�UHWDUGR�SUHGHWHUPLQDGR���
�
�
"IEC_Timer_0_DB".TOF ( IN:=_bool_in_, PT:=_time_in_, Q=>_bool_out_, ET=>_time_out_);
(O�WHPSRUL]DGRU�72)�SRQH�OD�VDOLGD�4�D�2))�WUDV�XQ�WLHPSR�GH�UHWDUGR�SUHGHWHUPLQDGR���
�
�
"IEC_Timer_0_DB".TONR ( IN:=_bool_in_, R:=_bool_in_ PT:=_time_in_, Q=>_bool_out_, ET=>_time_out_);
(O�WHPSRUL]DGRU�7215�SRQH�OD�VDOLGD�4�D�21�WUDV�XQ�WLHPSR�GH�UHWDUGR�SUHGHWHUPLQDGR���(O�WLHPSR�WUDQVFXUULGR�VH�DFXPXOD�D�OR�ODUJR�GH�YDULRV�SHULRGRV�GH�WHPSRUL]DFLµQ�KDVWD�TXH�OD�HQWUDGD�5�LQLFLDOL]D�HO�WLHPSR�WUDQVFXUULGR��
6µOR�)83���
�
�
�6LQ�HTXLYDOHQFLD�HQ�6&/�� /D�ERELQD�37��&DUJDU�WHPSRUL]DGRU��FDUJD�XQ�QXHYR�YDORU�GH�WLHPSR�35(6(7��SUHGHWHUPLQDGR��HQ�HO�,(&B7LPHU�HVSHFLILFDGR��
6µOR�)83���
��
�6LQ�HTXLYDOHQFLD�HQ�6&/�� /D�ERELQD�57��,QLFLDOL]DU�WHPSRUL]DGRU��LQLFLDOL]D�HO�,(&B7LPHU�HVSHFLILFDGR��
�� 67(3���FUHD�HO�'%�DXWRP£WLFDPHQWH�DO�LQVHUWDU�OD�LQVWUXFFLµQ����� (Q�ORV�HMHPSORV�6&/���,(&B7LPHUB�B'%��HV�HO�QRPEUH�GHO�'%�GH�LQVWDQFLD���
Operaciones lógicas con bits • TEMPORIZADORES • TONR: La salida Q del acumulador de Nempo se acNva al cabo de un Nempo de retardo predeterminado. El Nempo transcurrido se acumula a lo largo de varios periodos de temporización hasta que la entrada R inicializa el Nempo transcurrido. • Si IN cambia a FALSE durante el funcionamiento del temporizador, éste se detendrá pero no se inicializará. Si IN vuelve a cambiar a TRUE, el temporizador comenzará a contar desde el valor de Nempo acumulado.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
24
24
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 Manual de sistema, 11/2009, A5E02486683-02 115
TOF: Cronograma de retardo al desconectar
TONR: Cronograma del acumulador de tiempo
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 112 Manual de sistema, 11/2009, A5E02486683-02
6.1.2 Temporizadores Las instrucciones con temporizadores se utilizan para crear retardos programados: ● TP: El temporizador Impulso genera un impulso con una duración predeterminada. ● TON: La salida Q del temporizador de retardo al conectar se activa al cabo de un tiempo
de retardo predeterminado. ● TOF: La salida Q del temporizador de retardo al desconectar se desactiva al cabo de un
tiempo de retardo predeterminado. ● TONR: La salida Q del acumulador de tiempo se activa al cabo de un tiempo de retardo
predeterminado. El tiempo transcurrido se acumula a lo largo de varios periodos de temporización hasta que la entrada R inicializa el tiempo transcurrido.
● RT: Inicializa un temporizador borrando los datos de tiempo almacenados en el bloque de datos instancia del temporizador indicado.
Todos los temporizadores utilizan una estructura almacenada en un bloque de datos para mantener los datos. El bloque de datos se asigna al colocar la instrucción de temporización en el editor. Al colocar instrucciones de temporización en un bloque de función es posible seleccionar la opción de bloque de datos multiinstancia. Los nombres de estructura de los temporizadores pueden diferir en las distintas estructuras, pero los datos de los temporizadores se encuentran en un bloque de datos individual y no requieren un bloque de datos propio para cada temporizador. Esto reduce el tiempo de procesamiento y la memoria de datos necesaria para gestionar los temporizadores. No hay interacción entre las estructuras de datos de los temporizadores en el bloque de datos multiinstancia compartido.
Los temporizadores TP, TON y TOF tienen los mismos parámetros de entrada y salida.
El temporizador TONR dispone adicionalmente de la entrada de reset R.Cree un "Nombre de temporizador" propio para designar el bloque de datos temporizador y describir el objetivo de este temporizador en el proceso.
"Nombre de temporizador" ----[ RT ]----
La instrucción RT inicializa el tiempo del temporizador indicado.
Parámetro Tipo de datos Descripción IN Bool Habilitar entrada del temporizador R Bool Poner a cero el tiempo transcurrido de TONR PT Bool Entrada que indica el tiempo predeterminado Q Bool Salida del temporizador ET Time Salida que indica el tiempo transcurrido Bloque de datos temporizador
DB Indica qué temporizador debe inicializarse con la instrucción RT
Operaciones lógicas con bits • TEMPORIZADORES • RT: Inicializa un temporizador borrando los datos de Nempo almacenados en el bloque de datos instancia del temporizador indicado.
• EJEMPLO 1 DE UTILIZACION DE TEMPORIZADORES • AcMvación directa de una salida una vez transcurrido un Mempo.
• Un uso inmediato de los temporizadores, consiste en uNlizar la salida Q, de Npo binario, para acNvar de forma directa, una vez que se ha superado el Nempo de preselección PT, elementos de programación en formato de bit como salidas, marcas o cualquier otra combinación lógica.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
25
25
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 112 Manual de sistema, 11/2009, A5E02486683-02
6.1.2 Temporizadores Las instrucciones con temporizadores se utilizan para crear retardos programados: ● TP: El temporizador Impulso genera un impulso con una duración predeterminada. ● TON: La salida Q del temporizador de retardo al conectar se activa al cabo de un tiempo
de retardo predeterminado. ● TOF: La salida Q del temporizador de retardo al desconectar se desactiva al cabo de un
tiempo de retardo predeterminado. ● TONR: La salida Q del acumulador de tiempo se activa al cabo de un tiempo de retardo
predeterminado. El tiempo transcurrido se acumula a lo largo de varios periodos de temporización hasta que la entrada R inicializa el tiempo transcurrido.
● RT: Inicializa un temporizador borrando los datos de tiempo almacenados en el bloque de datos instancia del temporizador indicado.
Todos los temporizadores utilizan una estructura almacenada en un bloque de datos para mantener los datos. El bloque de datos se asigna al colocar la instrucción de temporización en el editor. Al colocar instrucciones de temporización en un bloque de función es posible seleccionar la opción de bloque de datos multiinstancia. Los nombres de estructura de los temporizadores pueden diferir en las distintas estructuras, pero los datos de los temporizadores se encuentran en un bloque de datos individual y no requieren un bloque de datos propio para cada temporizador. Esto reduce el tiempo de procesamiento y la memoria de datos necesaria para gestionar los temporizadores. No hay interacción entre las estructuras de datos de los temporizadores en el bloque de datos multiinstancia compartido.
Los temporizadores TP, TON y TOF tienen los mismos parámetros de entrada y salida.
El temporizador TONR dispone adicionalmente de la entrada de reset R.Cree un "Nombre de temporizador" propio para designar el bloque de datos temporizador y describir el objetivo de este temporizador en el proceso.
"Nombre de temporizador" ----[ RT ]----
La instrucción RT inicializa el tiempo del temporizador indicado.
Parámetro Tipo de datos Descripción IN Bool Habilitar entrada del temporizador R Bool Poner a cero el tiempo transcurrido de TONR PT Bool Entrada que indica el tiempo predeterminado Q Bool Salida del temporizador ET Time Salida que indica el tiempo transcurrido Bloque de datos temporizador
DB Indica qué temporizador debe inicializarse con la instrucción RT
Operaciones lógicas con bits • EJEMPLO 2 DE UTILIZACION DE TEMPORIZADORES
• Asociación de contactos a un temporizador. • Al no ser temporizadores hardware y no exisNr un direccionamiento directo a una zona de memoria específica para ellos, ya no es posible asignar, como se hacía en otros PLC's, contactos a los temporizadores mediante su idenNficador: T1, T2, T3, etc. No obstante, para hacer algo similar se puede recurrir a diferentes técnicas.
• Opción 1: Uso de una marca asociada al temporizador. Cuando la marca es "verdadera", los contactos asociados invierten su valor lógico, acNvando o desacNvando los segmentos en los que se encuentran programados.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
26
26
Operaciones lógicas con bits • EJEMPLO 3 DE UTILIZACION DE TEMPORIZADORES
• Uso de un solo temporizador para acciones a diferentes valores de Mempo. Lo visto anteriormente requiere usar un temporizador por cada conmutación temporizada que se desee realizar. Es decir, si se desea acNvar una salida a los 5 segundos y otra a los 10 segundos, es necesario uNlizar dos temporizadores independientes configurados, cada uno de ellos, con sus respecNvos Nempos de preselección.
• Sin embargo, si se lee el valor de la salida ET del temporizador a a través de una variable o a través de DB a instancia, es posible realizar acciones a diferentes valores de Nempo de un mismo temporizador.
• Opción 1: Comparar el valor de una variable asignada a la salida ET del temporizador.
• La variable debe tener el formato de doble entero (DInt) y debe escribirse en la salida ET del temporizador. El Nempo se almacena en ella en formato de milisegundos. Por tanto, las operaciones de comparación deben hacerse teniendo esto en cuenta.
• En el siguiente ejemplo se muestra como la salida Q0.6 se acNva si el Nempo de temporizador es mayor o igual a 3 segundos (3000ms) y la Q0.7 lo hace si el Nempo es superior o igual a 8 segundos (8000ms).
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
27
27
Operaciones lógicas con bits • EJEMPLO 3 DE UTILIZACION DE TEMPORIZADORES
• Opción 1: Comparar el valor de una variable asignada a la salida ET del temporizador.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
28
28
Operaciones lógicas con bits • EJEMPLO 3 DE UTILIZACION DE TEMPORIZADORES
• Opción 2: Comparar el valor de la salida ET del temporizador. • De igual forma que para la salida Q del del DB a instancia, es posible leer la salida ET (que Nene formato DInt) y operar con ella en las comparaciones sin necesidad de crear ninguna variable intermedia.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
29
29
En las comparaciones se puede uNlizar una constate numérica en ms o directamente emplear el dato en formato TIME:
Ejemplos de programación
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
30
30
• TAREA DE CONTROL DE UNA PRENSA. • Una prensa con disposiNvo de protección solo se acNvará con un pulsador START de inicio S3 si está cerrada la rejilla protectora. Este
estado se vigila con un sensor de rejilla protectora cerrada B1. • Si es así, se acciona una válvula distribuidora 5/2 M0 para el cilindro de la prensa, para que se pueda prensar un molde de plásNco. • La prensa debe elevarse de nuevo al accionar el pulsador de PARADA DE EMERGENCIA (NC), al dejar de responder el sensor de rejilla
protectora B1 o al responder el sensor de cilindro B2 reNrado. • Si el sensor de cilindro reMrado B2 responde, la prensa debe elevarse de nuevo después de un Mempo de prensado de 5 segundos.
• Lista de asignación: Direcc Símbolo Comentario %I 0.1 PARADA EMERG Pulsador de parada de emergencia NC %I 0.3 S3 Pulsador de inicio S3 %I 0.4 B1 Sensor rejilla protectora cerrada %I 0.5 B2 Sensor cilindro reNrado %Q 0.0 M0 Extraer cilindro A
PARADA DE EMERGENCIA
Operaciones lógicas con bits • CONTADORES
• Las instrucciones con contadores se uNlizan para contar eventos del programa internos y eventos del proceso externos: • CTU es un contador ascendente. • CTD es un contador descendente. • CTUD es un contador ascendente/descendente.
• Todo contador uNliza una estructura almacenada en un bloque de datos para conservar sus datos. El bloque de datos se asigna al colocar la instrucción de contaje en el editor.
• Estas instrucciones uNlizan contadores por souware cuya frecuencia de contaje máxima está limitada por la frecuencia de ejecución del OB en el que están contenidas. El OB en el que se depositan las instrucciones debe ejecutarse con suficiente frecuencia para detectar todas las transiciones de las entradas CU o CD.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
31
31
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 116 Manual de sistema, 11/2009, A5E02486683-02
6.1.3 Contadores
6.1.3.1 Contadores Las instrucciones con contadores se utilizan para contar eventos del programa internos y eventos del proceso externos: ● CTU es un contador ascendente. ● CTD es un contador descendente. ● CTUD es un contador ascendente/descendente. Todo contador utiliza una estructura almacenada en un bloque de datos para conservar sus datos. El bloque de datos se asigna al colocar la instrucción de contaje en el editor. Estas instrucciones utilizan contadores por software cuya frecuencia de contaje máxima está limitada por la frecuencia de ejecución del OB en el que están contenidas. El OB en el que se depositan las instrucciones debe ejecutarse con suficiente frecuencia para detectar todas las transiciones de las entradas CU o CD. Para operaciones de contaje rápido, consulte la instrucción CTRL_HSC. Al colocar instrucciones con contadores en un bloque de función es posible seleccionar la opción de bloque de datos multiinstancia. Los nombres de estructura de los contadores pueden diferir en las distintas estructuras, pero los datos de los contadores se encuentran en un bloque de datos individual y no requieren un bloque de datos propio para cada contador. Esto reduce el tiempo de procesamiento y la memoria de datos necesaria para los contadores. No hay interacción entre las estructuras de datos de los contadores en el bloque de datos multiinstancia compartido.
Seleccione el tipo de datos del valor de contaje en la lista desplegable debajo del nombre del cuadro.
Cree un "Nombre de contador" propio para designar el bloque de datos contador y describir el objetivo de este contador en el proceso.
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 116 Manual de sistema, 11/2009, A5E02486683-02
6.1.3 Contadores
6.1.3.1 Contadores Las instrucciones con contadores se utilizan para contar eventos del programa internos y eventos del proceso externos: ● CTU es un contador ascendente. ● CTD es un contador descendente. ● CTUD es un contador ascendente/descendente. Todo contador utiliza una estructura almacenada en un bloque de datos para conservar sus datos. El bloque de datos se asigna al colocar la instrucción de contaje en el editor. Estas instrucciones utilizan contadores por software cuya frecuencia de contaje máxima está limitada por la frecuencia de ejecución del OB en el que están contenidas. El OB en el que se depositan las instrucciones debe ejecutarse con suficiente frecuencia para detectar todas las transiciones de las entradas CU o CD. Para operaciones de contaje rápido, consulte la instrucción CTRL_HSC. Al colocar instrucciones con contadores en un bloque de función es posible seleccionar la opción de bloque de datos multiinstancia. Los nombres de estructura de los contadores pueden diferir en las distintas estructuras, pero los datos de los contadores se encuentran en un bloque de datos individual y no requieren un bloque de datos propio para cada contador. Esto reduce el tiempo de procesamiento y la memoria de datos necesaria para los contadores. No hay interacción entre las estructuras de datos de los contadores en el bloque de datos multiinstancia compartido.
Seleccione el tipo de datos del valor de contaje en la lista desplegable debajo del nombre del cuadro.
Cree un "Nombre de contador" propio para designar el bloque de datos contador y describir el objetivo de este contador en el proceso.
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 116 Manual de sistema, 11/2009, A5E02486683-02
6.1.3 Contadores
6.1.3.1 Contadores Las instrucciones con contadores se utilizan para contar eventos del programa internos y eventos del proceso externos: ● CTU es un contador ascendente. ● CTD es un contador descendente. ● CTUD es un contador ascendente/descendente. Todo contador utiliza una estructura almacenada en un bloque de datos para conservar sus datos. El bloque de datos se asigna al colocar la instrucción de contaje en el editor. Estas instrucciones utilizan contadores por software cuya frecuencia de contaje máxima está limitada por la frecuencia de ejecución del OB en el que están contenidas. El OB en el que se depositan las instrucciones debe ejecutarse con suficiente frecuencia para detectar todas las transiciones de las entradas CU o CD. Para operaciones de contaje rápido, consulte la instrucción CTRL_HSC. Al colocar instrucciones con contadores en un bloque de función es posible seleccionar la opción de bloque de datos multiinstancia. Los nombres de estructura de los contadores pueden diferir en las distintas estructuras, pero los datos de los contadores se encuentran en un bloque de datos individual y no requieren un bloque de datos propio para cada contador. Esto reduce el tiempo de procesamiento y la memoria de datos necesaria para los contadores. No hay interacción entre las estructuras de datos de los contadores en el bloque de datos multiinstancia compartido.
Seleccione el tipo de datos del valor de contaje en la lista desplegable debajo del nombre del cuadro.
Cree un "Nombre de contador" propio para designar el bloque de datos contador y describir el objetivo de este contador en el proceso.
Operaciones lógicas con bits • CONTADORES 20
/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
32
32
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 116 Manual de sistema, 11/2009, A5E02486683-02
6.1.3 Contadores
6.1.3.1 Contadores Las instrucciones con contadores se utilizan para contar eventos del programa internos y eventos del proceso externos: ● CTU es un contador ascendente. ● CTD es un contador descendente. ● CTUD es un contador ascendente/descendente. Todo contador utiliza una estructura almacenada en un bloque de datos para conservar sus datos. El bloque de datos se asigna al colocar la instrucción de contaje en el editor. Estas instrucciones utilizan contadores por software cuya frecuencia de contaje máxima está limitada por la frecuencia de ejecución del OB en el que están contenidas. El OB en el que se depositan las instrucciones debe ejecutarse con suficiente frecuencia para detectar todas las transiciones de las entradas CU o CD. Para operaciones de contaje rápido, consulte la instrucción CTRL_HSC. Al colocar instrucciones con contadores en un bloque de función es posible seleccionar la opción de bloque de datos multiinstancia. Los nombres de estructura de los contadores pueden diferir en las distintas estructuras, pero los datos de los contadores se encuentran en un bloque de datos individual y no requieren un bloque de datos propio para cada contador. Esto reduce el tiempo de procesamiento y la memoria de datos necesaria para los contadores. No hay interacción entre las estructuras de datos de los contadores en el bloque de datos multiinstancia compartido.
Seleccione el tipo de datos del valor de contaje en la lista desplegable debajo del nombre del cuadro.
Cree un "Nombre de contador" propio para designar el bloque de datos contador y describir el objetivo de este contador en el proceso.
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 116 Manual de sistema, 11/2009, A5E02486683-02
6.1.3 Contadores
6.1.3.1 Contadores Las instrucciones con contadores se utilizan para contar eventos del programa internos y eventos del proceso externos: ● CTU es un contador ascendente. ● CTD es un contador descendente. ● CTUD es un contador ascendente/descendente. Todo contador utiliza una estructura almacenada en un bloque de datos para conservar sus datos. El bloque de datos se asigna al colocar la instrucción de contaje en el editor. Estas instrucciones utilizan contadores por software cuya frecuencia de contaje máxima está limitada por la frecuencia de ejecución del OB en el que están contenidas. El OB en el que se depositan las instrucciones debe ejecutarse con suficiente frecuencia para detectar todas las transiciones de las entradas CU o CD. Para operaciones de contaje rápido, consulte la instrucción CTRL_HSC. Al colocar instrucciones con contadores en un bloque de función es posible seleccionar la opción de bloque de datos multiinstancia. Los nombres de estructura de los contadores pueden diferir en las distintas estructuras, pero los datos de los contadores se encuentran en un bloque de datos individual y no requieren un bloque de datos propio para cada contador. Esto reduce el tiempo de procesamiento y la memoria de datos necesaria para los contadores. No hay interacción entre las estructuras de datos de los contadores en el bloque de datos multiinstancia compartido.
Seleccione el tipo de datos del valor de contaje en la lista desplegable debajo del nombre del cuadro.
Cree un "Nombre de contador" propio para designar el bloque de datos contador y describir el objetivo de este contador en el proceso.
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 116 Manual de sistema, 11/2009, A5E02486683-02
6.1.3 Contadores
6.1.3.1 Contadores Las instrucciones con contadores se utilizan para contar eventos del programa internos y eventos del proceso externos: ● CTU es un contador ascendente. ● CTD es un contador descendente. ● CTUD es un contador ascendente/descendente. Todo contador utiliza una estructura almacenada en un bloque de datos para conservar sus datos. El bloque de datos se asigna al colocar la instrucción de contaje en el editor. Estas instrucciones utilizan contadores por software cuya frecuencia de contaje máxima está limitada por la frecuencia de ejecución del OB en el que están contenidas. El OB en el que se depositan las instrucciones debe ejecutarse con suficiente frecuencia para detectar todas las transiciones de las entradas CU o CD. Para operaciones de contaje rápido, consulte la instrucción CTRL_HSC. Al colocar instrucciones con contadores en un bloque de función es posible seleccionar la opción de bloque de datos multiinstancia. Los nombres de estructura de los contadores pueden diferir en las distintas estructuras, pero los datos de los contadores se encuentran en un bloque de datos individual y no requieren un bloque de datos propio para cada contador. Esto reduce el tiempo de procesamiento y la memoria de datos necesaria para los contadores. No hay interacción entre las estructuras de datos de los contadores en el bloque de datos multiinstancia compartido.
Seleccione el tipo de datos del valor de contaje en la lista desplegable debajo del nombre del cuadro.
Cree un "Nombre de contador" propio para designar el bloque de datos contador y describir el objetivo de este contador en el proceso.
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 Manual de sistema, 11/2009, A5E02486683-02 117
Parámetro Tipo de datos Descripción CU, CD Bool Contaje ascendente o descendente, en
incrementos de uno R (CTU, CTUD) Bool Poner a cero el valor del contador LOAD (CTD, CTUD) Bool Control de carga del valor predeterminado PV SInt, Int, DInt, USInt, UInt,
UDInt Valor de contaje predeterminado
Q, QU Bool Es verdadero si CV >= PV QD Bool Es verdadero si CV <= 0 CV SInt, Int, DInt, USInt, UInt,
UDInt Valor de contaje actual
El rango numérico de valores de contaje depende del tipo de datos seleccionado. Si el valor de contaje es un entero sin signo, es posible contar hacia atrás hasta cero o hacia delante hasta el límite del rango. Si el valor de contaje es un entero con signo, es posible contar hacia atrás hasta el límite de entero negativo y contar hacia delante hasta el límite de entero positivo. CTU: CTU se incrementa en 1 cuando el valor del parámetro CU cambia de 0 a 1. Si el valor del parámetro CV (valor de contaje actual) es mayor o igual al valor del parámetro PV (valor de contaje predeterminado), el parámetro de salida del contador Q = 1. Si el valor del parámetro de reset R cambia de 0 a 1, el valor de contaje actual se pone a 0. La figura siguiente muestra un cronograma de la instrucción CTU con un valor de contaje de entero sin signo (donde PV = 3).
Curso Autómatas Programables IES San Roque (BADAJOZ)
UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.
José María Delgado Casado
2.5. Contadores.
En el siguiente ejemplo del S7-1200 puede observarse el funcionamiento de un contador incremental y su diagrama asociado:
Operaciones lógicas con bits • CONTADORES
• CTU: CTU se incrementa en 1 cuando el valor del parámetro CU cambia de 0 a 1.
• Si el valor del parámetro CV (valor de contaje actual) es mayor o igual al valor del parámetro PV (valor de contaje predeterminado), el parámetro de salida del contador Q = 1.
• Si el valor del parámetro de reset R cambia de 0 a 1, el valor de contaje actual se pone a 0.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
33
33
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 116 Manual de sistema, 11/2009, A5E02486683-02
6.1.3 Contadores
6.1.3.1 Contadores Las instrucciones con contadores se utilizan para contar eventos del programa internos y eventos del proceso externos: ● CTU es un contador ascendente. ● CTD es un contador descendente. ● CTUD es un contador ascendente/descendente. Todo contador utiliza una estructura almacenada en un bloque de datos para conservar sus datos. El bloque de datos se asigna al colocar la instrucción de contaje en el editor. Estas instrucciones utilizan contadores por software cuya frecuencia de contaje máxima está limitada por la frecuencia de ejecución del OB en el que están contenidas. El OB en el que se depositan las instrucciones debe ejecutarse con suficiente frecuencia para detectar todas las transiciones de las entradas CU o CD. Para operaciones de contaje rápido, consulte la instrucción CTRL_HSC. Al colocar instrucciones con contadores en un bloque de función es posible seleccionar la opción de bloque de datos multiinstancia. Los nombres de estructura de los contadores pueden diferir en las distintas estructuras, pero los datos de los contadores se encuentran en un bloque de datos individual y no requieren un bloque de datos propio para cada contador. Esto reduce el tiempo de procesamiento y la memoria de datos necesaria para los contadores. No hay interacción entre las estructuras de datos de los contadores en el bloque de datos multiinstancia compartido.
Seleccione el tipo de datos del valor de contaje en la lista desplegable debajo del nombre del cuadro.
Cree un "Nombre de contador" propio para designar el bloque de datos contador y describir el objetivo de este contador en el proceso.
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 Manual de sistema, 11/2009, A5E02486683-02 117
Parámetro Tipo de datos Descripción CU, CD Bool Contaje ascendente o descendente, en
incrementos de uno R (CTU, CTUD) Bool Poner a cero el valor del contador LOAD (CTD, CTUD) Bool Control de carga del valor predeterminado PV SInt, Int, DInt, USInt, UInt,
UDInt Valor de contaje predeterminado
Q, QU Bool Es verdadero si CV >= PV QD Bool Es verdadero si CV <= 0 CV SInt, Int, DInt, USInt, UInt,
UDInt Valor de contaje actual
El rango numérico de valores de contaje depende del tipo de datos seleccionado. Si el valor de contaje es un entero sin signo, es posible contar hacia atrás hasta cero o hacia delante hasta el límite del rango. Si el valor de contaje es un entero con signo, es posible contar hacia atrás hasta el límite de entero negativo y contar hacia delante hasta el límite de entero positivo. CTU: CTU se incrementa en 1 cuando el valor del parámetro CU cambia de 0 a 1. Si el valor del parámetro CV (valor de contaje actual) es mayor o igual al valor del parámetro PV (valor de contaje predeterminado), el parámetro de salida del contador Q = 1. Si el valor del parámetro de reset R cambia de 0 a 1, el valor de contaje actual se pone a 0. La figura siguiente muestra un cronograma de la instrucción CTU con un valor de contaje de entero sin signo (donde PV = 3).
La figura muestra un cronograma de la instrucción CTU con un valor de contaje de entero sin signo (donde PV = 3).
Operaciones lógicas con bits • CONTADORES
• CTD: CTD se decrementa en 1 cuando el valor del parámetro CD cambia de 0 a 1.
• Si el valor del parámetro CV (valor de contaje actual) es menor o igual a 0, el parámetro de salida del contador Q = 1.
• Si el valor del parámetro LOAD cambia de 0 a 1, el valor del parámetro PV (valor predeterminado) se carga en el contador como nuevo CV (valor de contaje actual).
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
34
34
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 116 Manual de sistema, 11/2009, A5E02486683-02
6.1.3 Contadores
6.1.3.1 Contadores Las instrucciones con contadores se utilizan para contar eventos del programa internos y eventos del proceso externos: ● CTU es un contador ascendente. ● CTD es un contador descendente. ● CTUD es un contador ascendente/descendente. Todo contador utiliza una estructura almacenada en un bloque de datos para conservar sus datos. El bloque de datos se asigna al colocar la instrucción de contaje en el editor. Estas instrucciones utilizan contadores por software cuya frecuencia de contaje máxima está limitada por la frecuencia de ejecución del OB en el que están contenidas. El OB en el que se depositan las instrucciones debe ejecutarse con suficiente frecuencia para detectar todas las transiciones de las entradas CU o CD. Para operaciones de contaje rápido, consulte la instrucción CTRL_HSC. Al colocar instrucciones con contadores en un bloque de función es posible seleccionar la opción de bloque de datos multiinstancia. Los nombres de estructura de los contadores pueden diferir en las distintas estructuras, pero los datos de los contadores se encuentran en un bloque de datos individual y no requieren un bloque de datos propio para cada contador. Esto reduce el tiempo de procesamiento y la memoria de datos necesaria para los contadores. No hay interacción entre las estructuras de datos de los contadores en el bloque de datos multiinstancia compartido.
Seleccione el tipo de datos del valor de contaje en la lista desplegable debajo del nombre del cuadro.
Cree un "Nombre de contador" propio para designar el bloque de datos contador y describir el objetivo de este contador en el proceso.
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 118 Manual de sistema, 11/2009, A5E02486683-02
CTD: CTD se decrementa en 1 cuando el valor del parámetro CD cambia de 0 a 1. Si el valor del parámetro CV (valor de contaje actual) es menor o igual a 0, el parámetro de salida del contador Q = 1. Si el valor del parámetro LOAD cambia de 0 a 1, el valor del parámetro PV (valor predeterminado) se carga en el contador como nuevo CV (valor de contaje actual). La figura siguiente muestra un cronograma de la instrucción CTD con un valor de contaje de entero sin signo (donde PV = 3).
CTUD: CTUD se incrementa o decrementa en 1 cuando el estado lógico de las entradas de contaje ascendente (CU) o descendente (CD) cambia de 0 a 1. Si el valor del parámetro CV (valor de contaje actual) es mayor o igual al valor del parámetro PV (valor predeterminado), el parámetro de salida del contador QU = 1. Si el valor del parámetro CV es menor o igual a cero, el parámetro de salida del contador QD = 1. Si el valor del parámetro LOAD cambia de 0 a 1, el valor del parámetro PV (valor predeterminado) se carga en el contador como nuevo CV (valor de contaje actual). Si el valor del parámetro de reset R cambia de 0 a 1, el valor de contaje actual se pone a 0. La figura siguiente muestra un cronograma de la instrucción CTUD con un valor de contaje de entero sin signo (donde PV = 4).
La figura muestra un cronograma de la instrucción CTD con un valor de contaje de entero sin signo (donde PV = 3).
Operaciones lógicas con bits • CONTADORES • CTUD: CTUD se incrementa o decrementa en 1 cuando el estado lógico de las entradas de contaje ascendente (CU) o descendente (CD) cambia de 0 a 1. • Si el valor del parámetro CV (valor de contaje actual) es mayor o igual al valor del
parámetro PV (valor predeterminado), el parámetro de salida del contador QU = 1. • Si el valor del parámetro CV es menor o igual a cero, el parámetro de salida del
contador QD = 1. • Si el valor del parámetro LOAD cambia de 0 a 1, el valor del parámetro PV (valor
predeterminado) se carga en el contador como nuevo CV (valor de contaje actual). • Si el valor del parámetro de reset R cambia de 0 a 1, el valor de contaje actual se
pone a 0.
20/10/14
TEMA 5 OPERA
CIONES BÁS
ICAS
DE PR
OGR
AMAC
IÓN
35
35
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 116 Manual de sistema, 11/2009, A5E02486683-02
6.1.3 Contadores
6.1.3.1 Contadores Las instrucciones con contadores se utilizan para contar eventos del programa internos y eventos del proceso externos: ● CTU es un contador ascendente. ● CTD es un contador descendente. ● CTUD es un contador ascendente/descendente. Todo contador utiliza una estructura almacenada en un bloque de datos para conservar sus datos. El bloque de datos se asigna al colocar la instrucción de contaje en el editor. Estas instrucciones utilizan contadores por software cuya frecuencia de contaje máxima está limitada por la frecuencia de ejecución del OB en el que están contenidas. El OB en el que se depositan las instrucciones debe ejecutarse con suficiente frecuencia para detectar todas las transiciones de las entradas CU o CD. Para operaciones de contaje rápido, consulte la instrucción CTRL_HSC. Al colocar instrucciones con contadores en un bloque de función es posible seleccionar la opción de bloque de datos multiinstancia. Los nombres de estructura de los contadores pueden diferir en las distintas estructuras, pero los datos de los contadores se encuentran en un bloque de datos individual y no requieren un bloque de datos propio para cada contador. Esto reduce el tiempo de procesamiento y la memoria de datos necesaria para los contadores. No hay interacción entre las estructuras de datos de los contadores en el bloque de datos multiinstancia compartido.
Seleccione el tipo de datos del valor de contaje en la lista desplegable debajo del nombre del cuadro.
Cree un "Nombre de contador" propio para designar el bloque de datos contador y describir el objetivo de este contador en el proceso.
Instrucciones de programación 6.1 Instrucciones básicas
Controlador programable S7-1200 118 Manual de sistema, 11/2009, A5E02486683-02
CTD: CTD se decrementa en 1 cuando el valor del parámetro CD cambia de 0 a 1. Si el valor del parámetro CV (valor de contaje actual) es menor o igual a 0, el parámetro de salida del contador Q = 1. Si el valor del parámetro LOAD cambia de 0 a 1, el valor del parámetro PV (valor predeterminado) se carga en el contador como nuevo CV (valor de contaje actual). La figura siguiente muestra un cronograma de la instrucción CTD con un valor de contaje de entero sin signo (donde PV = 3).
CTUD: CTUD se incrementa o decrementa en 1 cuando el estado lógico de las entradas de contaje ascendente (CU) o descendente (CD) cambia de 0 a 1. Si el valor del parámetro CV (valor de contaje actual) es mayor o igual al valor del parámetro PV (valor predeterminado), el parámetro de salida del contador QU = 1. Si el valor del parámetro CV es menor o igual a cero, el parámetro de salida del contador QD = 1. Si el valor del parámetro LOAD cambia de 0 a 1, el valor del parámetro PV (valor predeterminado) se carga en el contador como nuevo CV (valor de contaje actual). Si el valor del parámetro de reset R cambia de 0 a 1, el valor de contaje actual se pone a 0. La figura siguiente muestra un cronograma de la instrucción CTUD con un valor de contaje de entero sin signo (donde PV = 4).
La figura muestra un cronograma de la instrucción CTUD con un valor de contaje de entero sin signo (donde PV = 4).