ProU说明   快速入门   指令说明   运动控制   EtherCAT   C语言   可视化   CAD   通讯   PCI控制卡   MECHATROLINK   程序模板   ProH   YKCAT   视觉组件   WinPLC   附录  
上一页 下一页

API接口

提供给第三方软件接口,用于访问网络上的ProH数据。本API内部使用ModbusTCP协议和ProH通讯,访问前需要开启ProH的Modbus服务器功能。

1.文件说明

YKApi.h C++头文件,内含函数定义以及参数说明
YKApiX64.lib Windows64位系统的lib文件
YKApiX64.dll Windows64位系统的dll文件
YKApiX86.lib Windows32位系统的lib文件
YKApiX86.dll Windows32位系统的dll文件

文件目录:D:\YouKong\ProH\YKApi

2.返回值

0 无报错
-1 连接ProH失败,检查ip地址以及端口号是否对的上,以及查看ProH是否启动了modbus服务器
-2 无效的句柄,检查句柄是否为connect函数返回。
-3 元件类型错误
-4 数量越界,检查元件数量是否超出元件最大数量
-5 无效的连接句柄
-6 接收数据超时

3.连接管理

3.1获取库版本

指令原型 YK_API GetVer()
指令说明 获取库版本号
指令返回值 版本号

3.2连接服务器

指令原型 YK_API Connect(char *ip_addr, int ip_port)
指令说明 连接ProH
ip_addr IP地址,例:"192.168.0.1"为本机。注意:当ProH与上位软件不在同一台机时,两机的网口网段必须设置为一样,127.0.0.1为本机ip
ip_port 端口号,在ProH系统设置中的'网络通讯'里的'modbus/tcp'处设置,默认502
指令返回值 大于0的数为句柄,小于0的数为错误代码

3.3断开服务器

指令原型 YK_API Close(int handle);
指令说明 关闭连接ProH,注意重启ProH后重新连接时,记得先把handle号关闭掉,再重连
handle Connect返回的句柄
指令返回值 参考

4.字元件读写

4.1读字元件

指令原型

YK_API ReadWordT(int handle, unsigned int index, unsigned int num, unsigned short *data); //读取计时器元件

YK_API ReadWordC16(int handle, unsigned int index, unsigned int num, unsigned short *data); //读取C计数器元件

YK_API ReadWordC32(int handle, unsigned int index, unsigned int num, unsigned short *data); //读取C高速计数器元件

YK_API ReadWordD(int handle, unsigned int index, unsigned int num, unsigned short *data); //读取D寄存器元件

YK_API ReadWordSD(int handle, unsigned int index, unsigned int num, unsigned short *data); //读取SD寄存器元件

YK_API ReadWordR(int handle, unsigned int index, unsigned int num, unsigned short *data); //读取R寄存器元件

YK_API ReadWordRD(int handle, unsigned int index, unsigned int num, unsigned short *data); //读取RD寄存器元件

YK_API ReadWordVD(int handle, unsigned int index, unsigned int num, unsigned short *data); //读取VD寄存器元件

指令说明 读取各种字元件,所有的函数参数都是一样的
handle Connect返回的句柄
index 读取的字元件起始索引
num 读取的字元件数量(modbus协议限制了,一次最多125)
data 读取到的元件数据存储地址
指令返回值 参考

4.2写字元件

指令原型

YK_API WriteWordT(int handle, unsigned int index, unsigned int num, unsigned short *data); //写入计时器元件

YK_API WriteWordC16(int handle, unsigned int index, unsigned int num, unsigned short *data); //写入C计数器元件

YK_API WriteWordC32(int handle, unsigned int index, unsigned int num, unsigned short *data); //写入C高速计数器元件

YK_API WriteWordD(int handle, unsigned int index, unsigned int num, unsigned short *data); //写入D寄存器元件

YK_API WriteWordSD(int handle, unsigned int index, unsigned int num, unsigned short *data); //写入SD寄存器元件

YK_API WriteWordR(int handle, unsigned int index, unsigned int num, unsigned short *data); //写入R寄存器元件

YK_API WriteWordRD(int handle, unsigned int index, unsigned int num, unsigned short *data); //写入RD寄存器元件

YK_API WriteWordVD(int handle, unsigned int index, unsigned int num, unsigned short *data); //写入VD寄存器元件

指令说明 写入各种字元件,所有的函数参数都是一样的
handle Connect返回的句柄
index 写入的字元件起始索引
num 写入的字元件数量(modbus协议限制了,一次最多125)
data 写入数据存储地址
指令返回值 参考

5.位元件读写

5.1读位元件

指令原型

YK_API ReadBitX(int handle, unsigned int index, unsigned int num, unsigned short *data); //读取X输入继电器元件

YK_API ReadBitY(int handle, unsigned int index, unsigned int num, unsigned short *data); //读取Y输出继电器元件

YK_API ReadBitM(int handle, unsigned int index, unsigned int num, unsigned short *data); //读取M辅助继电器元件

YK_API ReadBitSM(int handle, unsigned int index, unsigned int num, unsigned short *data); //读取SM继电器元件

YK_API ReadBitS(int handle, unsigned int index, unsigned int num, unsigned short *data); //读取S状态继电器元件

YK_API ReadBitB(int handle, unsigned int index, unsigned int num, unsigned short *data); //读取B继电器元件

YK_API ReadBitL(int handle, unsigned int index, unsigned int num, unsigned short *data); //读取L继电器元

YK_API ReadBitF(int handle, unsigned int index, unsigned int num, unsigned short *data); //读取F继电器元件

指令说明 读取各种位元件,所有的函数参数都是一样的
handle Connect返回的句柄
index 读取的位元件起始索引
num 读取的位元件数量(modbus协议限制了,一次最多125)
data 读取到的元件数据存储地址; 注意:虽然data的数据类型为16位,但是每一个16位的数皆代表其中一个位,值都为0或者1
指令返回值 参考

5.2写位元件

指令原型

YK_API WriteBitX(int handle, unsigned int index, unsigned int num, unsigned short *data);
//写入X输入继电器元件

YK_API WriteBitY(int handle, unsigned int index, unsigned int num, unsigned short *data);
//写入Y输出继电器元件

YK_API WriteBitM(int handle, unsigned int index, unsigned int num, unsigned short *data);
//写入M辅助继电器元件

YK_API WriteBitSM(int handle, unsigned int index, unsigned int num, unsigned short *data); //写入SM继电器元件

YK_API WriteBitS(int handle, unsigned int index, unsigned int num, unsigned short *data);
//写入S状态继电器元件

YK_API WriteBitB(int handle, unsigned int index, unsigned int num, unsigned short *data);
//写入B继电器元件

YK_API WriteBitL(int handle, unsigned int index, unsigned int num, unsigned short *data);
//写入L继电器元

YK_API WriteBitF(int handle, unsigned int index, unsigned int num, unsigned short *data);
//写入F继电器元件

指令说明 写入各种位元件,所有的函数参数都是一样的
handle Connect返回的句柄
index 写入的位元件起始索引
num 写入的位元件数量(modbus协议限制了,一次最多125)
data 写入的元件数据存储地址; 注意:虽然data的数据类型为16位,但是每一个16位的数皆代表其中一个位,值都为0或者1,其中大于1的都为1
指令返回值 参考

6.数据转换

6.1元件值转浮点数

指令原型 YK_API WordToFloat(short *word, float *fv)
指令说明 将读回来的元件转换为浮点数
word 读回来的元件值,2个16位二进制数
fv 浮点数结果
指令返回值 参考

6.2浮点数转元件值

指令原型 YK_API FloatToWord(float fv, short *word)
指令说明 将浮点数转换为元件值
fv 带转换的浮点数
word 转换结果,2个16位二进制数
指令返回值 参考

7.程序示例

点击下载

上一页 下一页
Copyright © 2020 深圳市优易控软件有限公司 www.proutech.com