第一章 产品简介
1. 产品介绍
金南瓜SECS/GEM是最适应于全自动智能设备的选择。 DMS SECS/GEM具有怪兽级的强劲性能,全面升级的高适应性,易用友好的SECS工具,利于快速开发部署。
金南瓜SECS/GEM兼容运行在独自工控机,或与设备软件集成在一台工控机,让用户灵活应对各种使用场景。
2. 软件清单与展示
全部软件目录清单
2.1软件清单
1 SECS/GEM用户
提供EquipViewApp.exe和HostViewApp.exe俩款demo软件,分别对应的场景是设备端和主机端模拟。
移植所需文件
红色框内为所需文件
2. PLC SECS/GEM用户
提供EquipViewApp.exe、 PlcSecsControlView.exe和HostViewApp.exe软件,分别对应的场景是设备端、PLC连接器和主机EAP端模拟。
3. GEM300用户
额外提供EquipViewApp300.exe和HostViewApp300.exe测试软件,分别对应的GEM300设备端和主机端模拟。
2.2 模拟软件展示
1. 设备端模拟软件EquipViewApp
4. SECS/GEM300模拟软件EquipViewApp300
5. 其他软件
- 后台服务进程JNG_Server.exe
2.3 其他文件介绍
- SecsConfig 文件夹中主要的文件
- licenses.ini 为运行许可,可选用加密狗或licenses.ini方式授权
- 配置文件:
- Alarm.csv 为警报信息表(ALID)
- EC.csv 为设备常量表(ECID)
- Event.csv 为设备常量表(CEID)
- SV.csv 为用户软件的设备常量表(SVID/VID)
- PlcSecsData文件夹为PLC的配置档,保存客户与PLC通讯的各类数据。
3. 开发环境
1. 编程语言
主流语言 C、C++、C#、Labview
2 运行环境
Windows XP SP3
windows 7
windows 10
3 开发工具
LabVIEW、VC6.0、QT、Visual Studio 2008及以上
4 硬件环境
硬件:
PC工控机
接口:
RJ45或者光纤以太网网口 1个
第二章 软件使用
4. 软件获取
4.1 获取金南瓜SECS SDK
用户可以在我们的网站上下载开发包文件。
下载地址http://download.semisecs.com
4.2 获取运行许可
1. 如果为加密狗方式,将加密狗插入USB接口即可
2. 运行文件许可方式
- 运行licenseClient获取PC的序列号GUID
- 将获取到的GUID发送给厂商
- 将金南瓜给予的license替换/JngServer/SecsConfig/license.ini文件夹里面原来的许可。
4.3 软件使用
1. 参考 “Demo使用介绍书(日期).pdf”操作使用书
第三章 开发指导
5 软件交互流程
SDK与设备软件交互关系图
5.1 初始化SECS/GEM SDK模块
1. 初始化SDK dll模块
2. 设置各类参数、回调函数等
3. 设置控制模式(OFFLINE或ONLINE)
4. 启用通讯
初始化流程
5.2 SECS/GEM SDK与设备之间交互
1. 通讯状态发生改变时,SDK通过回调函数实时反馈给设备
例如:
通讯状态
控制状态
2. 设备发生事件时,调用EventPos API通知SDK
3. 设备发生Alarm时,调用Alarm Set API通知SDK
4. 服务器发送远程命令给设备,SDK通过远程命令回调函数通知设备
6 数据配置
作用:
SECS/GEM 将变量、事件、警报等数据含义配置给SDK
配置文件目录:
SECS/GEM在../JngServer/SecsConfig/当中
类型映射表
secs code |
JNG 类型代码 |
Meaning & Examples |
00 |
L |
List类型 |
10 |
B |
binary - unsigned 8 bit data: 二进制类型 "0x00" "0x01 0x02 0x03" |
11 |
TF |
boolean data: 布尔类型 TF 1 非零代表true TF 0 零代表false |
20 |
A |
Character string data: ASCII字符串类型 “A {hello world}” “A hello” |
30 |
I8 |
8-byte signed integer |
31 |
I1 |
1-byte signed integer |
32 |
I2 |
2-byte signed integer |
34 |
I4 |
4-byte integer signed |
40 |
F4 |
8-byte floating point |
44 |
F8 |
4-byte floating point |
50 |
U8 |
8-byte unsigned integer |
51 |
U1 |
1-byte unsigned integer |
52 |
U2 |
2-byte unsigned integer |
54 |
U4 |
4-byte unsigned integer |
6.1 变量添加
通过SV.csv方法添加
- ID建议
- TYPE类型:L、A、TF、B、U1、U2、U4、I1、I2、I4、F4、F8
- CLASS一般为SV
- Int value 一般为空
- Units为单位
- callback为通过回调方式访问最新值
6.2 事件添加
通过Event.csv方法添加
6.3 警报添加
通过alarm.csv方法添加
- ID 是唯一性的
7 C/C++二次开发
这部分内容针对于PC端的C++语言二次开发
7.1 编译器配置改动:
8.1.1 编译器 VC6 配置
无需改动
8.1.2 SECS/GEM 编译器 C++ Builder 6 配置
需要修改代码
1. 启用“SecsPortExport.h”的宏定义 #define __CPP_BUILDER__
原来没有启用
、
启用宏定义
2. 删除“Group.cpp”、“SecsBase.cpp”和“SecsEquip.cpp”第一行的 #include "stdafx.h"
3. SECS/GEM 用C++ Builder 6 的implib.exe将SecsPort.lib转换成C++ Builder 6所能支持的格式
7.2 初始化SDK
在使用SECS通讯之前需要调用Start函数进行初始化dll模块。
接口:
void Start(string pServerAddr, int nPort);
例子:
m_pSecs = new CSecsEquip();
// 连接服务器
RcResult rc = m_pSecs->Start();
7.3 初始化参数
初始化SECS/GEM通讯的各项参数,例如IP、端口号、device ID等。
接口:
1. SECS连接参数的接口
设置通讯对方的TCP/IP地址
RcResult SetIP(string ip);
</