Component: MIAC (PIC) USB Slave (MIAC: PC Peripheral)

From Flowcode Help
Jump to navigationJump to search


Author Matrix Ltd
Version 1.1 (Release)
Category MIAC: PC Peripheral


Image MIAC (PIC) USB Slave component

Allows Matrix's MIAC PLC to be used as a PC peripheral controlled by Flowcode via a USB connection. Requires that the MIAC (PIC) has the USB Slave firmware downloaded to it.

Examples

Firmware & USB Driver

The MIAC needs programming with the USB Slave firmware to function correctly with the MIAC USB Slave component.

Use the MIACprog tool to download the firmware .hex file to the MIAC.

File:MIAC USB Slave Firmware.zip


The MIAC USB Slave USB driver will need to be installed before Windows will correctly recognise the device and allow Flowcode to communicate correctly.


Controlled Using Flowcode

Here is a simple Flowcode program to toggle one of the transistor outputs on the MIAC USB Slave device. Remember to connect a linking wire between the (M) screw terminal to the (V+) screw terminal to allow the Transistor LEDs to light. FC6 Icon.png MIAC USB Slave Here is an example of the high level MIAC USB Slave console.

MIACUSBSCH.jpg


Here is an example of the low level MIAC USB Slave console.

MIACUSBSCL.jpg


If the MIAC USB Slave component can see the MIAC USB Slave then you will able to select the instance via the Instance property.

MIACUsbCon.jpg


Multiple MIAC USB slaves can be connected to a single PC and controlled by adding multiple MIAC USB Slave components each referring to their own instance of the hardware.


Controlled Using VB6 / VB2008

Files taken from the Locktronics Industrial sensor, actuator and control applications solution

File:VB Examples.zip


Controlled Using Labview

Files taken from the Locktronics Industrial sensor, actuator and control applications solution

File:Labview Examples.zip


Command Table

Command Number Description Parameters Returns
1 Digital Input Channel (1-8) Input State (0-1)
2 Digital Multi Input N/A Input State 8-bit (0-255)
3 Analogue Input Channel (1-8) Input ADC Reading (0-255)
4 Read Keypad Buffer N/A Key Press (0-8 or 255)
5 Clear Keypad Buffer N/A N/A
6 Relay Control Channel (1-4)

Relay State (0-1)

N/A
7 Transistor Control Channel (1-4)

Transistor State (0-1)

N/A
8 Multi Output Control Output Value (0-255)

Output Mask (0-255)

N/A
9 Display Clear N/A N/A
10 Display Cursor Position X Coord (0-15)

Y Coord (0-3)

N/A
11 Display Number Number Low Byte (0-255)

Number High Byte (0-255)

N/A
12 Display String String Data N/A
13 PWM Enable Control PWM Channel (1-2)

Enabled (0-1)

N/A
14 PWM Duty Control PWM Channel (1-2)

Duty (0-255)

N/A
15 PWM Period Control Prescaler (0-2) N/A
16 PWM Overcurrent Check N/A Overcurrent State (0-1)
17 EEPROM Write Address (0-255)

Data (0-255)

N/A
18 EEPROM Read Address (0-255) Data (0-255)
19 CAN Set Data Num Bytes (0-8)

Data0 (0-255) Data1 (0-255) Data2 (0-255) Data3 (0-255)

Data4 (0-255) Data5 (0-255) Data6 (0-255) Data7 (0-255)

N/A
20 CAN Send Message ID Low Byte (0-255)

ID High Byte (0-7)

N/A
21 CAN Check Incoming N/A ID High

ID Low

22 CAN Get RX Data N/A Num Bytes (0-8)

Data0 (0-255) Data1 (0-255) Data2 (0-255) Data3 (0-255)

Data4 (0-255) Data5 (0-255) Data6 (0-255) Data7 (0-255)

23 Register Read Address Low Byte (0-255)

Address High Byte (0-255)

Register Data Byte (0-255)
24 Register Write Address Low Byte (0-255)

Address High Byte (0-255) Register Data Byte (0-255)

N/A

Downloadable macro reference

This component does not contain any downloadable macros

Simulation macro reference

LCDPrintString

Prints a string to the LCD on the MIAC.

Parameters

<- STRING Str
This parameter may be returned back to the caller


Return value

This call does not return a value


GetRegisterValue

Gets the value of the register specified on the MIAC

Parameters

UINT RegAddress


Return value

BYTE


GetAnalogueInput

Returns the value for a specific analogue input on the MIAC slave.

Parameters

BYTE Input


Return value

BYTE


LCDPrintNumber

Prints out a number to the display on the MIAC.

Parameters

INT Number


Return value

This call does not return a value


CANTx

Sends the Tx data with the ID specified in the form of a CAN message

Parameters

UINT CANID


Return value

This call does not return a value


GetKeypadBuffer

Returns a keypress from the keypress buffer, returns 255 if no keypress is available.

Parameters

This macro has no parameters


Return value

BYTE


SetRegisterValue

Sets the value of the register specified on the MIAC

Parameters

UINT RegAddress
BYTE Value


Return value

This call does not return a value


GetEEPROMData

Reads a byte from the EEPROM data memory

Parameters

BYTE Address


Return value

BYTE


PWMOvercurrentCheck

Checks the PWM outputs to see if they are overcurrent

Parameters

This macro has no parameters


Return value

BYTE


PWMSetPeriod

Sets the PWM period for the channel specified

Parameters

BYTE Prescaler
BYTE Period


Return value

This call does not return a value


PWMControl

Sets the PWM channel specified to be enabled or disabled

Parameters

BYTE Channel
BYTE Enable


Return value

This call does not return a value


CANSetTxData

Sets the LCD cursor position on the MIAC

Parameters

BYTE DataCount
BYTE d0
BYTE d1
BYTE d2
BYTE d3
BYTE d4
BYTE d5
BYTE d6
BYTE d7


Return value

This call does not return a value


GetDigitalInputs

Returns the value for a all 8 digital inputs on the MIAC slave.

Parameters

This macro has no parameters


Return value

BYTE


CANGetRxData

Collects the data from the last received CAN message

Parameters

This macro has no parameters


Return value

STRING


SetEEPROMData

Writes a byte to the EEPROM data memory

Parameters

BYTE Address
BYTE Data


Return value

This call does not return a value


PWMSetDuty

Sets the duty cycle for the PWM channel specified

Parameters

BYTE Channel
BYTE Duty


Return value

This call does not return a value


SetOutputBank

Controls the state of one of the transistor outputs on the MIAC slave.

Parameters

BYTE Mask
BYTE Output_States


Return value

This call does not return a value


SetTransistorOutput

Controls the state of one of the transistor outputs on the MIAC slave.

Parameters

BYTE Transistor
BYTE State


Return value

This call does not return a value


GetDigitalInput

Returns the value for a specific digital input on the MIAC slave.

Parameters

BYTE Input


Return value

BYTE


ClearKeypadBuffer

Destroys the contents of the keypad buffer.

Parameters

This macro has no parameters


Return value

This call does not return a value


LCDSetCursor

Sets the LCD cursor position on the MIAC

Parameters

BYTE x
BYTE y


Return value

This call does not return a value


CANCheckRx

Checks to see if a CAN message has been received, if so the ID is returned

Parameters

This macro has no parameters


Return value

UINT


LCDClear

Clears the LCD display on the MIAC.

Parameters

This macro has no parameters


Return value

This call does not return a value


SetRelayOutput

Controls the state of one of the Relay outputs on the MIAC slave.

Parameters

BYTE Relay
BYTE State


Return value

This call does not return a value



Property reference

Instance

This property is of type Fixed list of ints and can be referenced with the variable name instance.

USB Slave Instance, if empty then is the MIAC slave firmware loaded, Is the MIAC slave driver installed, Is the MIAC connected and powered.