Herunterladen Diese Seite drucken

Basisfunktionen Für Mtcx Kommandoschnittstelle - B&R PC 300 Implementierungsanleitung

Vorschau ausblenden Andere Handbücher für PC 300:

Werbung

Panel PC 300
Implementierungsanleitung
7.2.5 Basisfunktionen für MTCX Kommandoschnittstelle
Diese Funktionen sind für die Bearbeitung von MTCX Kommandos notwendig (Basisfunktionen) und wer-
den von MtcxReadCommand und MtcxWriteCommand aufgerufen.
// Lock the command interface.
// Return 0 if interface is already locked and
// 1 if interface is locked successfully now.
int MtcxLockCommand()
{
unsigned long reg = READ_PORT_ULONG(MTCX_CMD_STATUS_ADDR);
if (((MTCX_CMD_STATUS_REG*)&reg)->Lock)
return 0;
((MTCX_CMD_STATUS_REG*)&reg)->Lock = 1;
((MTCX_CMD_STATUS_REG*)&reg)->Error = 0;
((MTCX_CMD_STATUS_REG*)&reg)->Status = 0;
WRITE_PORT_ULONG(MTCX_CMD_STATUS_ADDR, reg);
return 1;
}
// Unlock the command interface.
void MtcxUnlockCommand()
{
unsigned long reg = READ_PORT_ULONG(MTCX_CMD_STATUS_ADDR);
((MTCX_CMD_STATUS_REG*)&reg)->Error = 0;
((MTCX_CMD_STATUS_REG*)&reg)->Status = 0;
((MTCX_CMD_STATUS_REG*)&reg)->Lock = 0;
WRITE_PORT_ULONG(MTCX_CMD_STATUS_ADDR, reg);
}
// Set (request) a command.
//
// Parameters
//
Dir
//
[in] Specifies the direction: 1 = read, 0 = write.
//
Command
//
[in] Specifies the command code (see MTCX_CMD_x constants).
//
Addr
//
[in] Specifies the address (depends on command).
//
DevNum
//
[in] Specifies the device number (see MTCX_DEVNUM_x constants).
//
Target
//
[in] Specifies the target device (see MTCX_DEV_x constants).
//
Data
//
[in/out] Points to the buffer that contains/receives the
//
command data. Can be NULL if no data is required.
//
Size
//
[in] Specifies the data size in bytes: 0 to 16.
//
// Return MTCX_OKAY at success and MTCX_FAIL_x at failure.
int MtcxSetCommand(unsigned int Dir,
{
MTCX_CMD_PARAM_REG param;
// Command for panel: check if panel is linked to avoid timeout.
if (Target == MTCX_DEV_PANEL || Target == MTCX_DEV_PANELSET))
{
int retvalue = MtcxSwitchToLinkedPanel(DevNum);
if (retvalue != MTCX_OKAY)
return retvalue;
Copyright © B&R - Änderungen vorbehalten
PPC300_Implementierungsanleitung_V1_02.doc
unsigned int Command,
unsigned long Addr,
unsigned int DevNum,
unsigned int Target,
void *Data,
unsigned int Size)
Codebeispiele
02.11.09
52/132

Werbung

loading