FAQ-欧姆龙主机通过CoE指令对SM693H-1R(T)H22-ECT读写PID参数

发布时间:2022-05-13 14:20:17     来源:

本文档介绍说明如何通过COE读写指令实现欧姆龙主机对SM693H-1R(T)H22-ECT温控模块的PID参数等数据的读写,在程序中使用EC_CoESDOWTIREEC_CoeSDOREAD指令进行参数的读写(COE读写指令只能单边执行,需要采用轮询读写的方式来实现数据的持续性读入和写出)

分割线.png

相关硬件

1、欧姆龙控制器(本例使用NX1P2-9024DT)

2SM693H-1R(T)H22-ECT

分割线.png

1. 相关COE指令说明

1.1 EC_CoESDOREAD指令说明

图片1.png

1.2 EC_CoESDOWTIRE指令说明图片2.png

1.3 SDO结构体说明图片3.png

分割线.png

2. SM693H-1R(T)H22-ECT温控模块COE地址说明

图片4.png

分割线.png

3. EC_CoESDOREAD用法详情

1、建立变量,新建的变量在指令中需要用到,因此数据类型需要正确:

图片5.png

2、打开编程软件,在工具箱中的communication下找到EC_CoESDOREAD指令并调用:

图片6.png

图片7.png

指令中各参数说明:

①设置要访问的从站的节点地址(如上图:节点地址1

SDO参数,SDO参数需要额外添加程序对IndexSubindexIsCompleteAccess三个地址写相应的值:

图片8.png

网络7编辑对应SDO设置参数

图片9.png

③设置超时时间2S20*0.1s

读取数据保存用缓存地址(本案例使用数组形式:ARRAY[0..39] OF UINT

⑤功能块为上升沿有效读取一次,因此需要保持周期性脉冲来实现数据的持续性读入。

分割线.png

4. EC_CoESDOWTIRE用法详情

打开编程软件,在工具箱中的communication下找到EC_CoESDOWTIR指令并调用:

图片10.png

图片11.png

指令中各参数说明:

要访问的从站的节点地址(如上图:节点地址1

SDO参数,SDO参数需要额外添加程序对IndexSubindexIsCompleteAccess三个地址写相应的值:

图片12.png

网络7编辑对应SDO设置参数

图片13.png

③设置超时时间2S20*0.1s

④写入数据地址(本案例使用数组形式:ARRAY[0..39] OF UINT

写入数据大小(单位:字节)

⑥功能块为上升沿有效读取一次,因此需要保持周期性脉冲来实现数据的持续性写入。

分割线.png

5. COE参数的连续性读写

注:(由于COE读写指令只能单边单个指令执行,同时多个读或多个写,指令将不能正常运行)

①本案例采用定时器实现轮询持续性读写,仅供参考。

图片14.png

设定定时器1.6S,置位m,定时器计时到1.6SD0输出1使定时器重新计时,如此循环。

网络1Read100.2S执行一次读取

网络2Read20.20.4S执行一次读取

以下网络4...6的读取和写入依次按照此规律实现持续读取和写入。

分割线.png

6监控结果

编程完后编译没有错误将程序传送到CPU

图片15.png

  置位m位,下图是读取到的所有通道数据

图片16.png

置位m1,设置新的比例值,执行数据写入

图片17.png

监控读取发现数值已经写入成功。

图片18.png

以上为多个值持续性读取,写入,因此每次写入时需要多个地址都必须设置有值,否则其他地址为0时,也会把0值写入,如果需要单个地址写入数据可参考以下设置。

 

:要设置第二个温控通道的积分Ti

图片19.png

设定SDO参数:

1Index---主索引地址:0x2000

2Subindex---子索引地址:2(第二个温控通道的积分Ti

3IsCompleteAccess访问:FALSE(访问指定子索引的数据)

图片20.png

新建变量进行关联,如下步骤

图片21.png

在线,监控到的第二个通道的数值是400

图片22.png

320值设置进变量Tivalue,置位m2

图片23.png

再次监控第二通道的地址发现单个数值已写入成功。

图片24.png

end.png