Transcript

!"#$ & rlnclplos bslcos de programacln. vlsln rcuca S7-1200 13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 1 '()*+" lnLroduccln a la programacln del auLmaLauenlcln del slsLema de conLrol - uescrlpclones llLerales lunclones algebralcas Lsquemas de relesulagramas lglcos ulagramas de u[o CrafceLuenlr las varlables que lnLervlenen y aslgnarles dlrecclones de memorlaLengua[es de programacln ulagrama de conLacLos ulagrama de funclones Lengua[es de alLo nlvelvlsln rcuca S7-1200 Crganlzacln de programas 1lpos de mdulos 13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 2 ,(-./)0++*1( $ 2$ 3./4.$#$+*1( )" 5678SlsLemas y recursos envuelLos en la Lransferencla de lnformacln que rodean al auLmaLa 13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 3 kCCLSC SIS1LMA CLkA1IVC kCCLSADCk IN1LkIACL L]S MLMCkIAkCGkAMA MCuLLC SlS1 CCn18CL UNIDAD DL kCGkAMACICN: -Lengua[e rogr. -Ld|tor de rogr. As|gnac|n de D|recc|ones kCGkAMA 8INAkIC Mon|tor SLALLS DL LMLkGLNCIA An||s|s Lspec|hcac|ones ,(-./)0++*1( $ 2$ 3./4.$#$+*1( )" 5678odrlamos dlvldlr la programacln del auLmaLa en varlos pasos :uenlr el slsLema de conLrol ( que debe hacer, en que orden, eLc.): dlagrama de u[o, la descrlpcln llLeral o un grafo C8AlCL1.ldenucar las senales de enLrada y sallda del auLmaLa.8epresenLar el slsLema de conLrol medlanLe un modelo, lndlcando Lodas las funclones que lnLervlenen, las relaclones enLre ellas, y la secuencla que deben segulr. Algebralca (lnsLrucclones llLerales) o grca (slmbolos grcos).Aslgnar las dlrecclones de enLrada/sallda o lnLernas del auLmaLa a las correspondlenLes del modelo.Codlcar la represenLacln del modelo. Lengua[e de programacln.Cargar el programa en la memorla del auLmaLa desde la unldad de programacln.uepurar el programa y obLener una copla de segurldad. 13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 4 ,(-./)0++*1( $ 2$ 3./4.$#$+*1( )" 5678Lsquema del desarrollo de un proceso conLrolado por un auLmaLa13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 3 Introduccin a la programacin de APIs (PLCs) Esquema del desarrollo de un proceso controlado por un autmata Documentacin del proceso: - Memoria de funcionamiento - Planos - Etc. Interpretacin del proceso a controlar Determinacin de E/S, temporizadores, contadores, etc., necesarios Eleccin del autmata Asignacin de E/S, temporizadores, contadores, etc., necesarios INICIO Introduccin a la programacin de APIs (PLCs) Esquema del desarrollo de un proceso controlado por un autmata - Esquema de conexionado E/S al Autmata. - Montaje FIN - Esquema elctrico: - de potencia - de proceso Programacin : - Diagrama - Lista de instrucciones - Etc. - Autmata : -puesta en funcionamiento - Plano distribucin componentes del automatismo - Puesta en modo RUN - Proceso a Controlar 9":*(*+*1( )"2 8*8-"#$ )" +/(-./2 uenlcln del slsLema de conLrolSlsLemas sln comple[ldad lengua[e vulgar(descrlp. LlLeral)PerramlenLa de represenLacln basadas en slmbolos(+ comple[os)Claslcacln segun los slmbolos uullzados:roposlclonal : descrlpclones llLerales.Algebralcas : funclones booleanas y arlLmeucas.Craca : esquemas de conLacLos, dlagramas lglcos o funclones lglcas, ordlnogramas, Lecnlcas C8AlCL1uescrlpclones llLeralesLa descrlpcln llLeral de un proceso y de su conLrol puede hacerse enumerando llLeralmenLe las acclones a desarrollar por el mlsmo, expuesLas secuenclalmenLe y con lndlcacln de las condlclones de hablllLacln o valldacln en cada caso.LxhausuvamenLe o no dene blen. Sl se hace, dlncll comprensln. Se complemenLa con oLras formas de represenLacln 13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 6 9":*(*+*1( )"2 8*8-"#$ )" +/(-./2 uenlcln del slsLema de conLrollunclones algebralcas Las funclones algebralcas de cada una de las salldas se obuenen:blen dlrecLamenLe de la descrlpcln llLeral del proceso a conLrolaro blen se apllcan meLodos de slnLesls basados en el lgebra de 8oole (Lablas de verdad, karnaugh, eLc.).ulncll de anallzar y slnLeuzar slsLemas secuenclales. LlmlLado a la represenLacln de comblnaclones de varlables lndependlenLes del uempo (condlclones de alarma, operaclones arlLmeucas con varlables analglcas, eLc.)Lsquemas de relesCrlgen: en la represenLaclones elecLromecnlcas de slsLemas de mando represenLacln de slsLemas senclllos: senales lglcas blnarlas Lodo- nada (dlglLales), o bloques secuenclales predenldos, como Lemporlzadores y conLadores.ueclenclas en cuanLo a la represenLacln de funclones secuenclales comple[as y sobre Lodo en la manlpulacln de senales dlglLales de varlos blLs (por e[emplo, las obLenldas de una conversln A/u).uullzado por elecLrlclsLas o lngenleros con formacln elecLrlca13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 7 9":*(*+*1( )"2 8*8-"#$ )" +/(-./2 Lsquema de reles 13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 8 9":*(*+*1( )"2 8*8-"#$ )" +/(-./2 ulagramas lglcosLsLe upo de represenLacln del slsLema de conLrol se uullza en la documenLacln de las especlcaclones y represenLacln de los mlsmosLn muy pocos casos los usuarlos nales de auLmaLas uullzan esLa represenLacln13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 9 Definicin del sistema de control Diagramas lgicos Este tipo de representacin del sistema de control se utiliza en la documentacin de las especificaciones y representacin de los mismos En muy pocos casos los usuarios finales de autmatas utilizan esta representacin 9":*(*+*1( )"2 8*8-"#$ )" +/(-./2 ulagramas de u[oCrganlgrama y u[ograma, es un slsLema de represenLacln que se basa en una serle de slmbolos que segun un convenlo esLablecldo uenen un deLermlnado slgnlcado.13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 10 1CMA uL uLClSlCnLS SI NC ACClCnLSlnlClC lln 2 nlveles:nlvel 1: secuencla de acclones a reallzar represenLar el funclonamlenLo general del slsLemanlvel 2:especlcadas las acclones en forma de lnsLruccln: lnsLrucclones enLendlbles dlrecLamenLe por el auLmaLa o en forma de funclones lglcas.9":*(*+*1( )"2 8*8-"#$ )" +/(-./2 CrafceL(CraphedeComande LLape 1ransluon,cuya Lraduccln llLeral es Crco de Crden LLapa 1ranslcln)es una secuencla de eLapas que uenen asocladas unas deLermlnadas acclones a reallzar sobre el proceso [unLo con las condlclones o Lranslclones que provocan que se produzca el paso de una eLapa a oLra"normallzado:lnLernauonal LlecLroLechnlcal Commlslon lLC 848una de las me[ores herramlenLas para represenLar auLomausmos secuenclales13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 11 9":*(*. 2$8 ;$.*$ $8*4($.2"8 )*."++*/("8 )" #"#/.*$osLerlormenLe se aslgnan las dlrecclones nslcas a esLas varlables13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 14 Definir las variables que intervienen y asignarles direcciones de memoria Posteriormente se asignan las direcciones fsicas a estas variables Adems de estas variables: necesitare un contador que cuente los periodos de temporizacin. En las tablas anteriores este contador no se ha tenido en consideracin. Adems de esLas varlables: neceslLare un conLador que cuenLe los perlodos de Lemporlzacln. Ln las Lablas anLerlores esLe conLador no se ha Lenldo en conslderacln.6"(40$?"8 )" 3./4.$#$+*1( Con[unLo de lnsLrucclones y/o slmbolos que esLn dlsponlbles para escrlblr el programa, se denomlna lengua[e de programacln"13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 13 Lenguajes de Programacin Conjunto de instrucciones y/o smbolos que estn disponibles para escribir el programa, se denomina lenguaje de programacin Si unidad de programacin acepta directamente la representacin del sist. de control, se carga en la CPU. Si no hay que traducirla al lenguaje de programacin pertinente. Sl unldad de programacln acepLa dlrecLamenLe la represenLacln del slsL. de conLrol, se carga en la Cu. Sl no hay que Lraduclrla al lengua[e de programacln perunenLe.6"(40$?"8 )" 3./4.$#$+*1( kC (esquema de conLacLos) es un lengua[e de programacln grco. Su represenLacln se basa en esquemas de clrculLos.lu (dlagrama de funclones) es un lengua[e de programacln que se basa en los slmbolos lglcos grcos empleados en el lgebra booleana.SCL (sLrucLured conLrol language) es un lengua[e de programacln de alLo nlvel basado en.13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 16 6"(40$?"8 )" 3./4.$#$+*1( ulagrama de conLacLos.Ls un lengua[e grco procedenLe del lengua[e de reles que en base slmbolos que represenLan conLacLos, bloques funclonales, eLc. codlcan la secuencla de conLrol.ulagrama de funclones uerlva de la represenLacln lglca uullzada por los Lecnlcos en elecLrnlca dlglLal13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 17 Diagrama de contactos. Diagrama de funciones Es un lenguaje grfico procedente del lenguaje de rels que en base smbolos que representan contactos, bloques funcionales, etc. codifican la secuencia de control.Diagrama de funciones: deriva de la representacin lgica utilizada por los tcnicos en electrnica digital Definicin del sistema de control Diagramas lgicos Este tipo de representacin del sistema de control se utiliza en la documentacin de las especificaciones y representacin de los mismos En muy pocos casos los usuarios finales de autmatas utilizan esta representacin 6"(40$?"8 )" 3./4.$#$+*1( Lengua[es de alLo nlvelLlsLa de lnsLrucclones, dlagramas de conLacLos,... lnsuclenLes para programar apllcaclones comple[as para auLmaLas de gama medla y alLa.PerramlenLas de lngenlerla: S7-SCL: lengua[e de alLo nlvel que se aseme[a al ascal M7-roC/C++: LnLorno 8orland C/C++ y depurador muluLarea.Casl Lodos los fabrlcanLes de auLmaLas dlsponen de esLe upo de herramlenLas que permlLen programar en 8aslc, C, ascal, lorLran, eLc. medlanLe el uso de los lnLerpreLes o complladores respecuvos. LsLas herramlenLas permlLen resolver Lareas de clculo clenuco de alLa resolucln, claslcaclones y LraLamlenLo de daLos, esLadlsucas, eLc., con acceso a subruunas especlcas de lengua[es lnformucos.13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 18 @*8*1( 5.A+-*+$ BCDEFGG Lengua[es de programacln- para el S7-1200 kC (esquema de conLacLos) es un lengua[e de programacln grco. Su represenLacln se basa en esquemas de clrculLos.lu (dlagrama de funclones) es un lengua[e de programacln que se basa en los slmbolos lglcos grcos empleados en el lgebra booleana.SCL (sLrucLured conLrol language) es un lengua[e de programacln de alLo nlvel basado en LexLo. Al crear un bloque lglco, se debe selecclonar el lengua[e de programacln que emplear dlcho bloque.Ll programa de usuarlo puede emplear bloques lglcos creados con cualqulera de los lengua[es de programacln. 13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 19 @*8*1( 5.A+-*+$ BCDEFGG Lengua[es de programacln- para el S7-1200 kC (esquema de conLacLos) es un lengua[e de programacln grco. Su represenLacln se basa en esquemas de clrculLos.lu (dlagrama de funclones) es un lengua[e de programacln que se basa en los slmbolos lglcos grcos empleados en el lgebra booleana.SCL (sLrucLured conLrol language) es un lengua[e de programacln de alLo nlvel basado en LexLo. Al crear un bloque lglco, se debe selecclonar el lengua[e de programacln que emplear dlcho bloque.Ll programa de usuarlo puede emplear bloques lglcos creados con cualqulera de los lengua[es de programacln. 13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 20 @*8*1( 5.A+-*+$ BCDEFGG kC (esquema de conLacLos) Los elemenLos de un esquema de clrculLos, Lales como los conLacLos normalmenLe cerrados y normalmenLe ablerLos, asl como las boblnas, se comblnan para formar segmenLos. kC ofrece lnsLrucclones con cuadros para numerosas funclones, p. e[. maLemucas, Lemporlzadores, conLadores y Lransferencla.1odo segmenLo kC debe Lermlnar con una boblna o cuadro. 13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 21 Principios bsicos de programacin 6.5 Lenguaje de programacin Controlador programable S7-1200 Manual de sistema, 04/2012, A5E02486683-06159 Al crear un bloque lgico, se debe seleccionar el lenguaje de programacin que emplear dicho bloque.El programa de usuario puede emplear bloques lgicos creados con cualquiera de los lenguajes de programacin.6.5.1Esquema de contactos (KOP) Los elementos de un esquema de circuitos, tales como los contactos normalmente cerrados y normalmente abiertos, as como las bobinas, se combinan para formar segmentos. Para crear la lgica de operaciones complejas, es posible insertar ramas para los circuitos paralelos. Las ramas paralelas se abren hacia abajo o se conectan directamente a la barra de alimentacin. Las ramas se terminan hacia arriba. KOP ofrece instrucciones con cuadros para numerosas funciones, p. ej. matemticas, temporizadores, contadores y transferencia.STEP 7 no limita el nmero de instrucciones (filas y columnas) de un segmento KOP. Nota Todo segmento KOP debe terminar con una bobina o cuadro. Tenga en cuenta las reglas siguientes al crear segmentos KOP: *No se permite programar ramas que puedan ocasionar un flujo invertido de la corriente. H GE FC D Z B A *No se permite programar ramas que causen cortocircuitos. C Z B A Principios bsicos de programacin 6.5 Lenguaje de programacin Controlador programable S7-1200 Manual de sistema, 04/2012, A5E02486683-06159 Al crear un bloque lgico, se debe seleccionar el lenguaje de programacin que emplear dicho bloque.El programa de usuario puede emplear bloques lgicos creados con cualquiera de los lenguajes de programacin.6.5.1Esquema de contactos (KOP) Los elementos de un esquema de circuitos, tales como los contactos normalmente cerrados y normalmente abiertos, as como las bobinas, se combinan para formar segmentos. Para crear la lgica de operaciones complejas, es posible insertar ramas para los circuitos paralelos. Las ramas paralelas se abren hacia abajo o se conectan directamente a la barra de alimentacin. Las ramas se terminan hacia arriba. KOP ofrece instrucciones con cuadros para numerosas funciones, p. ej. matemticas, temporizadores, contadores y transferencia.STEP 7 no limita el nmero de instrucciones (filas y columnas) de un segmento KOP. Nota Todo segmento KOP debe terminar con una bobina o cuadro. Tenga en cuenta las reglas siguientes al crear segmentos KOP: *No se permite programar ramas que puedan ocasionar un flujo invertido de la corriente. H GE FC D Z B A *No se permite programar ramas que causen cortocircuitos. C Z B A Principios bsicos de programacin 6.5 Lenguaje de programacin Controlador programable S7-1200 Manual de sistema, 04/2012, A5E02486683-06159 Al crear un bloque lgico, se debe seleccionar el lenguaje de programacin que emplear dicho bloque.El programa de usuario puede emplear bloques lgicos creados con cualquiera de los lenguajes de programacin.6.5.1Esquema de contactos (KOP) Los elementos de un esquema de circuitos, tales como los contactos normalmente cerrados y normalmente abiertos, as como las bobinas, se combinan para formar segmentos. Para crear la lgica de operaciones complejas, es posible insertar ramas para los circuitos paralelos. Las ramas paralelas se abren hacia abajo o se conectan directamente a la barra de alimentacin. Las ramas se terminan hacia arriba. KOP ofrece instrucciones con cuadros para numerosas funciones, p. ej. matemticas, temporizadores, contadores y transferencia.STEP 7 no limita el nmero de instrucciones (filas y columnas) de un segmento KOP. Nota Todo segmento KOP debe terminar con una bobina o cuadro. Tenga en cuenta las reglas siguientes al crear segmentos KOP: *No se permite programar ramas que puedan ocasionar un flujo invertido de la corriente. H GE FC D Z B A *No se permite programar ramas que causen cortocircuitos. C Z B A @*8*1( 5.A+-*+$ BCDEFGG lu (dlagrama de funclones)Al lgual que kC, lu es un lengua[e de programacln grco. La represenLacln de la lglca se basa en los slmbolos lglcos grcos del lgebra booleana.ara crear la lglca de operaclones comple[as, se lnserLa ramas paralelas enLre los cuadros.Las funclones maLemucas y oLras operaclones comple[as pueden represenLarse dlrecLamenLe en comblnacln con los cuadros lglcos. 13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 22 Principios bsicos de programacin 6.5 Lenguaje de programacin Controlador programable S7-1200 160Manual de sistema, 04/2012, A5E02486683-06 6.5.2Diagrama de funciones (FUP) Al igual que KOP, FUP es un lenguaje de programacin grfico. La representacin de la lgica se basa en los smbolos lgicos grficos del lgebra booleana. Para crear la lgica de operaciones complejas, inserte ramas paralelas entre los cuadros. Las funciones matemticas y otras operaciones complejas pueden representarse directamente en combinacin con los cuadros lgicos. STEP 7 no limita el nmero de instrucciones (filas y columnas) de un segmento FUP. 6.5.3SCL El lenguaje de control estructurado (SCL, Structured Control Language) es un lenguaje de programacin de alto nivel basado en PASCAL para las CPU de SlMATlC S7. SCL soporta la estructura de bloques de STEP 7 (Pgina 152). Tambin es posible incluir bloques de programa escritos en SCL con bloques de programa escritos en KOP y FUP.Las instrucciones de SCL emplean operadores de programacin estndar, p. ej. para asignacin (:=) o para funciones matemticas (+ para la suma, - para la resta, * para la multiplicacin y / para la divisin). SCL tambin utiliza operaciones de control de programa PASCAL estndar, tales como lF-THEN-ELSE, CASE, REPEAT-UNTlL, GOTO y RETURN. Es posible utilizar cualquier referencia PASCAL para elementos sintcticos del lenguaje de programacin SCL. Muchas otras instrucciones de SCL, como los temporizadores y contadores, se corresponden con las instrucciones de KOP y FUP. Para ms informacin sobre determinadas instrucciones, vanse las instrucciones especficas de las secciones correspondientes a lnstrucciones bsicas (Pgina 179) e lnstrucciones avanzadas (Pgina 257).Es posible designar cualquier tipo de bloque (OB, FB o FC) para utilizar el lenguaje de programacin en el momento de crear el bloque. STEP 7 cuenta con un editor de programas SCL que incluye los elementos siguientes: *Seccin de interface para definir los parmetros del bloque lgico *Seccin de cdigo para el cdigo del programa *rbol de instrucciones que contiene las instrucciones SCL soportadas por la CPU El cdigo SCL para la instruccin se introduce directamente en la seccin de cdigo. Para obtener instrucciones ms complejas, basta con arrastrar las instrucciones SCL del rbol de instrucciones y soltarlas en el programa. Tambin se puede emplear cualquier editor de texto para crear un programa SCL y, a continuacin, importar el archivo a STEP 7. @*8*1( 5.A+-*+$ BCDEFGG SCL (sLrucLured conLrol language)Ll lengua[e de conLrol esLrucLurado (SCL, SLrucLured ConLrol Language) es un lengua[e de programacln de alLo nlvel basado en ASCAL Las lnsLrucclones de SCL emplean operadores de programacln esLndar, p. e[. para aslgnacln (:=) o para funclones maLemucas (+ para la suma, - para la resLa, * para la mulupllcacln y / para la dlvlsln).SCL Lamblen uullza operaclones de conLrol de programa ASCAL esLndar, Lales como ll-1PLn-LLSL, CASL, 8LLA1-un1lL, CC1C y 8L1u8n. Ls poslble uullzar cualquler referencla ASCAL para elemenLos slnLcucos del lengua[e de programacln SCL. 13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 23 Principios bsicos de programacin 6.5 Lenguaje de programacin Controlador programable S7-1200 Manual de sistema, 04/2012, A5E02486683-06161 En la seccin del bloque lgico SCL se pueden declarar los tipos de parmetros siguientes: *lnput, Output, lnOut y Ret_Val: estos parmetros definen las variables de entrada, las variables de salida y el valor de retorno del bloque lgico. El nombre de la variable introducida en este punto se emplea de forma local durante la ejecucin del bloque lgico. Normalmente, no se emplea el nombre de variables globales en la tabla de variables. *Estticos (solo FBs; la figura de arriba corresponde a un FC): las variables estticas se utilizan para almacenar resultados intermedios estticos en el bloque de datos instancia. Los datos estticos se retienen hasta que se sobrescriben, lo cual puede ocurrir despus de varios ciclos. Los nombres de los bloques, los cuales se llaman en este bloque lgico como multiinstancia, tambin se almacenan en los datos locales estticos. *Temp: estos parmetros son variables temporales que se emplean durante la ejecucin del bloque lgico. Si se llama el bloque lgico SCL desde otro bloque lgico, los parmetros del bloque lgico SCL aparecen como entradas o salidas. En este ejemplo, las variables de "Start" y "On" (de la tabla de variables de proyecto) se corresponden con "StartStopSwitch" y "RunYesNo" en la tabla de declaracin del programa SCL. Construir una expresin SCL Una expresin SCL es una frmula para calcular un valor. La expresin consiste en operandos y operadores (p. ej. *, /, + o -). Los operandos pueden ser variables, constantes o expresiones. H.4$(*I$+*1( )" 3./4.$#$8 Al crear el programa de usuarlo para las Lareas de auLomauzacln, las lnsLrucclones del programa se lnserLan en bloques lglcos (C8, l8 o lC). ue manera esLndar esL dlsponlble el bloque de organlzacln Maln [C81]. 13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 24 OB (bloques de organizacin) FB (bloque de funcin) tiene un bloque de datos de instancia para almacenamiento temporal FC (funcin)No tiene bloque de datos de instancia DB (bloque de datos) para acceso global y almacenamiento permanente H.4$(*I$+*1( )" 3./4.$#$8 rogramacln llneal un programa llneal e[ecuLa Lodas las lnsLrucclones de la Larea de auLomauzacln de forma secuenclal, es declr, una Lras oLra. CeneralmenLe, el programa llneal deposlLa Lodas las lnsLrucclones del programa en un C8 de clclo (como C8 1), encargado de la e[ecucln clcllca del programa.13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 23 H.4$(*I$+*1( )" 3./4.$#$8 rogramacln esLrucLurada Ln el caso de Lareas de conLrol ampllas, se subdlvlde el programa en bloques de programa ms pequenos, abarcables y ordenados por funclones. LsLo presenLa la venLa[a de permlur la comprobacln de las parLes del programa de forma lndependlenLe y e[ecuLarlas como una funcln global duranLe el funclonamlenLo. Los bloques de programa deben ser llamados por el bloque de orden superlor. Sl se deLecLa un n de bloque (8L), el programa conunuar e[ecuLndose en el bloque que llama, deLrs de la llamada.13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 26 H.4$(*I$+*1( )" 3./4.$#$8 rogramacln esLrucLurada ulsenando l8s y lCs que e[ecuLen Lareas generlcas, se crean bloques lglcos modulares.Ll programa de usuarlo se esLrucLura luego, de manera que oLros bloques lglcos llamen esLos bloques modulares reuullzables. Ll bloque que efecLua la llamada Lransere los parmeLros especlcos del dlsposluvo al bloque llamado. Cuando un bloque lglco llama oLro bloque lglco, la Cu e[ecuLa la lglca de programa conLenlda en el bloque llamado. una vez nallzada la e[ecucln del bloque llamado, la Cu reanuda la e[ecucln del bloque que ha efecLuado la llamada. Ll procesamlenLo conunua con la e[ecucln de la lnsLruccln slgulenLe a la llamada de bloque.13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 27 Programacin cada vez ms sencilla 6.1 Fcil diseo del programa de usuario Easy Book 80Manual de producto, 04/2011, A5E02486778-02 ABloque que llama (o bloque interrumpido) BFB o BC llamado (u OB que interrumpe) Ejecucin del programa lnstruccin (o evento que interrumpe) que inicia la ejecucin de otro bloque Ejecucin del programa OB, FB, FCOB, FB, FC Fin del bloque (regresa al bloque que llama) Las llamadas de bloque pueden anidarse para crear una estructura ms modular. En el ejemplo siguiente, la profundidad de anidamiento es de 3: El OB cclico ms 3 niveles de llamadas de bloques lgicos. lnicio del ciclo Profundidad de anidamiento FB 1OB 1FC 1FB 1 FC 21 FB 2DB 1FC 1DBDB DB Creando bloques lgicos genricos que pueden reutilizarse en el programa de usuario, es posible simplificar el diseo y la implementacin del programa de usuario.*Se pueden crear bloques lgicos reutilizables para tareas estndar, tales como el control de una bomba o motor. Tambin es posible almacenar estos bloques lgicos genricos en una librera, de manera que puedan ser utilizados por diferentes aplicaciones o soluciones. *El programa de usuario puede dividirse en componentes modulares para las tareas funcionales, facilitando as su comprensin y gestin. Los componentes modulares no slo ayudan a estandarizar el diseo del programa, sino que tambin pueden facilitar y agilizar la actualizacin o modificacin de la lgica del programa. *La creacin de componentes modulares simplifica la depuracin del programa. Dividiendo el programa completo en segmentos de programa modulares, es posible comprobar las funciones de cada bloque lgico a medida que se va desarrollando. *Utilizando un diseo modular basado en tareas funcionales especficas se puede reducir el tiempo necesario para la ejecucin de toda la aplicacin. H.4$(*I$+*1( )" 3./4.$#$8 rogramacln esLrucLurada 13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 28 FCG|oba| Data 8|ock G|oba| Data 8|ock OBFBFCFCFBInstance Data 8|ockInstance Data 8|ock La profundidad mxima de anidamiento es de 16 H.4$(*I$+*1( )" 3./4.$#$8 rogramacln esLrucLurada Creando bloques lglcos generlcos que pueden reuullzarse en el programa de usuarlo, es poslble slmpllcar el dlseno y la lmplemenLacln del programa de usuarlo.Se pueden crear bloques lglcos reuullzables para Lareas esLndar, Lales como el conLrol de una bomba o moLor. 1amblen es poslble almacenar esLos bloques lglcos generlcos en una llbrerla, de manera que puedan ser uullzados por dlferenLes apllcaclones o soluclones.Ll programa de usuarlo puede dlvldlrse en componenLes modulares para las Lareas funclonales, faclllLando asl su comprensln y gesun. Los componenLes modulares no slo ayudan a esLandarlzar el dlseno del programa, slno que Lamblen pueden faclllLar y aglllzar la acLuallzacln o modlcacln de la lglca del programa.La creacln de componenLes modulares slmpllca la depuracln del programa. ulvldlendo el programa compleLo en segmenLos de programa modulares, es poslble comprobar las funclones de cada bloque lglco a medlda que se va desarrollando.uullzando un dlseno modular basado en Lareas funclonales especlcas se puede reduclr el uempo necesarlo para la e[ecucln de Loda la apllcacln.13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 29 !*3/8 )" #1)02/8 8loque de organlzacln (C8)un bloque de organlzacln (C8) reacclona a un evenLo especlco en la Cu y puede lnLerrumplr la e[ecucln del programa de usuarlo. Ll bloque predeLermlnado para la e[ecucln clcllca del programa de usuarlo (C8 1) ofrece la esLrucLura bslca y es el unlco bloque lglco que se requlere para el programa de usuarlo. Sl se lncluyen oLros C8s en el programa, esLos lnLerrumpen la e[ecucln del C8 1. Los dems C8s e[ecuLan funclones especlcas, Lales como Lareas de arranque, procesamlenLo de alarmas y LraLamlenLo de errores, o e[ecucln de un cdlgo de programa especlco en deLermlnados lnLervalos. Los C8s son conLrolados por evenLos. un evenLo, p. e[. una alarma de dlagnsuco o un lnLervalo, hace que la Cu e[ecuLe un C8. Algunos C8s uenen evenLos de arranque y comporLamlenLo en arranque predenldos.La Cu deLermlna el orden de procesamlenLo de evenLos de alarma segun la prlorldad aslgnada a cada C8. 1odo evenLo uene una prlorldad de procesamlenLo propla. Ll nlvel de prlorldad correspondlenLe denLro de una clase de prlorldad deLermlna el orden en que se e[ecuLan los C8. 13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 30 !*3/8 )" #1)02/8 8loque de organlzacln (C8)13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 31 Ciclo Arranque Hardware Retardo OB1OB100OB200FCFBD8 Cola de ejecucin de OBs FBD8 OB202OB80FCAlarma error tiempo Alarma proceso Alarma cclica OB201OB82Alarma error diagn. Alarmas L| acop|am|ento de| evento a| C8 se puede rea||zar durante |a conhgurac|n as| como en runnme !*3/8 )" #1)02/8 Iunc|n (IC)una funcln (lC) es un bloque lglco que, por lo general, reallza una operacln especlca en un con[unLo de valores de enLrada. La lC almacena los resulLados de esLa operacln en poslclones de memorla. or e[emplo, las lC se uullzan para e[ecuLar operaclones esLndar y reuullzables (como clculos maLemucos) o funclones Lecnolglcas (como para conLroles lndlvlduales que uullzan lglca de blLs). una lC Lamblen se puede llamar varlas veces en dlferenLes punLos de un programa. LsLo faclllLa la programacln de Lareas que se replLen con frecuencla.una lC no uene nlngun bloque de daLos lnsLancla asoclado (u8). La lC usa la plla de daLos locales para los daLos Lemporales uullzados para calcular la operacln. Los daLos Lemporales no se almacenan. ara almacenar los daLos de forma permanenLe es preclso aslgnar el valor de sallda a una poslcln de memorla global, p. e[. el rea de marcas o un u8 global.13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 32 !*3/8 )" #1)02/8 8|oque de func|n (I8)un bloque de funcln (l8) es un bloque lglco que uullza un bloque de daLos lnsLancla para sus parmeLros y daLos esLucos. Los l8s uenen una memorla varlable ublcada en un bloque de daLos (u8) o u8 "lnsLancla". Ll u8 lnsLancla ofrece un bloque de memorla asoclado a esa lnsLancla (o llamada) del l8 y almacena daLos una vez que haya nallzado el l8.Ls poslble asoclar dlsunLos u8s de lnsLancla a dlferenLes llamadas del l8. Los u8s lnsLancla permlLen uullzar un l8 generlco para conLrolar varlos dlsposluvos. 13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 33 !*3/8 )" #1)02/8 8|oque de func|n (I8)La gura slgulenLe muesLra un C8 que llama un l8 Lres veces, uullzando un bloque de daLos dlferenLe para cada llamada. LsLa esLrucLura permlLe que un l8 generlco conLrole varlos dlsposluvos slmllares (p. e[. moLores), aslgnando un bloque de daLos lnsLancla dlferenLe a cada llamada de los dlsunLos dlsposluvos. Cada u8 lnsLancla almacena los daLos (p. e[. velocldad, uempo de aceleracln y uempo de operacln LoLal) de un dlsposluvo en parucular.13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 34 Principios bsicos de programacin 6.3 Utilizar bloques para estructurar el programa Controlador programable S7-1200 156Manual de sistema, 04/2012, A5E02486683-06 Utilizar un solo FB con DBs La figura siguiente muestra un OB que llama un FB tres veces, utilizando un bloque de datos diferente para cada llamada. Esta estructura permite que un FB genrico controle varios dispositivos similares (p. ej. motores), asignando un bloque de datos instancia diferente a cada llamada de los distintos dispositivos. Cada DB instancia almacena los datos (p. ej. velocidad, tiempo de aceleracin y tiempo de operacin total) de un dispositivo en particular.DB 201DB 202DB 203FB 22, DB 201FB 22, DB 202FB 22, DB 203OB1FB 22 En este ejemplo, el FB 22 controla tres dispositivos diferentes. El DB 201 almacena los datos operativos del primer dispositivo, el DB 202, los del segundo y, el DB 203, los del tercero.6.3.4Bloque de datos (DB) Los bloques de datos (DB) se crean en el programa de usuario para almacenar los datos de los bloques lgicos. Todos los bloques del programa de usuario pueden acceder a los datos en un DB global. En cambio, un DB instancia almacena los datos de un bloque de funcin (FB) especfico.Los datos almacenados en un DB no se borran cuando finaliza la ejecucin del bloque lgico asociado. Hay dos tipos de DBs, a saber: *Un DB global almacena los datos de los bloques lgicos en el programa. Cualquier OB, FB o FC puede acceder a los datos en un DB global. *Un DB instancia almacena los datos de un FB especfico. La estructura de los datos en un DB instancia refleja los parmetros (lnput, Output e lnOut) y los datos estticos del FB. (La memoria temporal del FB no se almacena en el DB instancia.) Nota Aunque el DB instancia refleja los datos de un FB especfico, cualquier bloque lgico puede acceder a los datos en un DB instancia. Ln esLe e[emplo, el l8 22 conLrola Lres dlsposluvos dlferenLes. Ll u8 201 almacena los daLos operauvos del prlmer dlsposluvo, el u8 202, los del segundo y, el u8 203, los del Lercero. !*3/8 )" #1)02/8 8|oque de datos (D8)Los bloques de daLos (u8) se crean en el programa de usuarlo para almacenar los daLos de los bloques lglcos. 1odos los bloques del programa de usuarlo pueden acceder a los daLos en un u8 global. Ln camblo, un u8 lnsLancla almacena los daLos de un bloque de funcln (l8) especlco.Los daLos almacenados en un u8 no se borran cuando nallza la e[ecucln del bloque lglco asoclado. Pay dos upos de u8s, a saber:un u8 global almacena los daLos de los bloques lglcos en el programa. Cualquler C8, l8 o lC puede acceder a los daLos en un u8 global.un u8 lnsLancla almacena los daLos de un l8 especlco. La esLrucLura de los daLos en un u8 lnsLancla ree[a los parmeLros (lnpuL, CuLpuL e lnCuL) y los daLos esLucos del l8. (La memorla Lemporal del l8 no se almacena en el u8 lnsLancla.)13/10/14 1LMA 4 8lnCllCS 8SlCCS uL 8CC8AMAClCn. vlSlCn 8C1lCA S7-1200 33


Top Related