【问题标题】:Read and Write Structures in the Beckhoff Plc with Python Pyads Module(ADSError: symbol not found (1808))使用 Python Pyads 模块在 Beckhoff Plc 中读写结构(ADSError:未找到符号(1808))
【发布时间】:2022-11-30 02:47:32
【问题描述】:

我正在尝试在 Linux 的 CX9020 Benchoff Plc 中读取和写入结构变量。我正在做与 Pyads 文档示例中相同的事情,但出现错误。我在下面添加了定义和错误。谢谢你的帮助。

PLC定义代码:

TYPE sample_structure :
STRUCT
    rVar : LREAL;
    rVar2 : LREAL;
    rVar3 : LREAL;
    rVar4 : ARRAY [1..3] OF LREAL;
END_STRUCT
END_TYPE

蟒蛇代码:

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)

错误信息 :

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

【问题讨论】:

    标签: python linux structure plc


    【解决方案1】:

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

    您必须添加 GVL:

    VAR_GLOBAL
    
        sample_structure : sample_structure;
    
    END_VAR
    

    【讨论】:

      猜你喜欢
      • 2021-04-26
      • 1970-01-01
      • 1970-01-01
      • 2021-09-24
      • 1970-01-01
      • 2011-06-17
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多