Digital inputs and outputs
This controller has 24 I/O pins, which can be configured as either input or output.
Defining input and output assignments
Define the function of each configurable pin in the corresponding subindex of object 3272h (Usage Of Pins Available On Connector). All of the pins listed in the following table can be assigned the following functions:
- Digital input or output
- Input Range Selection
- Analog Input Control
- Capture Input
- SPI Chip Select
The following pins also support alternative functions:
Pin | Alt. Function 1 | Alt. Function 2 | Subindex in 3272h |
---|---|---|---|
4, ANA1 | Analog input 1 (factory settings) | 01h | |
6, ANA2 | Analog input 2 (factory settings) | 02h | |
18, H1 | Hall sensor input 1 (factory settings) | 03h | |
19, DIO11 | 04h | ||
20, H2 | Hall sensor input 2 (factory settings) | 05h | |
21, DIO13 | SPI Data OUT (MOSI) | 06h | |
22, H3 | Hall sensor input 3 (factory settings) | 07h | |
23, ENC1B | incr. Encoder 1, B (factory settings) | SSI encoder 2, Data IN | 08h |
24, ENC1A | incr. Encoder 1, A (factory settings) | SSI encoder 2, clock | 09h |
25, SSI1_MISO | SSI encoder 1, Data IN (factory settings) | SPI Data IN (MISO) | 0Ah |
26, ENC1I | incr. Encoder 1, Index (factory settings) | 0Bh | |
27, SSI1_CLK | SSI encoder 1, clock (factory settings) | SPI Clock | 0Ch |
29, DIO14 | 0Dh | ||
39, DIO1 | Clock input in clock-direction mode | Channel A of the virtual encoder output | 0Eh |
41, DIO3 | 0Fh | ||
42, DIO2 | Direction input in clock-direction mode | Channel B of the virtual encoder output | 10h |
43, DIO5 | 11h | ||
44, DIO4 | 12h | ||
45, DIO7 | 13h | ||
46, DIO6 | 14h | ||
47, DIO9 | PWM output 0 | 15h | |
48, BRAKE | Brake output (factory settings) | 16h | |
50, DIO10 | PWM output 1 | 17h | |
56, DIO12 | 18h |
In object 3272h, you define how each pin is to be used by writing the corresponding value in the corresponding subindex.
Value | Function |
---|---|
0 | digital input |
128 | digital output |
256/257 | Input Range Selection |
384/385 | Analog Input Control |
512 | analog input |
640 | Hall sensor input |
768 | Encoder input (incremental) |
896 | Encoder input (SSI) |
1024 | PWM output / brake output |
1152 | Virtual encoder output |
1280 | Clock/direction input in Clock-direction mode |
1408 | Generic SPI |
1536/1537 | Capture Input |
Then store your configuration by writing the value "65766173h" in 1010h:03h (see chapterSaving objects) and restart the controller.
Example |
|
Pin 39 (DIO1) is to be the clock input in Clock-direction mode. Pin 42 (DIO2) is to be the direction input in Clock-direction mode.
|
Input Range Selection
You can assign up to two of the configurable pins this function. These pins are only digital outputs that can be controlled via the corresponding bit in 3240h:06h (set to High if bit=1):
Value in 3272h:xxh | Control bit in 3240h:06h |
---|---|
384 | 0 |
385 | 1 |
With these pins, you can control appropriate external circuits that toggle the switching level of the digital inputs, e.g., between 5/24 V.
Analog Input Control
You can assign up to two of the configurable pins this function. These pins are only digital outputs that can be controlled via the corresponding bit in 3221h:06h (set to High if bit=1):
Value in 3272h:xxh | Control bit in 3221h:00h |
---|---|
256 | 0 |
257 | 1 |
With these pins, you can control appropriate external circuits that toggle the corresponding analog input between voltage measurement and current measurement. The first pin (in the order given in the table of alternative functions) controls the first analog input and the second pin controls the second.
Capture Input
You can assign up to two of the configurable pins this function. These pins are capture inputs that are configured via the corresponding subindices in 3241h:
Value in 3272h:xxh | Configuration in 3241h |
---|---|
1536 | Capture Input 1: Subindex 1 to 4 |
1537 | Capture Input 2: Subindex 5 to 8 |
If there is a level change at these pins, the current encoder position is noted. The first pin assigned the function (in the order given in the table of alternative functions) is the first capture input (Capture Input 1).
Generic SPI
The controller can communicate with external devices via this SPI interface, e.g. port expanders or displays.
All configurable pins can be assigned the Chip Select function, with the exception of the pins that are intended for the following functions:
Pin | SPI function | Subindex in 3272h |
---|---|---|
21, DIO13 | Data OUT (MOSI) | 06h |
25, SSI1_MISO | Data IN (MISO) | 0Ah |
27, SSI1_CLK | Clock | 0Ch |
To activate the respective function, write the value "1408" in 3272h:xxh.
The settings of the SPI interface are located in object 3273h:01h (Generic SPI Hardware Configuration):
- Bit 0 (Clock Phase):
- Value = "0": Data transfer begins with the first falling clock edge (with polarity = 1)
- Value = "1": Data transfer begins with the first rising clock edge (with polarity = 1)
- Bit 1 (Clock Polarity): With this bit, you can invert the polarity of the clock signal. The value 0 means the level remains on Low if the clock is idling.
- Bits 2 to 4 (baud rate): You set the clock frequency here:
- 000b: 21 MHz
- 001b: 10.5 MHz
- 010b: 5.25 MHz
- 011b: 2625 KHz
- 100b: 1312.5 KHz
- 101b: 656.25 KHz
- 110b: 328.125 KHz
- 111b: 164.0625 KHz
- Bit 10 (CS Polarity): With this bit, you can invert the polarity of the Chip Select. Value 0 means that the level remains on High if the signal is idling.
The data are sent/received via the following objects:
- 3274h (Generic SPI Mosi Data):
- Subindex 1 to 1Fh (Generic SPI Mosi Data Byte #1 to #31): You write the data that are to be sent here, divided into up to 31 bytes.
- Subindex 0 (Length of SPI message to be sent): Then enter the number of bytes here (= subindicies) that are to be sent. In the next millisecond cycle, the data are sent and the subindex is reset to the value "0".
- 3275h (Generic SPI Miso Data): You read the received data here.
- Subindex 0 (Length of received SPI message): The value tells you how many data bytes (= subindices) were received.
- Subindex 1 to 1Fh (Generic SPI Miso Data Byte #1 to #31): The data that were received are located here.
Bit assignment
The software of the controller assigns each input and output two bits in the respective object (e.g., 60FDh Digital Inputs or 60FEh Digital Outputs):
- The first bit corresponds to the special function of an output or input. These functions are always available on bits 0 to 15 (inclusive) of the respective object. These include the limit switches and the home switch for the digital inputs and the brake control for the outputs.
- The second bit shows the output/input as a level; these are then available on bits 16 to 31.
Example |
|
To manipulate the value of output 2, always use bit 17 in 60FEh. To activate the "negative limit switch" special function of input 1, set bit 0 in 3240h:01h; to query the status of the input, read bit 0 in 60FDh. Bit 16 in 60FDh also shows the status of input 1 (independent of whether or not the special function of the input was activated). This assignment is graphically illustrated in the following drawing. |
Digital inputs
Overview
The following inputs are available in the factory settings:
Pin | Name |
---|---|
39 | DIO1 |
42 | DIO2 |
41 | DIO3 |
44 | DIO4 |
43 | DIO5 |
46 | DIO6 |
45 | DIO7 |
47 | DIO9 |
50 | DIO10 |
19 | DIO11 |
56 | DIO12 |
21 | DIO13 |
29 | DIO14 |
Object entries
The value of an input can be manipulated using the following OD settings, whereby only the corresponding bit acts on the input here.
-
3240h:01h (Special Function Enable): This bit allows special functions of an input to be switched off (value "0") or on (value "1"). If input 1 is not used as, e. g., a negative limit switch, the special function must be switched off to prevent an erroneous response to the signal generator. The object has no effect on bits 16 to 31.
The firmware evaluates the following bits:
- Bit 0: Negative limit switch (see Limitation of the range of motion)
- Bit 1: Positive limit switch (see Limitation of the range of motion)
- Bit 2: Home switch (see Homing)
- Bit 3: Interlock (see interlock function)
If, for example, two limit switches and one home switch are used, bits 0–2 in 3240h:01h must be set to "1".
Note: Because the Input Routing (see following chapter) is activated in the factory settings, object 3240h:01h has no function in this controller. To use the special functions, configure the source for bits 0 to 3 of 60FDh in 3242h:01h to :04h according to your cabling. -
3240h:02h (Function Inverted): This subindex switches from normally open logic (a logical high level at the input yields the value "1" in object 60FDh) to normally closed logic (the logical high level at the input yields the value "0").
This applies for the special functions (except for the clock and direction inputs) and for the normal inputs. If the bit has the value "0", normally open logic applies; for the value "1", normally closed logic applies. Bit 0 changes the logic of input 1, bit 1 changes the logic of input 2, etc.
-
3240h:03h (Force Enable): This subindex switches on the software simulation of input values if the corresponding bit is set to "1".
In this case, the actual values are no longer used in object 3240h:04h, but rather the set values for the respective input. Bit 0 corresponds to input 1 here, bit 1 to input 2, etc.
-
3240h:04h (Force Value): This bit specifies the value that is to be read as the input value if the same bit was set in object 3240h:03h.
-
3240h:05h (Raw Value): This object contains the unmodified input value.
-
60FDh (Digital Inputs): This object contains a summary of the inputs and the special functions.
Computation of the inputs
Computation of the input signal using the example of input 1:
The value at bit 0 of object 60FDh is interpreted by the firmware as negative limit switch; the result of the complete computation is stored in bit 16.
Input Routing
Principle
To perform the assignment of the inputs more flexibly, there is a mode called Input Routing Mode. This assigns a signal of a source to a bit in object 60FDh.
Activation
This mode is activated by setting object 3240h:08h (Routing Enable) to "1" (this is the case in the factory setting).
Routing
Object 3242h determines which signal source is routed to which bit of 60FDh. Subindex 01h of 3242h determines bit 0, subindex 02h determines bit 1, and so forth. The signal sources in the factory settings and their numbers can be found in the following lists.
Number | ||
---|---|---|
dec | hex | Signal source |
00 | 00 | Signal is always 0 |
01 | 01 | ANA1 (Pin 4) |
02 | 02 | ANA2 (Pin 6) |
03 | 03 | H1 (Pin 18) |
04 | 04 | DIO11 (Pin 19) |
05 | 05 | H2 (Pin 20) |
06 | 06 | DIO13 (Pin 21) |
07 | 07 | H3 (Pin 22) |
08 | 08 | ENC1B (Pin 23) |
09 | 09 | ENC1A (Pin 24) |
10 | 0A | SSI1_MISO (Pin 25) |
11 | 0B | ENC1I (Pin 26) |
12 | 0C | SSI1_CLK (Pin 27) |
13 | 0D | DIO14 (Pin 29) |
14 | 0E | DIO1 (Pin 39) |
15 | 0F | DIO3 (Pin 41) |
16 | 10 | DIO2 (Pin 42) |
17 | 11 | DIO5 (Pin 43) |
18 | 12 | DIO4 (Pin 44) |
19 | 13 | DIO7 (Pin 45) |
20 | 14 | DIO6 (Pin 46) |
21 | 15 | DIO9 (Pin 47) |
22 | 16 | BRAKE (Pin 48) |
23 | 17 | DIO10 (Pin 50) |
24 | 18 | DIO12 (Pin 56) |
65 | 41 | Hall input "U" |
66 | 42 | Hall input "V" |
67 | 43 | Hall input "W" |
68 | 44 | Encoder input "A" |
69 | 45 | Encoder input "B" |
70 | 46 | Encoder input "Index" |
The following table describes the inverted signals of the previous table.
Number | ||
---|---|---|
dec | hex | Signal source |
128 | 80 | Signal is always 1 |
129 | 81 | Inverted ANA1 (Pin 4) |
130 | 82 | Inverted ANA2 (Pin 6) |
131 | 83 | Inverted H1 (Pin 18) |
132 | 84 | Inverted DIO11 (Pin 19) |
133 | 85 | Inverted H2 (Pin 20) |
134 | 86 | Inverted DIO13 (Pin 21) |
135 | 87 | Inverted H3 (Pin 22) |
136 | 88 | Inverted ENC1B (Pin 23) |
137 | 89 | Inverted ENC1A (Pin 24) |
138 | 8A | Inverted SSI1_MISO (Pin 25) |
139 | 8B | Inverted ENC1I (Pin 26) |
140 | 8C | Inverted SSI1_CLK (Pin 27) |
141 | 8D | Inverted DIO14 (Pin 29) |
142 | 8E | Inverted DIO1 (Pin 39) |
143 | 8F | Inverted DIO3 (Pin 41) |
144 | 90 | Inverted DIO2 (Pin 42) |
145 | 91 | Inverted DIO5 (Pin 43) |
146 | 92 | Inverted DIO4 (Pin 44) |
147 | 93 | Inverted DIO7 (Pin 45) |
148 | 94 | Inverted DIO6 (Pin 46) |
149 | 95 | Inverted DIO9 (Pin 47) |
150 | 96 | Inverted BRAKE (Pin 48) |
151 | 97 | Inverted DIO10 (Pin 50) |
152 | 98 | Inverted DIO12 (Pin 56) |
193 | C1 | Inverted Hall input "U" |
194 | C2 | Inverted Hall input "V" |
195 | C3 | Inverted Hall input "W" |
196 | C4 | Inverted encoder input "A" |
197 | C5 | Inverted encoder input "B" |
198 | C6 | Inverted encoder input "Index" |
Example |
|
Input 1 should be routed to bit 0 of object 60FDh in order to be used as a negative limit switch.
|
Interlock function
The interlock function is a release that you control via bit 3 in 60FDh. If this bit is set to "1", the motor can move. If the bit is set to "0", the controller switches to the error state and the action stored in 605Eh is executed.
Use Input Routing to define which signal source is routed to bit 3 of 60FDh and is to control the interlock function.
Example |
|
Input 4 is to be routed to bit 3 of object 60FDh to control the interlock function. A low level is to result in an error state.
|
Digital outputs
Outputs
The outputs are controlled via object 60FEh. Here, output 1 corresponds to bit 16 in object 60FEh, output 2 corresponds to bit 17, etc., as with the inputs. The outputs with special functions are again entered in the firmware in the lower bits 0 to 15. The only bit assigned at the present time is bit 0, which controls the motor brake.
You must have first defined the desired pins as output, see Defining input and output assignments.
Wiring
The digital outputs have a digital level of 3.3 V DC. The maximum admissible current is approx. 10 mA.
Object entries
Additional OD entries are available for manipulating the value of the outputs (see the following example for further information). As with the inputs, only the bit at the corresponding location acts on the respective output:
-
3250h:01h: No function.
-
3250h:02h: This is used to switch the logic from normally open to normally closed. Configured as normally open, the output outputs a logical high level if the bit is "1". With the normally closed configuration, a logical low level is output accordingly for a "1" in object 60FEh.
-
3250h:03h: If a bit is set here, the output is controlled manually. The value for the output is then in object 3250h:4h; this is also possible for the brake output.
-
3250h:04h: The bits in this object specify the output value that is to be applied at the output if manual control of the output is activated by means of object 3250h:03h.
-
3250h:05h: The bit combination applied to the outputs is stored in this subindex.
-
3250h:08h: For activating the Output Routing.
-
3250h:09h: For switching control of the Power LED on/off. If bit 0 is set to "1", the green LED is activated (flashes in normal operation). If bit 1 is set to "1", the red LED is activated (flashes in case of an error). If the bit is set to "0", the respective LED remains off.
Computation of the outputs
Example for calculating the bits of the outputs:
Output Routing
Principle
The "Output Routing Mode" assigns an output a signal source; a control bit in object 60FEh:01h switches the signal on or off.
The source is selected with 3252h:01 to n in the "high byte" (bit 15 to bit 8). The assignment of a control bit from object 60FEh:01h is performed in the "low byte" (bit 7 to bit 0) of 3252h:01h to n (see following figure).
Activation
Routing
The subindex of object 3252h determines which signal source is routed to which output. The output assignments are listed in the following:
Subindex 3252h | Output Pin |
---|---|
01h | Configuration of output 1 (pin 4) |
02h | Configuration of output 2 (pin 6) |
03h | Configuration of output 3 (pin 18) |
04h | Configuration of output 4 (pin 19) |
05h | Configuration of output 5 (pin 20) |
06h | Configuration of output 6 (pin 21) |
07h | Configuration of output 7 (pin 22) |
08h | Configuration of output 8 (pin 23) |
09h | Configuration of output 9 (pin 24) |
0Ah | Configuration of output 10 (pin 25) |
0Bh | Configuration of output 11 (pin 26) |
0Ch | Configuration of output 12 (pin 27) |
0Dh | Configuration of output 13 (pin 29) |
0Eh | Configuration of output 14 (pin 39) |
0Fh | Configuration of output 15 (pin 41) |
10h | Configuration of output 16 (pin 42) |
11h | Configuration of output 17 (pin 43) |
12h | Configuration of output 18 (pin 44) |
13h | Configuration of output 19 (pin 45) |
14h | Configuration of output 20 (pin 46) |
15h | Configuration of output 21 (pin 47) |
16h | Configuration of output 22 (pin 48) |
17h | Configuration of output 23 (pin 50) |
18h | Configuration of output 24 (pin 56) |
Subindices 3252h:01h to 0nh are 16 bits wide, whereby the high byte selects the signal source (e. g., the PWM generator) and the low byte determines the control bit in object 60FEh:01.
Bit 7 of 3252h:01h to 0nh inverts the controller from object 60FEh:01. Normally, value "1" in object 60FEh:01h switches on the signal; if bit 7 is set, the value "0" switches on the signal.
Number in 3252:01 to 0n | |
---|---|
00XXh | Output is always "1" |
01XXh | Output is always "0" |
02XXh | Encoder signal (6063h) with frequency divider 1 |
03XXh | Encoder signal (6063h) with frequency divider 2 |
04XXh | Encoder signal (6063h) with frequency divider 4 |
05XXh | Encoder signal (6063h) with frequency divider 8 |
06XXh | Encoder signal (6063h) with frequency divider 16 |
07XXh | Encoder signal (6063h) with frequency divider 32 |
08XXh | Encoder signal (6063h) with frequency divider 64 |
09XXh | Position Actual Value (6064h) with frequency divider 1 |
0AXXh | Position Actual Value (6064h) with frequency divider 2 |
0BXXh | Position Actual Value (6064h) with frequency divider 4 |
0CXXh | Position Actual Value (6064h) with frequency divider 8 |
0DXXh | Position Actual Value (6064h) with frequency divider 16 |
0EXXh | Position Actual Value (6064h) with frequency divider 32 |
0FXXh | Position Actual Value (6064h) with frequency divider 64 |
10XXh | PWM signal that is configured with object 2038h (brake output) |
11XXh | Inverted PWM signal that is configured with object 2038h (brake output) |
12XXh | PWM signal that is configured with object 3260h |
13XXh | PWM signal that is configured with object 3261h |
On any change of the "encoder signal" (6063h) or the current position (6064h in user-defined units) by an increment, a pulse is output at the digital input (for frequency divider 1). Take this into account when selecting the frequency divider and the unit, especially when using sensors with low resolution (such as Hall sensors).
Example |
|
The encoder signal (6063h) is to be applied to output 1 with a frequency divider 4. The output is to be controlled with bit 5 of object 60FE:01. The output is switched on by setting bit 5 in object 60FE:01. |
Example |
|
The brake PWM signal is to be applied to output 2. Because the automatic brake control uses bit 0 of 60FE:01h, this should be used as control bit. |
Virtual encoder output
You have the option of outputting the actual position via two pins of the controller and passing it on to your PLC or another controller. The maximum frequency here is 200 kHz.
Activating the function of the pins
To activate the function, set 2372h:0Eh and 2372h:10h to "1152".
See also Defining input and output assignments.
Selecting the type of output signals
You can select one of the following types in object 205Ch02h:
- Value "0": two 90° phase-shifted channels on channel A (leading when moving in the positive direction) and B, analogous to an incremental encoder
- Value "1": a clock and direction signal on channel A and B, analogous to the signals in Clock-direction mode
- Value "2": two clock signals, analogous to the signals in Right / left rotation mode (CW / CCW mode)
Selecting the source of the position data
The position data of one of the existing feedbacks are reproduced via the encoder output.
To select the source, set bit 3 in the corresponding subindex of object 3203h to "1". If you do not set a bit, the value from 205C:01h is used.
Setting the resolution of the output signals
Define the conversion of source signal into virtual encoder signals via the numerator in 205C:03h and the denominator in 205C:04h.