特殊指令:PPI通讯


PPI通讯指令支持以下物理介质的通讯:

  • RS485:由驱动模块Rs485_PPIL实现。
  • 以太网:由驱动模块TcpIp_PPIL实现。
  • CAN:由驱动模块Can_PPIL实现。

PPI_Enable:PPI通讯端口使能

本指令用于通讯端口的使能,使能通讯端口需要指定工作模式、站地址。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,使能对应端口上的PPI通讯协议,如果端口上的协议已经使能,则更新工作模式和站地址。
PortUSINT输入通讯端口。
Mode USINT 输入 PPI工作模式。
  • Disable:通讯端口除能PPI协议。
  • Master:通讯端口做为主站使能PPI协议(参与令牌环的传递)。
  • Slave:通讯端口做为从站使能PPI协议(不参与令牌环的传递)。
AddrUSINT输入PPI站地址(1至255)。
ErrorUSINT输出操作结果。

PPI_MasterStatus:获取通讯端口的主站状态

本指令用于获取通讯端口的主站状态。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,获取通讯端口的主站状态,并将状态写入指定的变量中去。
PortUSINT输入通讯端口。
EnabledBIT输出PPI主站协议是否使能。
AddrUSINT输出PPI站地址。
BusyUSINT输出PPI主站激活的连接数量。
FreeUSINT输出PPI主站空闲的连接数量。
FinishedUDINT输出PPI主站通讯成功的次数。
FailedUDINT输出PPI主站通讯失败的次数。

PPI_SlaveStatus:获取通讯端口的从站状态

本指令用于获取通讯端口的从站状态。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,获取通讯端口的从站状态,并将状态写入指定的变量中去。
PortUSINT输入通讯端口。
EnabledBIT输出PPI从站协议是否使能。
AddrUSINT输出PPI站地址。
BusyUSINT输出PPI从站激活的连接数量。
FreeUSINT输出PPI从站空闲的连接数量。
FinishedUDINT输出PPI从站通讯成功的次数。
FailedUDINT输出PPI从站通讯失败的次数。

PPI_Rs485Setup:RS485通讯参数设置

本指令用来设置RS485通讯口的通讯参数。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,设置通讯参数。
PortUSINT输入通讯端口。
HiAddrUSINT输入总线上的最高主站地址(用于传递令牌环时的下级主站检测)。
BaudRate USINT 输入 串行总线的通讯波特率:
  • [0] - BaudRate_9K6:通讯波特率为9.6K位/秒。
  • [1] - BaudRate_19K2:通讯波特率为19.2K位/秒。
  • [2] - BaudRate_187K5:通讯波特率为187.5K位/秒。
RetryCntUSINT输入主站通讯重试的次数。
GapUpdateFactorUSINT输入刷新间隔系数(主站在第几次获得令牌环时,进行下级主站检测)。
Err USINT 输出 配置操作是否出错:
  • [0] - Err_None:无错误。
  • [4] - Err_Failed:配置失败。

PPI_CanSetup:CAN通讯参数设置

本指令用来设置CAN通讯口的通讯参数。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,设置通讯参数。
PortUSINT输入通讯端口。
ExtBOOL输入通讯帧类型:0 - 标准帧,1 - 扩展帧。
MtsrIdUDINT输入主站发送数据帧的ID号。
MrstIdUDINT输入从站发送数据帧的ID号。
ReplyWaitTUINT输入主站请求发送后,等待从站应答的时间。
InterFrameTUINT输入多帧数据通讯的最大间隔时间。
Err USINT 输出 配置操作是否出错:
  • [0] - Err_None:无错误。
  • [4] - Err_Failed:配置失败。

PPI_TcpSetup:TCP/IP通讯参数设置

本指令用来设置TCP/IP通讯口的通讯参数。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,设置通讯参数。
PortUSINT输入通讯端口。
LocalPortUINT输入以TCP/IP通讯的端口,PPI通讯默认使用102。
ReyplyWaitTUINT输入主站请求发送后,等待从站应答的时间。
MasterKeepTUINT输入主站空闲后,保持连接的时间。
SlaveKeepTUINT输入从站空闲后,保持连接的时间。
Err USINT 输出 配置操作是否出错:
  • [0] - Err_None:无错误。
  • [4] - Err_Failed:配置失败。

PPI_Rs485Read:PPI读变量(串口)

本指令通过串口读取远程PPI设备的变量值。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,PPI读变量指令将通讯任务写入对应通讯端口的任务队列。如果任务已经在队列中,则只更新任务状态。
PortUSINT输入通讯端口。
SlaveUSINT输入远程设备的PPI从站地址。
AddrUSINT输入远程设备的变量地址。
CountUSINT输入需要读取变量的数量。
DataUSINT输出读取变量的值(连续多个变量,数量由Count决定)。
DoneBIT输出0:读取未完成;1:读取完成或失败。
Error USINT 输出 读取失败的原因:
  • Err_None:无错误。
  • Err_Port:通讯端口不存在或通讯介质错误。
  • Err_QueueIsFull:通讯任务队列满。
  • Err_Addr:远程设备变量格式错误。
  • Err_Failed:通讯超时或应答错误。

PPI_Rs485Write:PPI写变量(串口)

本指令通过串口修改远程PPI设备的变量值。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,PPI读变量指令将通讯任务写入对应通讯端口的任务队列。如果任务已经在队列中,则只更新任务状态。
PortUSINT输入通讯端口。
SlaveUSINT输入远程设备的PPI从站地址。
AddrUSINT输入远程设备的变量地址。
CountUSINT输入需要修改变量的数量。
DataUSINT输入变量修改的值。(连续多个变量,数量由Count决定)
DoneBIT输出0:修改未完成;1:修改完成或失败。
Error USINT 输出 修改失败的原因:
  • Err_None:无错误。
  • Err_Port:通讯端口不存在或通讯介质错误。
  • Err_QueueIsFull:通讯任务队列满。
  • Err_Addr:远程设备变量格式错误。
  • Err_Failed:通讯超时或应答错误。

PPI_CanRead:PPI读变量(CAN)

本指令通过CAN读取远程PPI设备的变量值。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,PPI读变量指令将通讯任务写入对应通讯端口的任务队列。如果任务已经在队列中,则只更新任务状态。
PortUSINT输入通讯端口。
SlaveUSINT输入远程设备的PPI从站地址。
AddrUSINT输入远程设备的变量地址。
CountUSINT输入需要读取变量的数量。
DataUSINT输出读取变量的值(连续多个变量,数量由Count决定)。
DoneBIT输出0:读取未完成;1:读取完成或失败。
Error USINT 输出 读取失败的原因:
  • Err_None:无错误。
  • Err_Port:通讯端口不存在或通讯介质错误。
  • Err_QueueIsFull:通讯任务队列满。
  • Err_Addr:远程设备变量格式错误。
  • Err_Failed:通讯超时或应答错误。

PPI_CanWrite:PPI写变量(CAN)

本指令通过CAN修改远程PPI设备的变量值。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,PPI读变量指令将通讯任务写入对应通讯端口的任务队列。如果任务已经在队列中,则只更新任务状态。
PortUSINT输入通讯端口。
SlaveUSINT输入远程设备的PPI从站地址。
AddrUSINT输入远程设备的变量地址。
CountUSINT输入需要修改变量的数量。
DataUSINT输入变量修改的值。(连续多个变量,数量由Count决定)
DoneBIT输出0:修改未完成;1:修改完成或失败。
Error USINT 输出 修改失败的原因:
  • Err_None:无错误。
  • Err_Port:通讯端口不存在或通讯介质错误。
  • Err_QueueIsFull:通讯任务队列满。
  • Err_Addr:远程设备变量格式错误。
  • Err_Failed:通讯超时或应答错误。

PPI_TcpRead:PPI读变量(以太网)

本指令通过以太网读取远程PPI设备的变量值。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,PPI读变量指令将通讯任务写入对应通讯端口的任务队列。如果任务已经在队列中,则只更新任务状态。
PortUSINT输入通讯端口。
IPAddr1 - IPAddr4USINT输入远程设备的IP地址。
IPPortUINT输入远程设备的端口号,PPI协议默认使用102。
AddrUSINT输入远程设备的变量地址。
CountUSINT输入需要读取变量的数量。
DataUSINT输出读取变量的值(连续多个变量,数量由Count决定)。
DoneBIT输出0:读取未完成;1:读取完成或失败。
Error USINT 输出 读取失败的原因:
  • Err_None:无错误。
  • Err_Port:通讯端口不存在或通讯介质错误。
  • Err_QueueIsFull:通讯任务队列满。
  • Err_Addr:远程设备变量格式错误。
  • Err_Failed:通讯超时或应答错误。

PPI_TcpWrite:PPI写变量(以太网)

本指令通过以太网修改远程PPI设备的变量值。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,PPI读变量指令将通讯任务写入对应通讯端口的任务队列。如果任务已经在队列中,则只更新任务状态。
PortUSINT输入通讯端口。
IPAddr1 - IPAddr4USINT输入远程设备的IP地址。
IPPortUINT输入远程设备的端口号,PPI协议默认使用502。
AddrUSINT输入远程设备的变量地址。
CountUSINT输入需要修改变量的数量。
DataUSINT输入变量修改的值。(连续多个变量,数量由Count决定)
DoneBIT输出0:修改未完成;1:修改完成或失败。
Error USINT 输出 修改失败的原因:
  • Err_None:无错误。
  • Err_Port:通讯端口不存在或通讯介质错误。
  • Err_QueueIsFull:通讯任务队列满。
  • Err_Addr:远程设备变量格式错误。
  • Err_Failed:通讯超时或应答错误。