TwinCAT ADS bridge

ADS to BUS/RT bridge, required for TwinCAT ADS controller instances.

Setup

Use the template EVA_DIR/share/svc-tpl/svc-tpl-bridge-ads.yml:

# TwinCAT ADS bridge service
command: svc/eva-bridge-ads
bus:
  path: var/bus.ipc
config:
  host: 192.168.1.100
  port: 48898
  #ping_ams_netid: 192.168.1.100.1.1
  #ping_ams_port: 200
  # store ping result (ADS state,
  # https://infosys.beckhoff.com/content/1033/tc3_adsnetref/7313023115.html)
  #store_ads_state: sensor:ads/ads1
  #set if the local address can not be detected automatically (e.g. tunnels
  # are used)
  #local_ams_netid: 192.168.1.2.1.1
  #local_ams_port: 58913
user: nobody
workers: 1
react_to_fail: true

Create the service using eva-shell:

eva svc create eva.bridge.ads1 /opt/eva4/share/svc-tpl/svc-tpl-bridge-ads.yml

or using the bus CLI client:

cd /opt/eva4
cat DEPLOY.yml | ./bin/yml2mp | \
    ./sbin/bus ./var/bus.ipc rpc call eva.core svc.deploy -

(see eva.core::svc.deploy for more info)

EAPI methods

See EAPI commons for the common information about the bus, types, errors and RPC calls.

get_symbol_info

Description

Get ADS symbol info tables

Parameters

required

Returns

Symbol info tables

Parameters

Name

Type

Description

Required

net_id

String/[u8; 6]

Device AMS Net ID

yes

port

u16

Device AMS Port

yes

ping

Description

Ping ADS device

Parameters

required

Returns

current ADS state

Parameters

Name

Type

Description

Required

net_id

String/[u8; 6]

Device AMS Net ID

yes

port

u16

Device AMS Port

yes

Return payload example:

{
  "state": 5
}

read

Description

Call ADS read request

Parameters

required

Returns

Vec<u8>

Parameters

Name

Type

Description

Required

net_id

String/[u8; 6]

Device AMS Net ID

yes

port

u16

Device AMS Port

yes

index_group

u32

Index group

yes

index_offset

u32

Index offset

yes

size

u32

Expected result size

yes

su_read

Description

Call ADS SUMUP read request

Parameters

required

Returns

SumUp result as Vec<Res> with fields c (code), d (bytes)

Parameters

Name

Type

Description

Required

net_id

String/[u8; 6]

Device AMS Net ID

yes

port

u16

Device AMS Port

yes

requests

Vec<ReadRequest>

Struct fields: index_group, index_offset, size

yes

su_write

Description

Call ADS SUMUP write request

Parameters

required

Returns

SumUp result as Vec<Res> with fields c (code)

Parameters

Name

Type

Description

Required

net_id

String/[u8; 6]

Device AMS Net ID

yes

port

u16

Device AMS Port

yes

requests

Vec<WriteRequest>

Struct fields: index_group, index_offset, data

yes

su_write_read

Description

Call ADS SUMUP write-read request

Parameters

required

Returns

SumUp result as Vec<Res> with fields c (code), d (bytes)

Parameters

Name

Type

Description

Required

net_id

String/[u8; 6]

Device AMS Net ID

yes

port

u16

Device AMS Port

yes

requests

Vec<WriteReadRequest>

Struct fields: index_group, index_offset, data, size

yes

write

Description

Call ADS write request

Parameters

required

Returns

nothing

Parameters

Name

Type

Description

Required

net_id

String/[u8; 6]

Device AMS Net ID

yes

port

u16

Device AMS Port

yes

index_group

u32

Index group

yes

index_offset

u32

Index offset

yes

data

bytes

Write payload

yes

write_read

Description

Call ADS write-read request

Parameters

required

Returns

Vec<u8>

Parameters

Name

Type

Description

Required

net_id

String/[u8; 6]

Device AMS Net ID

yes

port

u16

Device AMS Port

yes

index_group

u32

Index group

yes

index_offset

u32

Index offset

yes

data

bytes

Write payload

yes

size

u32

Expected result size

yes