问题标签 [sdo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 在测试中调用 SDOHelper.createRootDataObject 时的 NPE
我们有一个成功调用 WAS 的 WIM 的服务方法。在这种方法中,我们使用SDOHelper创建RootDataObject
和ControlDataObject
使用以下内容(如 IBM 文档中所述):
为了实现,我们将com.ibm.websphere.org.eclipse.emf
和org.eclipse.emf.ecore
JAR 添加到具有提供范围的类路径中,因为它是 WAS 的一部分。我们的源代码在实时环境中编译和工作。
现在我将尝试为此方法编写测试。但我会让 NPE 上线创建RootDataObject
但我不知道为什么或如何避免它来编写成功的测试方法
有什么建议么?
python - 是否可以使用 Python 和 cx_Oracle 进行空间查询?
我正在尝试使用 cx_Oracle 包通过 python 对 Oracle 空间表执行空间查询。
我可以成功地进行通用查询,但是当我尝试空间查询时会导致错误。
这是我尝试过的:
这导致错误:
谁能告诉我我可能在代码方面做错了什么,或者是否甚至可以使用 Python 和 cx_Oracle 进行空间查询?据我所知/发现,cx_Oracle 文档并没有专门解决这个问题。
oracle - 如何在oracle中查找点是否在多边形内?
第一次在这里发帖。原谅任何无知。
但是我需要构建一个 Oracle 查询来确定多边形或网格中有多少点。
我试图在网上搜索示例,但找不到任何示例。
任何答案或回应将不胜感激。谢谢!
ethercat - SDO ethercat SOEM/SOES
我正在使用 SOEM 和 SOES 库实现 SDO 通信,但我遇到了一些问题,有人可以帮助我吗?更详细地说,我使用一台带有 Ubuntu 的 PC 作为 Ethercat 主机和一个使用 LAN9252 的 ethercat 从机。从机连接到带有窗口 10 的 PC,该窗口用于加载 SOES 程序,一旦加载了软件,它就会在调试模式下保持连接以检查变量。我的 SDO 通信有问题。当我在我的主服务器上使用可选参数 -sdo 从命令窗口运行 slaveinfo.c 程序(该程序包含在 SOEM 库中)时,我获得以下结果:
SOEM (Simple Open EtherCAT Master) Slaveinfo 在 enp2s0 上启动 slaveinfo ec_init 成功。找到并配置了 1 个从站。计算的工作计数器 3
从站:1 名称:SSC_Device 输出大小:1024 位 输入大小:1024 位 状态:4 延迟:0[ns] 有 DC:1 DCParentport:0 活动端口:1.0.0.0 配置地址:1001 人:00000afc ID:00010000 修订:00000001 SM0 A :1000 L:128 F:00010026 类型:1 SM1 A:1200 L:128 F:00010022 类型:2 SM2 A:1400 L:128 F:00010064 类型:3 SM3 A:1600 L:128 F:00010020 类型:4 FMMU0 Ls:00000000 Ll:128 Lsb:0 Leb:7 Ps:1400 Psb:0 Ty:02 Act:01 FMMU1 Ls:00000080 Ll:128 Lsb:0 Leb:7 Ps:1600 Psb:0 Ty:01 Act:01 FMMUfunc 0:1 1:2 2:0 3:0 MBX 长度 wr:128 rd:128 MBX 协议:04 CoE 详细信息:0d FoE 详细信息:00 EoE 详细信息:00 SoE 详细信息:00 Ebus 电流:0[mA] 仅 LRD /LWR:0 ec_slave[cnt].mbx_proto:04 printSDO:1 结束slaveinfo,关闭socket 结束程序
问题是我没有看到根据 CoE 的 PDO 映射。我检查了master和slave之间的包交换,我看到master发送了一个请求,我的slave收到了,然后slave发送了响应请求但是master没有收到。从从属调试器中,我检查了 SM_status(同步管理器状态 SM1 0x080d),它是指示 mailmox 是否已满以及主机是否可以读取的寄存器,我看到该寄存器没有改变值。有人知道是什么问题吗?eeprom 内存需要具有特定的结构以允许正确的 SDO 通信?或者也许只是从属软件的问题?
谢谢。
can-bus - 在 SDO 块传输中可以使用的最大大小是多少?如何使用?
我正在尝试构建基于 CANOpen 原则的嵌入式系统。我构建了大部分对象字典。我主要与 SDO 沟通(主要是加急传输)。我以前曾经使用过一次 CANOpen 作为主机(所以我的限制很清楚),但是我现在在从机端。
最近我被要求通过相同的协议更新我设备的软件。为了做到这一点,我倾向于 SDO 块传输,但我不知道它是如何完成的;通过 SDO 块传输可以传输的最大大小是多少?
在 SDO 块传输中,如CiA301标准中所定义。
但是考虑块和序列:
相比之下,在同一个初始化中,我们设置了一个 m 值(由索引和子索引组成)。
哪一个(或没有)是真的?我在这里很困惑。
python - 没有收到 sdo 回复
我正在使用 python 创建一个虚拟的 canopen 从站,以与现有的主站通信。运行我的脚本时,我不断收到此错误“没有收到 sdo 响应”。据我所知,我需要一个 sdo 服务器来向主服务器发送响应,是否可以创建一个虚拟 sdo 服务器来完成这项工作?否则,有没有人知道如何解决这个问题?
canopen - CANOpen 多客户端 单服务器 SDO 通信
因为 SDO 通信用于点对点通信。CANOpen 服务器有没有办法同时与两个不同的客户端为同一个对象进行通信?
例如:节点 1(服务器):ID-5,OD:6023h,长度:100 字节节点 2(客户端):ID-10 节点 3(客户端):ID-11
Node-2 和 Node-3 可以同时从 Node-1 上传 6023h 吗?
如果不是,这是对 CANOpen 协议的限制吗?