特殊指令:存储接口


存储接口指令可以在存储芯片上读取、写入、清除数据。

MemIf_Read:读取存储芯片数据

读取存储芯片数据指令用于将存储在芯片上的数据拷贝到PLC内存中去。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,读取存储芯片数据指令启动存储块的读取任务,如果任务已经被本指令启动,则只更新任务状态。
BlockUSINT输入存储块。
OffsetUINT输入读取数据在存储块中的偏移。
LenUINT输入读取数据的数量(字节单位)。
DataUSINT输入读取数据保存到PLC内存的位置。
DoneBIT输出0:读取未完成;1:读取完成或失败。
Error USINT 输出 失败的原因:
  • 0 : Err_None:无错误。
  • 1 : Err_BlockId:存储块不存在。
  • 2 : Err_Busy:存储块已被其他指令激活任务且任务未完成。
  • 3 : Err_Data:数据在PLC内存的位置错误。
  • 4 : Err_Length:数据范围错误。
  • 5 : Err_Failed:操作失败(存储芯片异常或通讯异常)。

MemIf_Write:写入存储芯片数据

写入存储芯片数据指令用于将PLC内存中的数据拷贝到存储芯片中去。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,写入存储芯片数据指令启动存储块的写入任务,如果任务已经被本指令启动,则只更新任务状态。
BlockUSINT输入存储块。
DataUSINT输入提取写入数据的PLC内存的位置。
DoneBIT输出0:读取未完成;1:读取完成或失败。
Error USINT 输出 失败的原因:
  • 0 : Err_None:无错误。
  • 1 : Err_BlockId:存储块不存在。
  • 2 : Err_Busy:存储块已被其他指令激活任务且任务未完成。
  • 3 : Err_Data:数据在PLC内存的位置错误。
  • 4 : Err_Length:数据范围错误。
  • 5 : Err_Failed:操作失败(存储芯片异常或通讯异常)。

MemIf_Invalidate:清除存储芯片数据

清除存储芯片数据指令用于将存储芯片中的数据完全擦除,恢复成存储芯片默认值(一般为16#FF)。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,写入存储芯片数据指令启动存储块的擦除任务,如果任务已经被本指令启动,则只更新任务状态。
BlockUSINT输入存储块。
DoneBIT输出0:擦除未完成;1:擦除完成或失败。
Error USINT 输出 失败的原因:
  • 0 : Err_None:无错误。
  • 1 : Err_BlockId:存储块不存在。
  • 2 : Err_Busy:存储块已被其他指令激活任务且任务未完成。
  • 3 : Err_Data:数据在PLC内存的位置错误。
  • 4 : Err_Length:数据范围错误。
  • 5 : Err_Failed:操作失败(存储芯片异常或通讯异常)。

MemIf_Compare:比较存储芯片数据

比较存储芯片数据指令用于比较存储在芯片上的数据与PLC内存中的数据是否一致。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,比较存储芯片数据指令启动存储块的比较任务,如果任务已经被本指令启动,则只更新任务状态。
BlockUSINT输入存储块。
OffsetUINT输入比较数据在存储块中的偏移。
LenUINT输入比较数据的数量(字节单位)。
DataUSINT输入比较数据在PLC内存的位置。
DoneBIT输出0:比较未完成;1:比较完成或失败。
Error USINT 输出 失败的原因:
  • 0 : Err_None:无错误。
  • 1 : Err_BlockId:存储块不存在。
  • 2 : Err_Busy:存储块已被其他指令激活任务且任务未完成。
  • 3 : Err_Data:数据在PLC内存的位置错误。
  • 4 : Err_Length:数据范围错误。
  • 5 : Err_Failed:操作失败(存储芯片异常或通讯异常)或比较不匹配。