我需要用它QAxObject
来读取一些PLC数据。我可以成功连接PLC,但问题是我无法从中读取数据。原因如下。
class Test(QAxWidget):
def __init__(self):
super().__init__()
self.setControl("ActUtlType.ActUtlType.1")
self.dynamicCall("SetActLogicalStationNumber(int)", 1)
ret = self.dynamicCall("Open()")
value = 12
ret = self.dynamicCall("ReadDeviceRandom2(QString, int, int&)", "D300", 1, value)
print(ret, value)
info:ReadDeviceRandom2方法,szDeviceList为PLC地址,ISize为读取数据大小,IpsData为存储读取数据
问题是方法ReadDeviceRandom2
需要传递一个int地址给它,但是python没有int地址。所以示例代码不起作用。在这种情况下,我如何将指针传递给它并读取它。
然后我使用其他方法
import win32com.client
plc = win32com.client.Dispatch("ActUtlType.ActUtlType.1")
plc.ActLogicalStationNumber = 1
plc.open()
value = 0
ret = plc.ReadDeviceRandom2("D300", 1, value)
print(ret, value)