Programar PAC Opto22 Usando FORTH nl Linux (3 / 4 stap)

Stap 3: ESTRUCTURA generaal DE UN PROGRAMA


ESTRUCTURA GENERAAL DE UN PROGRAMA

Ya teniendo una herramienta basica para gestion del PAC, se procedio een indagar un poco mas nl como es la estructura de un programa para PAC de Opto22.La informacion obtenida fue la siguiente:

  • Los archivos con extensie .crn1, .crn2, .crn3, deben tener todos como
    nombre como se "bautizo" el programa. * El archivo .crn1 contains una linea: bestandsnaam. " PNAME ";" donde PNAME es el nombre con que se "bautizo el programa. Las otras lineas de este archivo geen cambiaron nunca con diferentes programas que se crearon

  • El archivo .crn2 contains los meest de las "and" que conforman un
    programa, las variabelen que se utilizan, y la asignacion de dennen I/O

  • El archvo .crn3 inicializa las tarra, las variabelen y el hardware de ik / 0

  • Debera existir VN archivo con extensie .ccd para cada una de las tarra
    que conforman el programa, cuyo nombre es el que aparece nl el archivo .crn2

Se desarrollo un programa ejemplo "PARPADEO", que cuenta con dos and: una enciende y apaga una salida digitale e incrementa una variabele contador, la otra tarea revisa si la variabele es deelbaar exactamente entre 5 (modulo 5) y enciende el leidde cuando esta condicion es valida, de lo contrario, lo apagara.

PARPADEO.crn1

Nl este archivo puede notarse la linea de codigo donde esta el nombre del programa, "PARPADEO". Las demas lineas parecen algun tipo de asignacion de espacios de memoria para el hardware, variabelen e I/O. Geen se notaron cambios nl estas lineas para diferentes programas hechos y analizados.

_END NIEUWE $$$. RUN

: BESTANDSNAAM. " PARPADEO ";"

1 0 $VAR * _HSV_SEMA

1024 0 $VAR * _HSV_TEMP

200 0 $VAR * _HSV_INIT_IO

0 IVAR ^ _HNV_INIT_IO

PARPADEO.crn2

Nl este archivo se encontraron tres cosas:

-Tarra que conforman el programa: LaptopBat, parpadeolento, _INI_IO. PowerUp es una tarea que viene por defecto, neen puede ser renombrada, ni borrada. parpadeolento fue una tarea creada nl el programa e _INIT_IO probablemente es una tarea interna encargada de inicializar el hardware automaticamente al iniciar un programa

-Variabelen que se utilizaron en el programa: variablecontador y variablemodulo

-Alias de los pines del hardware a meest mas amigables nl el programa, nl este caso los pines digitales 0 y 7 fueron asignados een los alias: SALIDA_DIGITAL_1 y SALIDA_DIGITAL_4

0 taak & _INIT_IO

0 taak & Powerup

0 taak & parpadeolento

0 IVAR ^ variablecontador

0 IVAR ^ variablemodulo

$0000000000000000... 32769 1.000000 0.010000 0.000000 2001 $7F000001 0 MBOARD % RACK_PROPIO SPOINT 0.0 UITGANG 0% RACK_PROPIO

0 PUNT ~ SALIDA_DIGITAL_1

SPOINT 0.0 OUTPUT 7% RACK_PROPIO

0 PUNT ~ SALIDA_DIGITAL_4

PARPADEO.crn3

Este archivo es un poco mas largo. Al parecer nl la parte inicial se crean se agrupan las tarra, los diferentes tipos de variabelen, nl pakket y is el laatste se puede ver la inicializacion de las variabelen variablecontador y variablemodulo een 0. Tambien puede notarse que por defecto los pines digitales estan configurados como entrada '0', y los que seran usados como salida debera escribirse un '1' ($... 0081 dennen 0 y 7)

: W_INIT_IO

CONFIG_PORTS

$0000000000000081... % RACK_PROPIO MAAKT HET MOGELIJK!

"% RACK_PROPIO (1/1)" * $MOVE 0 _HSV_INIT_IO ^ _HNV_INIT_IO

% RACK_PROPIO INSCHAKELEN

"Initialiseren van de variabelen" * _HSV_INIT_IO $MOVE

0 ^ variablecontador

0 ^ variablemodulo

"" * _HSV_INIT_IO $MOVE

Archivos de tarra (powerup.ccd, parpadeo.ccd)

Nl estos archivos se encuentra el codigo del programa, para cada una de las and programadas. Nl cada archivo se encuentra dos tipos de cosas, is el definitieve pueden vers el listado de cada uno de los "Block" de codigo:

T: T0

DUMMY

0_0

0_1

0_3

0_5

0_7

0_10

T;

& Powerup ' T0 SETTASK

Cada uno de estos "Block" de codigo se encuentra numerado a_b donde a, es el numero de la tarea y b el "id" de dicho bloque de codigo dentro de esta tarea. Estos numeros de Block cumple con los numeros de los Block mostrados nl la permite nativa y probablemente zoon usados para realizar and de depuracion paso een paso por Block. Un ejemplo de un bloque de codigo es el siguiente

: 1_1

WAAR

1 LIJN. NUM

↑ variablemodulo

1 <

LAND

ALS-4 ANDERS SPRINGEN -3 KLIK;

Puede notarse al comienzo la numeracion del bloque antecedida por: (dos puntos). Luego se ve la Instrucción lijn. NUM antecedida por un numero de linea. Estos numeros de linea corresponde con los numeros de linea de la permite nativa y probablemente zoon usados para realizar and de depuracion paso een paso por lineas.

Puede notarse que parte del codigo se asemeja een FORTH nl donde primero se nombran los operandos y finalmente se opera con ellos.

El bloque finaliza siempre con una Instrucción sprong precedida de; (punto y coma). Estos JUMP geen zoon saltos absolutos, sino relativos.

Gerelateerde Artikelen

Hoe wordt een ATtiny85 met behulp van Arduino - Como programar um ATtiny85 usando Arduino

Hoe wordt een ATtiny85 met behulp van Arduino - Como programar um ATtiny85 usando Arduino

Hoe te easly krimpen eenvoudige projecten?Como diminuir seus projetos mais simples?ATtiny85 is een eenvoudig te gebruiken, goedkoop en kleine (8 poten) microcontroller. U kunt het programma met een Arduino en kunt de Arduino IDE zelf schrijven en upl
Mogelijk de FORTH met Opto22 PAC en Linux

Mogelijk de FORTH met Opto22 PAC en Linux

INDUSTRIËLE CONTROLLERS: PAC, PLC & LINUXEste proyecto tambien esta disponible nl Español haciendo clic aquiLinux ondersteuning van industriële hardware zoals PAC of PLC, in het geval van de grote en bekende merken is eigenlijk non-existent. Sommige
Programmering videogames in industriële Machine Controller PAC/PLC

Programmering videogames in industriële Machine Controller PAC/PLC

RFB PROTOCOLRFB of "Externe Frame Buffer" protocol was gemaakt in het onderzoekslaboratorium van Olivetti grafische interfaces om extern te beheren. Het idee was om een protocol zo eenvoudig mogelijk, dus zo veel hardware mogelijk (thin client)
Flash-chip USB-serieel Arduino zonder DFU

Flash-chip USB-serieel Arduino zonder DFU

Hola amigosAyer me llegaron dos arduino Duemilanove y un un UNO, el Duemilanove tijdperk VN cambio de chip y volver een cargar el bootloader, pero el Arduino UNO ni siquiera tijdperk detectado por la PC pero seguía ejecutando el ultimo sketch "Blink&
Pompoen PACS/pompoen Pi

Pompoen PACS/pompoen Pi

de pompoen PACS werd gebouwd voor de MGH radiologie pompoen versieren wedstrijd. Het is een standalone DICOM-workstation staat de weergave van de vele standaard types van radiologie beelden.De pompoen bevat een Raspberry Pi die projecteert beelden op
Arduino ESP8266 Modbus TCP IP-Scada industriële Opto22

Arduino ESP8266 Modbus TCP IP-Scada industriële Opto22

Heeft de integratie van Arduino ESP8266 + Software Opto22, uitvoering van haar milieu scada dwars door IP en Modbus TCP Modbus RTU, het idee is om de uitvoering van deze hardware in de industrie voor zowel monitoring en controle.Meer informatie over
Linux shell script conversie voor 3d-video en foto's

Linux shell script conversie voor 3d-video en foto's

Dit beetje instructable laat zien hoe met de linux-shell 3d-video bestanden en 3d-afbeeldingsbestanden converteren naar een formaat voor het google-karton.Ik heb het zeldzame voorrecht om zelf een Fuji Real 3D-W3. Toen ik hem enkele jaren geleden koc
Laat geven Linux een poging (aka laat weer die oude PC gaan)

Laat geven Linux een poging (aka laat weer die oude PC gaan)

Bent u één van die mensen die krimpen en verbergen van het woord "LINUX"? Ik weet dat er nog steeds enkele van jullie daar. Maak je geen zorgen, uw angst is behandelbaar. Geloof me. Ik was een van u!Dit Instructable is voor mensen zoals wij.Ik g
Uw eigen bevel Linux in 5 minuten

Uw eigen bevel Linux in 5 minuten

Interessante vordering, juiste? Heb je ooit wilde verspreid het woord over uw klein script dat verbazingwekkende dingen terug naar de Gemeenschap doet? Heb je ooit gedacht dat uw script ook hacky is te gaan daar of zelfs de output of manier om het te
Scherm onroerend goed (linux).

Scherm onroerend goed (linux).

Doen dit op eigen risico, zoals ik zal niet aansprakelijk zijn voor eventuele problemen:Is een van de grootste klachten krijg ik de tekst scherm is te klein. Over het algemeen ben ik het eens. Meer recente computers eigenlijk hebben de mogelijkheid o
Hoe maak je een virtuele machine van Linux op Windows met behulp van VirtualBox

Hoe maak je een virtuele machine van Linux op Windows met behulp van VirtualBox

deze video leert u hoe u een virtuele machine van Linux op een Windows 7 laptop met behulp van VirtualBox.Gelieve te vertellen als deze video goed was. : DDeze video werd voorgelegd voor de vervulling van onze eisen in het onderwerp van een computer.
Calculator programma in Linux

Calculator programma in Linux

Zijn een eenvoudige calculator programma voor beginners in Linux,Stap 1: Dingen nodig1. de laptop of Desktop2. Linux OS (ik liever Fedora)3. NormalBrainStap 2: programmageval van $1 inecho "toevoegen") "som van $2 $3:'expr $2 + $3 '";;
Linux computer tweeting.

Linux computer tweeting.

Dit gedaan voor een tijdje en I love it. Echte computer automatisering. Dit is een instructable om uw linux computer toegang tot twiiter via de opdrachtregel voor zowel verzenden en ontvangen tweets. Het grote ding over dit is dat het zal werken op e
Erfenis netwerken met linux.

Erfenis netwerken met linux.

We netwerken met xrdp en ltsp al hebben gedaan.  Nu, dit is een zeer goede manier om het gebruik van oudere apparatuur. Met name in geval van nood.  Kennis van het gebruik van de opdrachtregel is vereist. Muis-jockeys behoeven niet. Ik zeg dat met ge