Programar PAC Opto22 Usando FORTH En Linux (3 / 4 steg)

Steg 3: ESTRUCTURA GENERAL DE UN PROGRAMA



ESTRUCTURA GENERAL DE UN PROGRAMA

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

  • Los archivos con förlängning .crn1, .crn2, .crn3, deben tener todos como
    Nombre como se "bautizo" el programa. * El archivo .crn1 contiene una linea: FILENAME. " PNAME "; donde PNAME es el nombre con que se "bautizo el programa. Las otras Lineasen de este archivo ingen cambiaron nunca con diferentes programas que se crearon

  • El archivo .crn2 contiene los nombres de las "tareas" que conforman un
    programa, las variabler que se utilizan, y la asignacion de tallar I/O

  • El archvo .crn3 inicializa las tareas, las variabler y el hårdvara de jag / 0

  • Debera existir un archivo con förlängning .ccd para cada una de las tareas
    que conforman el programa, cuyo nombre es el que aparece en el archivo .crn2

Se desarrollo FN programa ejemplo "PARPADEO", que cuenta con dos tareas: una enciende y apaga una salida digital e incrementa una variabel contador, la otra tarea revisa si la variabel es delbara exactamente entre 5 (modulo 5) y enciende el ledde cuando esta condicion es valida, de lo contrario, lo apagara.

PARPADEO.crn1

En este archivo puede notarse la linea de codigo donde esta el nombre del programa, "PARPADEO". Las demas Lineasen parecen Algún tipo de asignacion de espacios de memoria para el hårdvara, variabler e I/O. Ingen se notaron cambios sv estas Lineasen para diferentes programas hechos y analizados.

_END NYA $$$. KÖRA

: FILENAME. " PARPADEO ";

1 0 $VAR * _HSV_SEMA

1024 0 $VAR * _HSV_TEMP

200 0 $VAR * _HSV_INIT_IO

0 IVAR ^ _HNV_INIT_IO

PARPADEO.crn2

En este archivo se encontraron tres cosas:

-Tareas que conforman el programa: Powerup, parpadeolento, _INI_IO. PowerUp es una tarea que viene por defecto, ingen puede ser renombrada, ni borrada. parpadeolento fue una tarea creada en el programa e _INIT_IO probablemente es una tarea internationel encargada de inicializar el hårdvara automaticamente al iniciar FN programa

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

-Alias de los pines del hårdvara en nombres mas amigables en el programa, en este caso los pines digitales 0 y 7 fueron asignados en los alias: SALIDA_DIGITAL_1 y SALIDA_DIGITAL_4

_INIT_IO & 0 aktivitet

0 uppgift & Powerup

Parpadeolento & 0 aktivitet

0 IVAR ^ variablecontador

0 IVAR ^ variablemodulo

$0000000000000000... 32769 1.000000 0.010000 0.000000 2001 $7F000001 0 MBOARD % RACK_PROPIO SPOINT 0,0 UTGÅNG 0% RACK_PROPIO

0 POÄNG ~ SALIDA_DIGITAL_1

SPOINT 0,0 UTGÅNG 7% RACK_PROPIO

0 POÄNG ~ SALIDA_DIGITAL_4

PARPADEO.crn3

Este archivo es un poco mas largo. Al parecer en la parte inicial se crean se agrupan las tareas, los diferentes tipos de variabler, sv arreglos y hacia el final se puede ver la inicializacion de las variabler variablecontador y variablemodulo 0. Tambien puede notarse que por defecto los pines digitales estan configurados como entrada "0", y los que Enikö usados como salida debera escribirse un "1" ($... 0081 pines 0 y 7)

: W_INIT_IO

CONFIG_PORTS

$0000000000000081... % RACK_PROPIO KAN!

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

% RACK_PROPIO AKTIVERAR

"Initiera variabler" * _HSV_INIT_IO $MOVE

0 ^ variablecontador

0 ^ variablemodulo

"" * _HSV_INIT_IO $MOVE

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

En estos archivos se encuentra el codigo del programa, para cada una de las tareas programadas. Sv cada archivo se encuentra dos tipos de cosas, hacia el final pueden vers el listado de cada uno de los "bloques" 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 "bloques" de codigo se encuentra numerado Kristoffer donde en, es el numero de la tarea y b el "id" de dicho bloque de codigo dentro de esta tarea. Estos numeros de bloques corresponden con los numeros de los bloques mostrados en la aplicacion nativa y probablemente son usados para realizar tareas de depuracion paso en paso por bloques. FN: S ejemplo de un bloque de codigo es el siguiente

: 1_1

SANNA

1 RAD. NUM

^ variablemodulo

1 <

MARK

OM-4 ANNARS HOPPA -3 SEDAN;

Puede notarse al comienzo la numeracion del bloque antecedida por: (dos puntos). Luego se ve la instruccion linje. NUM antecedida por un numero de linea. Estos numeros de linea corresponde con los numeros de linea de la aplicacion nativa y probablemente son usados para realizar tareas de depuracion paso en paso por Lineasen.

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

El bloque finaliza siempre con una instruccion hoppa precedida de; (punto y koma). Estos hoppa ingen son saltos absolutos, sino relativos.

Se Steg
Relaterade Ämnen

Hur man programmet en ATtiny85 använder Arduino - Como programar um ATtiny85 usando Arduino

Hur till easly krympa enkla projekt?Como diminuir seus projetos mais simples?ATtiny85 är en enkel att använda, billig och liten mikrokontroller (8 ben). Du kan programmera det med en Arduino och kan använda Arduino IDE själv att skriva och ladda upp...

Kanske FORTH med Opto22 PAC och Linux

Industriella styrsystem: PAC, PLC & LINUXEste proyecto tambien esta disponible en Español haciendo clic aquiLinux-stöd för industriell hårdvara som PAC eller PLC, för de stora och välkända varumärkena är i princip obefintlig. En del hårdvara är baser...

Programmering videospel i industriella maskin Controller PAC/PLC

RFB-PROTOKOLLETRFB eller "Remote Frame Buffer" protokollet skapades i Olivetti forskningslaboratorium fjärrhantera grafiska gränssnitt. Idén var att skapa ett protokoll så enkla som möjligt, så så mycket hårdvara som möjligt (tunna klienter) kun...

Pumpa PACS/pumpa Pi

The pumpa PACS konstruerades för MGH radiologi pumpa Decorating Contest. Det är en fristående DICOM-arbetsstation kan visa många standardtyper av röntgenbilder.Pumpa innehåller en Raspberry Pi som projekt bilder på en skärm med en Microvision SHOWWX...

Arduino ESP8266 Modbus TCP IP Scada industriella Opto22

Har gjort en integration av Arduino + ESP8266 + programvara Opto22, genomföra dess miljö scada rakt igenom IP och Modbus TCP Modbus RTU, tanken är att genomföra denna hårdvara i branschen för övervakning och kontroll.Mer information om detta projekt:...

Pac-Man Arcade Machine kostym

som barn växer upp i 80-talet, spelade min beskärda del av Pac-Man på arkaden.Som vuxen, många år senare, en Halloween, jag behövde en kostym jag kunde sätta ihop i en fråga om en dag eller så, men ändå uppfylla mitt behov av det att se ut som jag sa...

Tilldela flera drev till Steam på Linux

Så jag flyttade en av mitt arbetsmaskiner hemma och eftersom jag egentligen inte behöver någon av windows-program jag permanent gått över till Ubuntu installationen (var en tvåfaldig stöveln setup).Nu behöver några månader senare jag lite extra utrym...

Bygga ett Linux-kluster - inskickad av BayLab för Instructables Sponsring programmet

någonsin ville ha en Linux-kluster att kritan siffrorna? Denna guide kommer att komma igång om att inrätta ett kluster som kan automatiskt ladda balans trådar och hjälp du lära dig hur superdatorer fungerar. Denna bild är hur mitt rum såg ut när jag...

Lumi: Linux Mint T-Shirt

först, jag måste verkligen tacka Instructables och Lumi för denna awesome chansen att prova en sådan cool produkt! Jag kan se alldeles för många användningsområden för det :)Jag är vanligtvis inte en för reklamföretag gratis (eller snarare betalar de...

Barreras anticaida para la cama usando PVC

Barreras fáciles y baratas usando tubería de PVC.Este es el, espero, primero de muchos Instructables.Al ir buscando barreras comerciales mig di cuenta de que, en parte de ser muy caras, eran muy simples.Por una barrera solo para un lado de la cama el...

Ställa in en dator baserat DVR (med Mythtv för linux).

i flera instructables, jag talar om Mythtv en datorbaserad dvr (Digital video recorder). Inte se någon anledning varför jag ska betala en avgift för uthyrning när det finns billig datorutrustning att göra detsamma. Inte bara det jag kan styra vad med...

Cykeln av Forths och femtedelar

för många musiker arbetar med cykel av Forths och femtedelar är mycket viktigt, oavsett om chord praktiken, komposition, improvisation. Jag har tittat överallt för något praktiskt som jag kan använda för mina studier, så jag gjorde den här.Sedan jag...

Kali Linux 2016.1 på en gammal Dell Vostro Laptop AMD 64-bitars CPU

Hur till data överför, Bränn och Live installera den nya Kali Linux-2016.1 på en gammal bärbar dator Dell Vostro 1000!Steg 1: Hitta en gammal laptop eller PC installera Kali Linux 2016.1 nyaste RELEASE AMD64Jag har haft denna gamla Dell Vostro 1000 å...

Lägga till text i bilder med Linux "Konvertera" kommandot

detta instructable visar dig hur du lägger till text till en bild med kommandot konvertera i Linux. En värdefull användning av detta är utsläppande av en bildtext på en bild för dokumentation. En annan användning skulle vara utsläppande av en tidsstä...

Nästan gratis datorer eller med hjälp av tunna klienter med Debian linux.

Så du vill ställa in ett litet nätverk för ett företag eller bara hem. Tänk på tunna klienter. Med hjälp av tunna klienter har alltid varit en viktig sak med mig. Även om de är mini delmängder av full datorer de spara pengar på El och kräver mindre s...

Grundläggande 5 saker att göra när du har installerat Kali Linux 2.0

Här är min lista för de grundläggande 5 sakerna att göra när du har installerat Kali Linux 2.0.Steg 1: Titta på grundläggande fem saker[Spela Video]YouTube-kanal...

Bygga ett inbyggt Linux System i några steg

När du har gått igenom processen att diskutera över vilken Linuxdistribution att använda, vad järnvaror etc. och på saker och verktyg som du behöver, kommer nästa steg – faktiskt bygga Embedded Linux system. Igen, det finns en hel del likheter mellan...

Räknaren Program i Linux

Dess en enkel kalkylator program för nybörjare i Linux,Steg 1: Saker krävs1. stationär eller bärbar dator2. Linux OS (jag föredrar Fedora)3. NormalBrainSteg 2: Programfallet $1 i"Lägg till") echo "summan $2 $3:'expr $2 + $3" ";;&q...

Konvertera video i Linux

FFmpeg är den bästa öppen källkod video converter där ute. Det är vanlig, enkel, men mycket kraftfullt. FFmpeg är ett kommandoradsprogram. Det finns några grafiska frontends också, men de tenderar att vara buggig. Så, det enklaste sättet att konverte...