I want to find...

Search

Shares

Table of Content

EthercatDevice_DmpAIQ.analogWrite()

[EthercatDevice_DmpAIQ_Generic]

Description

Write a value to the specified analog output channel on the EtherCAT slave device.

Derived Class:

Class NameVendor IDProduct CodeInput ChannelsOutput Channels
EthercatDevice_QECR11A44S0x00000bc30x0086d88044

Syntax

int analogWrite(int ch, int32_t value);

Parameters

  • [in] int ch
    The specified analog output channel on the EtherCAT slave device.
  • [in] int32_t value
    The analog output value to be written. This parameter is a 32-bit signed integer whose value is linearly mapped to a physical output by the following rule, according to the mode configuration of the specified channel:
    • Voltage Mode: Maps a value of 0 to voltage 0V, 231 to 64V, and -231 to -64V. (i.e., 225 would get mapped to 1V.)
    • Current Mode: Maps a value of 0 to current 0A, 231 to 16A, and -231 to -16A. (i.e., 227 would get mapped to 1A.)

Return Value

Return an error code. If the returned value is zero, it indicates a successful execution of this function.

Comment

This function must be called after a successful execution of EthercatMaster::start() and before EthercatMaster::stop(). This function is non-blocking and can be called within the callback functions.

Example

#include "Ethercat.h"

EthercatMaster master;
EthercatDevice_QECR11A44S slave;

int voltage = 5;

void setup() {
  master.begin();
  slave.attach(0, master);
  master.start();
}

void loop() {
  slave.analogWrite(0, voltage << 25);
  delay(1000);
  slave.analogWrite(0, 0);
  delay(1000);
  slave.analogWrite(0, -1 * (voltage << 25));
  delay(1000);
  slave.analogWrite(0, 0);
  delay(1000);
}

Please see EthercatDevice_DmpAIQ_Generic Class for more QEC AIO slave instructions and API usage.

Leave a Comment

Scroll to Top