This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] LP-AM243:EDS Ethernet/IP 模拟输入如何将8个模拟输入写入 ESD 文件 EtherNet/IP - CODESYS

Guru**** 2448780 points
Other Parts Discussed in Thread: ADS1115, LP-AM243

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1501551/lp-am243-eds-analog-input-for-ethernet-ip-how-to-write-8-analog-input-to-esd-file-ethernet-ip--codesys

器件型号:LP-AM243
主题中讨论的其他器件:ADS1115

工具/软件:

我检查您的 EDS 文件。 仅展示了数字输入和数字输出的示例。  

  

我正在工作 一个项目,使用8模拟输入,使用示例程序

   

请帮助编写这些模拟输入的 EDS 样本文件。  (如果您有一些链接示例、请发送)

谢谢、

Thien Tran

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的  Thien:

    如果我理解正确、您希望使用 EtherNet/IP 开发一个工程并使用模拟输入、您可以参考离散 I/O 配置文件示例作为起点。
    第一个问题是、是否要实施器件配置文件? 否则、您的设备配置文件应为通用设备。
    您想如何对模拟输入点进行建模? 您有两个选项:实施 ODVA 规范第1卷第5A-11节中指定的模拟输入点对象、或者实施您自己的模型。
    在您清楚这一点后、您可以轻松调整 EDS 文件、请使用 ODVA 的 EZ-EDS 工具创建/调整 EDS 文件。


    此致、
    Pourya

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Pourya。

    我可以使用通用器件。 TI 应该为 IC2或 SPI 8通道各提供一个示例 ESD 文件。 模拟输入和模拟输出。  

    我们正在制造,我们需要一个更快的解决方案,

    EZ-EDS 仅帮助修改 EDS 文件。

    我尝试使用 chatgpt

    让我们写一个 完成程序 中的示例 AM243 消息流 CODESYS 、其中包括从读取8通道模拟数据所需的所有功能 ADS1115 。 还为 EtherNet/IP 编写 EDS 文件。  

    请帮助检查以下代码编写器程序和 eds 文件。 谢谢。

    // CODESYS 中的 ADS1115读取程序

    //声明变量
    增值
    I2C_Master:I2C_Master;// I2C 主设备通信
    ADC_Result:INT 的 array[0..7];//存储来自8个通道的结果
    ADS1115_Address:byte:= 16#48;// ADS1115的 I2C 地址
    channel:INT;//通过通道循环
    Raw_Value:INT;//用于存储原始 ADC 值
    END_VAR

    //初始化 I2C 主器件通信
    I2C_Master.Device:= ADS1115_Address;
    I2C_Master.Mode:= I2C_MACHINE; Mode_Transfer
    I2C_Master.ClockSpeed:= 100000;// 100kHz

    //功能块用于读取8个通道
    对于通道:= 0到7执行
    //假设您将 ADS1115配置为在每个通道上读取:
    Raw_Value := Read_ADC_Channel(Channel);//应实现此函数以从 ADS1115读取数据
    ADC_Result[通道]:= Raw_Value;
    端口号

    //从 ADS1115通道读取的功能(简化版)
    函数 READ_ADC_Channel:INT
    VAR_INPUT
    通道:INT;//要读取的通道(0-7)
    END_VAR
    增值
    ADC_Command:array[0..1](字节);//发送到 ADS1115的命令
    结果:INT;//存储转换结果
    END_VAR

    //设置命令以选择通道并开始转换
    ADC_Command[0]:= 16#40 + Channel;//通道选择示例命令
    ADC_Command[1]:= 16#00;//示例配置字节

    //将命令写入 ADS1115以开始转换
    I2C_Master.Write (ADC_Command、2);

    //等待转换完成(仿真的简单延迟)
    Delay (500);//根据 ADS1115规格在此处添加实际转换时间

    //从 ADS1115读取结果
    I2C_Master.Read (ADC_Command、2);

    //返回结果(合并字节)
    result :=(ADC_Command[0] SHL 8)或 ADC_Command[1];

    返回结果;
    END_FUNCTION

    ***************************************

    [器件]
    DeviceType=Ethernet/IP
    DeviceName =模拟输入器件
    vendorName=您的公司
    ProductName=ADS1115模拟输入
    ProductCode=0x1234
    修订版=1.0

    [IdentityObject]
    ObjectType=Identity
    VendorID=0x0000
    DeviceType=0x0001
    ProductCode=0x1234
    修订版=1.0
    ProductName=ADS1115模拟输入

    [连接管理器]
    SupportedConnectionTypes=0x01;显式消息(常用)

    [参数]
    Parameter_1=模拟输入1
    Parameter_2=模拟输入2
    Parameter_3=模拟输入3
    Parameter_4=模拟输入4
    Parameter_5=模拟输入5.
    Parameter_6=模拟输入6
    Parameter_7=模拟输入7
    Parameter_8 =模拟输入8

    [连接]
    连接类型=0x01
    ConnectionName=AnalogInputConnection
    Protocol=Ethernet/IP
    ServiceType=0x04;I/O 连接
    连接 ID=0x01

    [输入]
    Input_1=模拟输入1
    Input_2=模拟输入2
    Input_3=模拟输入3
    Input_4=模拟输入4
    Input_5=模拟输入5
    Input_6=模拟输入6
    Input_7=模拟输入7
    INPUT_8 =模拟输入8

    [输出]
    OUTPUT_1=模拟输出1

    [对象字典]
    [1000]
    参数名称=模拟输入1
    datatype=0x0006;UINT16
    AccessType=Access. ro
    PDOMapping=1

    [1001]
    参数名称=模拟输入2
    datatype=0x0006;UINT16
    AccessType=Access. ro
    PDOMapping=1

    [1002]
    参数名称=模拟输入3
    datatype=0x0006;UINT16
    AccessType=Access. ro
    PDOMapping=1

    [1003]
    参数名称=模拟输入4
    datatype=0x0006;UINT16
    AccessType=Access. ro
    PDOMapping=1

    [1004]
    参数名称=模拟输入5.
    datatype=0x0006;UINT16
    AccessType=Access. ro
    PDOMapping=1

    [1005]
    参数名称=模拟输入6
    datatype=0x0006;UINT16
    AccessType=Access. ro
    PDOMapping=1

    [1006]
    参数名称=模拟输入7
    datatype=0x0006;UINT16
    AccessType=Access. ro
    PDOMapping=1

    [1007]
    参数名称=模拟输入8
    datatype=0x0006;UINT16
    AccessType=Access. ro
    PDOMapping=1

    **************************************************

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Thien:

    为生成的代码 CODESYS 是针对您的软 PLC 端、但我想这不是您要从 Chatgpt 询问的问题。  
    您的 AM243x 电路板使用 ADC 读取值并将其传递到 EtherNet/IP 侧的模拟输入对象、而您的 PLC 使用 EDS 文件可以读取和解释这些值、您是否正在尝试执行什么操作?  
    如果是、则整个生成的 CODESYS 代码对您来说用处不大。  

    我不明白、您的意思是"EZ-EDS 仅帮助修改 EDS 文件。"。  您对 EZ-EDS 还有什么期待? 基本上,你必须在 Param 部分中添加参数,正如我看到 chatgpt 为你做的那样,然后你需要调整你的装配体,如果需要,在连接管理器下,独占所有者连接。
    "调整"或"更改"应该是什么、取决于您的应用程序、换句话说、您需要清楚地了解装配体和您的专属所有者连接。  

    此致、
    Pourya

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Pourya。

    我从您的 Ethernet/IP 示例中与 AM64 - LP-AM243合作。 Codesys、我可以打开和关闭 LED。 (I2C)

    您的 AM243x 电路板使用 ADC 读取值并将其传递到 EtherNet/IP 侧的模拟输入对象、而您的 PLC 使用 EDS 文件可以读取和解释这些值、您是否正在尝试执行什么操作?  是的。

    我训练了 CHATGPT ( CODESYS -以太网/IP ,这将生成 ESD 文件,但我不确定它是否正确)后,我将使用 EZ-EDS 来更改几个参数。

    1)我需要示例程序可以读取8模拟输入 我不是很熟悉 TI 软件,但如果你有一个很好的工作示例,所以我可以修改。

    2)我需要德州仪器(TI)  的一个示例程序读取这些值并将其传递到 EtherNet/IP 侧的8个模拟输入对象。

    3)我需要一个有效的 ESD 文件。

    如果可能、请提供帮助。

    如果你有一些顾问,我需要有这些程序来尽快完成  

    我的电子邮件: vnsemi@gmail.com

             ttran@nktechnologies.com

    谢谢、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Thien:

    请澄清以下几点以避免混淆:
    1)您的意思是、您已经尝试使用运行 CODESYS 的 AM64x 运行一个示例? 它与您的最终项目有什么关系? 这使我想到下一个问题:
    2)您的目标硬件是什么? 是 AM243x 还是 AM64x?

    关于您的问题:
    1)我需要示例程序可以读取8模拟输入 我不是很熟悉 TI 软件,但如果你有一个很好的工作示例,所以我可以修改。

    我不知道 MCU+SDK 中有任何可以从外部 ADC 芯片( ADS1115 )读取模拟值的示例。 但是、您可以使用一个示例来为 AM243x 进行移植。 请参阅 ADS1115-ADS1115 C-EXAMPLE-CODE 支持软件|德州仪器 TI.com 

    2)我需要德州仪器(TI)  的一个示例程序读取这些值并将其传递到 EtherNet/IP 侧的8个模拟输入对象。

    没有这样的例子。 您需要自己实施模拟输入对象(如前所述、您希望如何在 EtherNet/IP 中对模拟输入进行建模、您应该实现 ODVA 规范中指定的模拟输入对象、或者您必须实现自己的模型)。
    请参阅分立式 I/O 示例或通用器件示例、作为开发工程的起点。
    下面是用于 EtherNet/IP 协议栈的 API:Ethernet/IPTm 适配器:API 参考


    3)我需要一个有效的 ESD 文件。

    我想说的  是、更耗时的任务是#2 (用 C 语言开发您的项目)。 之后、通过发送 EDS 文件让我知道您是否需要 EDS 文件的帮助、我可以查看它。  

    此致、
    Pourya