Read / Write primitive values#
TwinCAT type |
Python type |
Comment |
|---|---|---|
BOOL |
bool |
|
BYTE |
int |
8bit, unsigned |
WORD |
int |
16bit, unsigned |
DWORD |
int |
32bit, unsigned |
LWORD |
int |
64bit, unsigned |
SINT |
int |
8bit, signed |
INT |
int |
16bit, signed |
DINT |
int |
32bit, signed |
LINT |
int |
64bit, signed |
USINT |
int |
8bit, unsigned |
UINT |
int |
16bit, unsigned |
UDINT |
int |
32bit, unsigned |
ULINT |
int |
64bit, unsigned |
REAL |
float |
32bit, float |
LREAL |
float |
64bit, float |
from py_ads_client import BOOL, INT, REAL, ADSClient, ADSSymbol
plc_ip = "192.168.88.20"
plc_ams_net_id = "192.168.88.20.1.1"
local_ams_net_id = "192.168.88.100.1.1"
client = ADSClient(local_ams_net_id=local_ams_net_id)
client.open(target_ams_net_id=plc_ams_net_id, target_ip=plc_ip)
bool_symbol = ADSSymbol(name="GVL.boolVar", plc_t=BOOL)
client.write_symbol(symbol=bool_symbol, value=True)
bool_value = client.read_symbol(bool_symbol)
assert bool_value is True
int_symbol = ADSSymbol(name="GVL.intVar", plc_t=INT)
client.write_symbol(symbol=int_symbol, value=123)
int_value = client.read_symbol(int_symbol)
assert int_value == 123
real_symbol = ADSSymbol(name="GVL.realVar", plc_t=REAL)
client.write_symbol(symbol=real_symbol, value=100.23)
real_value = client.read_symbol(real_symbol)
assert round(real_value, 2) == 100.23
client.close()