存储PLCNext社区 LinkedIn上的PLCNEXT.Instagram上的PLCNEXT.  youtube上的plcnext. github plcnext社区存储PLCNext社区

  1. 朱丽叶
  2. PLCNEXT技术和PLCNEXT控件
  3. 20月28日星期六

我是PLCNEXT技术的新功能,所以如果我使用错误的术语,请原谅我。

我想编写一个实时PLM程序,可以读取输入“ARP.IO.AXCLC / 0.DI01”,而无需手动配置PLCNext工程师中的数字输入和PLM程序的输入变量之间的关联。

我知道我可以通过编写ACF项目来从实时环境之外完成,但我需要在实时环境中进行。

是否有一种方法可以从执行PLM程序中动态地创建数字输入和PLM程序变量之间的关联?或者是否有一些方法可以使用PLCNext Engineer使用PLCNext Engineer的额外手动配置来获取输入状态的其他方法?

Accepted Answer
Martin PLCnext Team 接受答案 等待审核
0
Votes
撤消

你好,

这是一个非常好的问题,表现出对PLCNext技术非常好的洞察力,因此无需道歉。 :-)

If you are writing a real-time PLM program in C++, then the "simplest" way to get access to I/O variables like "ARP.IO..AxclC/0.DI01" is to declare GDS port variables in your C++ program, and then connect these to corresponding I/O variables using a .gds.config file. When you configure port connections in PLCnext Engineer, it actually creates new entries in the file /opt/plcnext/projects/PCWE/Plc/Gds/PCWE.gds.config, which you can see on the PLC. But, there is no need to use PLCnext Engineer to make these port connections, you can "simply" create your own .gds.config file with the required port connections, and bypass PLCnext Engineer altogether.

因此,从等式中删除PLCNext工程师。但是,这些端口连接仍然必须在设计时进行 - 在运行时无法使新的端口连接“动态”。

一种配置方法 动态的 访问I / O变量正在使用ANSI-C接口。提供此接口,以便其他运行时系统 - 类似的代码 - 可以访问Axioline I / O.这通常不是在PLM程序中使用,但我想这可能是可能的。 ANSI-C接口在中展示 示例运行时示例 in Github.

最后,还可以使用“通用”I / O配置配置项目,从而有效地使地址空间看起来像512个输入字节和512个输出字节的数组。您可以将这两个数组连接到PLM程序中的端口变量,每个Axioline I / O点将显示在“通用”地址空间中的某处。这是一个非常灵活的选项,但您需要弄清楚每个I / O点位于地址空间中的任何给定的物理硬件配置,您都会丢失每个I / O点具有单个GDS端口的好处。如果要尝试此选项,则存在示例 公共汽车示例 in Github.

如果您有更多问题,请告诉我们。

〜马丁。

Phoenix联系电子总部 - PLCNext运行时产品管理和支持
julie 接受答案 等待审核
0
Votes
撤消

感谢您建议在PLM项目中使用ANSI-C接口。这种安排似乎工作。

如果其他人尝试执行此操作,请确保在CMAKELIST.TXT文件中包含以下行:

target_link_libraries(yourprogramname私有arpdevice arpprogramming arp.system.modulelib arp.system.module arp.plc.ansic)

  • 页 :
  • 1


这篇文章没有答复。
但是,您不允许回复此帖。