首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python模块读取和写入贝克霍夫Plc中的结构(ADSError:符号not查找(1808年))

用Python模块读取和写入贝克霍夫Plc中的结构(ADSError:符号not查找(1808年))
EN

Stack Overflow用户
提问于 2022-07-26 06:48:25
回答 1查看 249关注 0票数 0

我试图在Linux下读写CX9020 Benchoff Plc中的变量。我正在做与Pyad文档示例中相同的事情,但是我得到了错误。我在下面添加了定义和错误。谢谢你的帮助。

PLC定义代码:

代码语言:javascript
复制
TYPE sample_structure :
STRUCT
    rVar : LREAL;
    rVar2 : LREAL;
    rVar3 : LREAL;
    rVar4 : ARRAY [1..3] OF LREAL;
END_STRUCT
END_TYPE

Python代码:

代码语言:javascript
复制
import sys
import pyads

PLC_AMS_ID= '5.41.49.218.1.1'
SENDER_AMS = '192.168.0.5.1.1'
PLC_IP = '192.168.0.8'
PLC_USERNAME = 'Administrator'
PLC_PASSWORD = '1'
ROUTE_NAME = 'CX-682843'
HOSTNAME = '192.168.0.5'  # or IP
vel_f,vel_b,vel_l,vel_r =0.0,0.0,0.0,0.0
sol_hiz,sag_hiz=0,0
vel_msg=0
pyads.set_local_address(SENDER_AMS)
pyads.add_route_to_plc(SENDER_AMS, HOSTNAME, PLC_IP, PLC_USERNAME, PLC_PASSWORD, route_name=ROUTE_NAME)
plc = pyads.Connection (PLC_AMS_ID, 851,PLC_IP)
plc.open ()

plc.write_by_name('GVL.sample_structure',[11.1, 22.2, 33.3, 44.4, 55.5, 66.6],pyads.PLCTYPE_LREAL * 6)
plc.read_by_name('GVL.sample_structure', pyads.PLCTYPE_LREAL * 6)

错误信息:

代码语言:javascript
复制
2022-07-26T08:43:12+0300 Info: Connected to 192.168.0.8
Traceback (most recent call last):
  File "sampleStruct.py", line 22, in <module>
    plc.write_by_name('GVL.sample_structure',[11.1, 22.2, 33.3, 44.4, 55.5, 66.6],pyads.PLCTYPE_LREAL * 6)
  File "/usr/local/lib/python3.6/dist-packages/pyads/ads.py", line 900, in write_by_name
    self._port, self._adr, data_name, value, plc_datatype, handle=handle
  File "/usr/local/lib/python3.6/dist-packages/pyads/pyads_ex.py", line 1018, in adsSyncWriteByNameEx
    handle = adsGetHandle(port, address, data_name)
  File "/usr/local/lib/python3.6/dist-packages/pyads/pyads_ex.py", line 777, in adsGetHandle
    PLCTYPE_STRING,
  File "/usr/local/lib/python3.6/dist-packages/pyads/pyads_ex.py", line 638, in adsSyncReadWriteReqEx2
    raise ADSError(err_code)
pyads.pyads_ex.ADSError: ADSError: symbol not found (1808). 
2022-07-26T08:43:12+0300 Info: connection closed by remote
EN

回答 1

Stack Overflow用户

发布于 2022-11-29 18:45:02

您已经创建了结构,但还没有在GVL中完成实现。

您必须添加GVL:

代码语言:javascript
复制
VAR_GLOBAL

    sample_structure : sample_structure;

END_VAR
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73118844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档