pyads:根据其他值的变化读取PLC值

2024-05-15 21:02:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用OnChange通知获取与其他BOOL变量相关的实变量的当前值:

@plc.notification(pyads.PLCTYPE_BOOL)
def callback(handle, name, timestamp, value):
    if value==True:
        print(f"handle: {handle}")
        print(f"name: {name}")
        print(f"timestamp: {timestamp}")
        print(f"value: {value}")
        print(plc.read_by_name(f"GVL_MyValues.MyRealValue", plc_datatype=pyads.PLCTYPE_REAL))

然后,我将此回调添加到正在更改的bool变量中:

plc.add_device_notification(f'MAIN.MyBoolValue', 
                                        pyads.NotificationAttrib(sizeof(pyads.PLCTYPE_BOOL)),
                                        callback)

当MyBoolValue更改为True时,将打印除RealValue之外的所有内容。 我是否必须配置其他内容,或者pyads不支持通知回调中的read_by_name()(我也尝试了symbol.read()


Tags: nametruereadbyvaluecallbacknotificationtimestamp