主题中讨论的其他器件:ADS1115、
工具/软件:
我检查您的 EDS 文件。 仅展示了数字输入和数字输出的示例。
。


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

请帮助编写这些模拟输入的 EDS 样本文件。 (如果您有一些链接示例、请发送)
谢谢、
Thien Tran
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.
尊敬的 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
谢谢、
尊敬的 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/IP 适配器:API 参考
3)我需要一个有效的 ESD 文件。
我想说的 是、更耗时的任务是#2 (用 C 语言开发您的项目)。 之后、通过发送 EDS 文件让我知道您是否需要 EDS 文件的帮助、我可以查看它。
此致、
Pourya