首先附上github上的python与ads通讯的例子以及说明文档
https://github.com/stlehmann/pyads
http://pyads.readthedocs.io/en/latest/index.html
1、安装python。去python官网上下载即可
2、安装python与ads通讯需要的组件:pyads(有两种方法安装)
From PyPi:(推荐用这种方法,在CMD中,直接运行这条即可)
$ pip install pyads
From Github:
$ git clone https://github.com/MrLeeh/pyads.git --recursive $ cd pyads $ python setup.py install
3、测试运行python与twincat3走ads通讯
② twincat3程序为:
在MAIN中声明一个 int_val:int;
③ python这里先用idle运行,一条一条输入
import pyads
#第一个为ads地址,第二个为port号(直接填端口号,例如851)
plc = pyads.Connection('127.0.0.1.1.1', pyads.PORT_SPS1)
plc.open()
# read int value by name,这里可以从twincat读取到变量数值
i = plc.read_by_name("MAIN.int_val", pyads.PLCTYPE_INT)
# write int value by name 这里可以改变i值,写入twincat中
plc.write_by_name("MAIN.int_val", i, pyads.PLCTYPE_INT)
# close connection
plc.close()
4、报错以及解决方法
① FileNotFoundError: Could not find module 'TcAdsDll'. Try using the full path with constructor syntax.
顾名思义找不到TcAdsDLL。报错中还有一条叫做 pyads_ex.py", line 51, in <module>
找到pyads_ex.py文件路径,打开文件,找到第51行:
_adsDLL = ctypes.windll.TcAdsDll # type: ignore
把这句改一下,把TcAdsDll的绝对路径输入其中,然后就没有报错了。(注意路径格式)
_adsDLL = ctypes.windll.LoadLibrary("C:\\twincat\\AdsApi\\TcAdsDll\\TcAdsDll.dll")
5、最后附上各种类型变量通讯的例子
https://pyads.readthedocs.io/en/latest/quickstart.html#usage