Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
刘韬
/
1069_MIMO_PlUS
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 3e6eede0
由
LN
编写于
2025-12-18 11:22:58 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
文档优化
1 个父辈
6ba77d49
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
213 行增加
和
458 行删除
Documentation/API/Axis-Control-API.md
Documentation/API/DeviceLibrary-API.md
Documentation/API/IO-Control-API.md
Documentation/Architecture/Layer5-Layer6-Design.md
Documentation/Architecture/System-Overview.md
Documentation/Configuration/Axis-Config.md
Documentation/Configuration/Camera-Config.md
Documentation/Configuration/Communication-Config.md
Documentation/Troubleshooting/System-Troubleshooting-Guide.md
Documentation/User-Manual/System-User-Manual.md
UI/UI.csproj
Documentation/API/Axis-Control-API.md
查看文件 @
3e6eede
此文件的差异被折叠,
点击展开。
Documentation/API/DeviceLibrary-API.md
查看文件 @
3e6eede
此文件的差异被折叠,
点击展开。
Documentation/API/IO-Control-API.md
查看文件 @
3e6eede
# IO控制 API 文档
# IO控制 API 文档
##
1. 概述
##
文档信息
本文档详细介绍了 SISO 系统中 IO 控制相关的 API 接口,包括 IO 管理器接口、IO 信号读写方法、状态监控以及相关数据结构。这些 API 提供了对系统输入输出信号的统一管理和控制功能。
| 项目 | 内容 |
|------|------|
| 版本 | 1.1.0 |
| 状态 | 正式版 |
| 编写日期 | 2025-12-18 |
| 最后更新 | 2025-12-18 |
| 编写人 | MIMO 开发团队 |
##
2. IO管理器接口
##
更新日志
### 2.1 I_IOManager 接口
| 版本 | 日期 | 更新内容 | 编写人 |
|------|------|----------|--------|
| 1.1.0 | 2025-12-18 | 根据实际代码更新接口定义 | MIMO 开发团队 |
| 1.0.0 | 2025-12-16 | 初始版本 | MIMO 开发团队 |
`I_IOManager`
是 IO 控制模块的核心接口,定义了对 IO 信号进行管理和操作的基本方法。
## 1. 概述
```
csharp
本文档详细介绍了 MIMO 系统中 IO 控制相关的 API 接口,包括 IO 管理器接口
`I_IOManager`
。这些 API 提供了对系统输入输出信号的统一管理和控制功能。
public
interface
I_IOManager
{
#
region
初始化与关闭
/// <summary>
/// 初始化IO管理器
/// </summary>
/// <returns>初始化是否成功</returns>
bool
Initialize
();
/// <summary>
/// 使用指定配置初始化IO管理器
/// </summary>
/// <param name="configPath">配置文件路径</param>
/// <returns>初始化是否成功</returns>
bool
Initialize
(
string
configPath
);
/// <summary>
/// 关闭IO管理器,释放资源
/// </summary>
void
Close
();
#
endregion
#
region
单个
IO
操作
/// <summary>
/// 读取输入信号状态
/// </summary>
/// <param name="ioId">IO点ID</param>
/// <returns>IO点状态,true表示信号有效,false表示信号无效</returns>
bool
ReadInput
(
int
ioId
);
/// <summary>
/// 写入输出信号状态
/// </summary>
/// <param name="ioId">IO点ID</param>
/// <param name="value">要写入的状态值,true表示信号有效,false表示信号无效</param>
/// <returns>写入是否成功</returns>
bool
WriteOutput
(
int
ioId
,
bool
value
);
/// <summary>
/// 切换输出信号状态
/// </summary>
/// <param name="ioId">IO点ID</param>
/// <returns>切换是否成功</returns>
bool
ToggleOutput
(
int
ioId
);
#
endregion
#
region
批量
IO
操作
/// <summary>
/// 批量读取输入信号状态
/// </summary>
/// <param name="ioIds">要读取的IO点ID列表</param>
/// <returns>IO点ID与状态值的映射字典</returns>
Dictionary
<
int
,
bool
>
ReadInputs
(
List
<
int
>
ioIds
);
/// <summary>
/// 批量写入输出信号状态
/// </summary>
/// <param name="ioValues">IO点ID与要写入状态值的映射字典</param>
/// <returns>写入是否全部成功</returns>
bool
WriteOutputs
(
Dictionary
<
int
,
bool
>
ioValues
);
/// <summary>
/// 读取所有输入信号状态
/// </summary>
/// <returns>所有输入IO点ID与状态值的映射字典</returns>
Dictionary
<
int
,
bool
>
ReadAllInputs
();
/// <summary>
/// 读取所有输出信号状态
/// </summary>
/// <returns>所有输出IO点ID与状态值的映射字典</returns>
Dictionary
<
int
,
bool
>
ReadAllOutputs
();
#
endregion
#
region
IO
信息获取
/// <summary>
/// 获取所有IO点信息
/// </summary>
/// <returns>IO点信息列表</returns>
List
<
IOInfo
>
GetAllIOs
();
/// <summary>
/// 根据IO点ID获取IO点信息
/// </summary>
/// <param name="ioId">IO点ID</param>
/// <returns>IO点信息对象,如果未找到返回null</returns>
IOInfo
GetIOInfo
(
int
ioId
);
/// <summary>
/// 根据IO点名获取IO点信息
/// </summary>
/// <param name="ioName">IO点名</param>
/// <returns>IO点信息对象,如果未找到返回null</returns>
IOInfo
GetIOInfoByName
(
string
ioName
);
#
endregion
#
region
IO
映射
/// <summary>
/// 根据IO点名获取IO点ID
/// </summary>
/// <param name="ioName">IO点名</param>
/// <returns>IO点ID,如果未找到返回-1</returns>
int
GetIOIdByName
(
string
ioName
);
/// <summary>
/// 根据IO点ID获取IO点名
/// </summary>
/// <param name="ioId">IO点ID</param>
/// <returns>IO点名,如果未找到返回空字符串</returns>
string
GetIONameById
(
int
ioId
);
#
endregion
#
region
事件处理
/// <summary>
/// 注册IO状态变化事件处理器
/// </summary>
/// <param name="ioId">IO点ID,传入-1表示监听所有IO点变化</param>
/// <param name="handler">事件处理函数,参数为IO点ID和新状态值</param>
void
RegisterIOChangeHandler
(
int
ioId
,
Action
<
int
,
bool
>
handler
);
/// <summary>
/// 注销IO状态变化事件处理器
/// </summary>
/// <param name="ioId">IO点ID,传入-1表示注销所有IO点的处理器</param>
/// <param name="handler">事件处理函数,如果为null则注销该IO点的所有处理器</param>
void
UnregisterIOChangeHandler
(
int
ioId
,
Action
<
int
,
bool
>
handler
=
null
);
#
endregion
#
region
高级功能
/// <summary>
/// 设置输出点闪烁
/// </summary>
/// <param name="ioId">IO点ID</param>
/// <param name="onTimeMs">亮的时间(毫秒)</param>
/// <param name="offTimeMs">灭的时间(毫秒)</param>
/// <param name="repeatCount">闪烁次数,0表示无限循环</param>
/// <returns>设置是否成功</returns>
bool
BlinkOutput
(
int
ioId
,
int
onTimeMs
,
int
offTimeMs
,
int
repeatCount
=
0
);
/// <summary>
/// 停止输出点闪烁
/// </summary>
/// <param name="ioId">IO点ID,传入-1表示停止所有闪烁的输出点</param>
/// <returns>停止是否成功</returns>
bool
StopBlinkOutput
(
int
ioId
=
-
1
);
/// <summary>
/// 延时输出
/// </summary>
/// <param name="ioId">IO点ID</param>
/// <param name="value">要写入的状态值</param>
/// <param name="delayMs">延时时间(毫秒)</param>
/// <returns>设置是否成功</returns>
bool
DelayedWriteOutput
(
int
ioId
,
bool
value
,
int
delayMs
);
#
endregion
}
```
##
3. 数据结构
##
2. IO管理器接口
###
3.1 IOInfo 类
###
2.1 I_IOManager 接口
`I
OInfo`
类用于表示 IO 点的属性和配置信息
。
`I
_IOManager`
是 IO 控制模块的核心接口,定义了对 IO 信号进行管理和操作的基本方法
。
```
csharp
```
csharp
public
class
IOInfo
namespace
DeviceLibrary
{
{
/// <summary>
public
interface
I_IOManager
/// IO点ID
{
/// </summary>
/// <summary>
public
int
Id
{
get
;
set
;
}
/// 连接IO设备列表
/// </summary>
/// <summary>
bool
ConnectionIOList
(
List
<
string
>
dIODeviceNameList
);
/// IO点名
/// </summary>
/// <summary>
public
string
Name
{
get
;
set
;
}
/// 读取所有DI信号
/// </summary>
/// <summary>
void
ReadAllDI
(
string
deviceName
,
byte
slaveId
);
/// IO点类型(输入/输出)
/// </summary>
/// <summary>
public
IOType
Type
{
get
;
set
;
}
/// 读取所有DO信号
/// </summary>
/// <summary>
void
ReadAllDO
(
string
deviceName
,
byte
slaveId
);
/// IO点描述
/// </summary>
/// <summary>
public
string
Description
{
get
;
set
;
}
/// 写入单个DO信号 (带延时)
/// </summary>
/// <summary>
void
WriteSingleDO
(
string
deviceName
,
byte
slaveId
,
ushort
index
,
IO_VALUE
value
,
int
time
);
/// 物理地址
/// </summary>
/// <summary>
public
string
PhysicalAddress
{
get
;
set
;
}
/// 写入单个DO信号
/// </summary>
/// <summary>
void
WriteSingleDO
(
string
deviceName
,
byte
slaveId
,
ushort
index
,
IO_VALUE
value
);
/// 是否反转(取反)
/// </summary>
/// <summary>
public
bool
IsInverted
{
get
;
set
;
}
/// 获取DI信号值
/// </summary>
/// <summary>
IO_VALUE
GetDIValue
(
string
deviceName
,
byte
slaveID
,
ushort
v
);
/// 默认值
/// </summary>
/// <summary>
public
bool
DefaultValue
{
get
;
set
;
}
/// 获取DO信号值
/// </summary>
/// <summary>
IO_VALUE
GetDOValue
(
string
deviceName
,
byte
slaveID
,
ushort
v
);
/// 是否是安全相关IO
/// </summary>
/// <summary>
public
bool
IsSafetyRelated
{
get
;
set
;
}
/// 根据配置对象获取IO值
/// </summary>
/// <summary>
IO_VALUE
GetIOValue
(
ConfigIO
configIO
);
/// 当前值(仅用于信息展示,不保证实时性)
/// </summary>
/// <summary>
public
bool
CurrentValue
{
get
;
set
;
}
/// 关闭所有DO
/// </summary>
void
CloseAllDO
();
/// <summary>
/// 关闭所有连接
/// </summary>
void
CloseAllConnection
();
}
}
}
```
```
### 3.2 枚举类型
### 2.2 数据类型
#### 3.2.1 IOType 枚举
表示 IO 点类型。
#### IO_VALUE 枚举
```
csharp
```
csharp
public
enum
IO
Type
public
enum
IO
_VALUE
{
{
/// <summary>
LOW
=
0
,
/// 输入点
HIGH
=
1
,
/// </summary>
None
=
2
Input
=
0
,
/// <summary>
/// 输出点
/// </summary>
Output
=
1
,
/// <summary>
/// 模拟输入
/// </summary>
AnalogInput
=
2
,
/// <summary>
/// 模拟输出
/// </summary>
AnalogOutput
=
3
}
}
```
```
...
...
Documentation/Architecture/Layer5-Layer6-Design.md
查看文件 @
3e6eede
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
## 1. 概述
## 1. 概述
本文档详细描述了
SIS
O系统中的Layer5(边缘计算层)和Layer6(设备控制层)的架构设计、组件关系和实现方式。这两层是系统与物理设备交互的核心,负责设备控制、数据采集和边缘计算处理。
本文档详细描述了
MIM
O系统中的Layer5(边缘计算层)和Layer6(设备控制层)的架构设计、组件关系和实现方式。这两层是系统与物理设备交互的核心,负责设备控制、数据采集和边缘计算处理。
## 2. Layer6 (设备控制层)
## 2. Layer6 (设备控制层)
...
@@ -20,19 +20,13 @@
...
@@ -20,19 +20,13 @@
#### 目录结构
#### 目录结构
```
```
DeviceLibrary/
Core/
├── Interfaces/ # 设备抽象接口
├── Devices/ # 设备控制层 (DeviceLibrary)
│ ├── IAxisManager.cs # 轴管理器接口
│ ├── Axis/ # 轴控制相关 (IAxisManager, AxisManager)
│ ├── I_IOManager.cs # IO管理器接口
│ ├── IO/ # IO控制相关 (I_IOManager, IOManager)
│ ├── I_SafetyDevice.cs # 安全设备接口
│ ├── Sensors/ # 传感器实现 (WeightSensor, Camera)
│ └── IRobot.cs # 机器人接口
│ ├── Controllers/ # 控制器封装 (AxisBean)
├── Implementations/ # 具体实现
│ └── Common/ # 通用设备定义
│ ├── Axis/ # 轴控制相关实现
│ ├── IO/ # IO控制相关实现
│ ├── Sensors/ # 传感器实现
│ └── Actuators/ # 执行器实现
├── Helpers/ # 辅助工具类
└── Configs/ # 设备配置文件
```
```
### 2.2 主要模块说明
### 2.2 主要模块说明
...
@@ -84,20 +78,20 @@ DeviceLibrary/
...
@@ -84,20 +78,20 @@ DeviceLibrary/
#### 目录结构
#### 目录结构
```
```
TheMachin
e/
Cor
e/
├──
Core/ # 核心业务逻辑
├──
MachineControl/ # 机器控制核心
│ ├── MainMachine.cs # 主机器控制逻辑
│ ├── MainMachine.cs # 主机器控制逻辑
(Partial Class)
│ ├── RobotManage.cs # 机器人
管理逻辑
│ ├── RobotManage.cs # 机器人
/全局配置管理 (Singleton)
│ └──
BoxTransport.cs # 料箱传输控制逻辑
│ └──
Components/ # MainMachine的分部类实现
├── Controllers/ # 控制器
│ ├── MainMachine_String.cs # 料串进出逻辑
│
├── AxisControl.cs # 轴控制界面控制器
│
├── MainMachine_Clamp.cs # 取放料逻辑
│
├── IOControls.cs # IO控制界面控制器
│
├── MainMachine_Store.cs # 库位管理逻辑
│
└── SettingControl.cs # 设置界面控制器
│
└── ...
├──
Services/ # 服务层
├──
BusinessLogic/ # 业务逻辑
│ ├──
JobManagement/ # 任务管理服务
│ ├──
BoxTransport.cs # ReelTransport 类定义 (料盘搬运核心逻辑)
│ ├──
StateManagement/ # 状态管理服务
│ ├──
MoveInfo.cs # 运动步骤状态封装 (MoveStep Enum)
│ └──
EventProcessing/ # 事件处理服务
│ └──
JobList.cs # 任务队列逻辑
└──
Utils/ # 工具类
└──
DataProcessing/ # 数据处理
```
```
### 3.2 主要功能模块
### 3.2 主要功能模块
...
@@ -194,4 +188,4 @@ Layer5和Layer6之间采用以下通信机制:
...
@@ -194,4 +188,4 @@ Layer5和Layer6之间采用以下通信机制:
## 8. 总结
## 8. 总结
Layer5和Layer6作为SISO系统的核心组成部分,通过清晰的分层设计和接口定义,实现了设备控制和边缘计算功能的有效分离和协作。这种设计使得系统具有良好的可维护性、可扩展性和可靠性,能够满足工业自动化场景的需求。
\ No newline at end of file
\ No newline at end of file
Layer5和Layer6作为MIMO系统的核心组成部分,通过清晰的分层设计和接口定义,实现了设备控制和边缘计算功能的有效分离和协作。这种设计使得系统具有良好的可维护性、可扩展性和可靠性,能够满足工业自动化场景的需求。
\ No newline at end of file
\ No newline at end of file
Documentation/Architecture/System-Overview.md
查看文件 @
3e6eede
#
SIS
O系统架构概述
#
MIM
O系统架构概述
## 1. 系统简介
## 1. 系统简介
SISO(Single Input Single Output)系统是一个
工业自动化控制平台,用于管理和控制各类工业设备,包括运动轴、传感器、执行器等。系统采用分层架构设计,实现了设备控制、数据处理、业务逻辑和用户交互的有效分离。
MIMO(SMD BOX MIMO G2)系统是一个先进的
工业自动化控制平台,用于管理和控制各类工业设备,包括运动轴、传感器、执行器等。系统采用分层架构设计,实现了设备控制、数据处理、业务逻辑和用户交互的有效分离。
## 2. 整体架构
## 2. 整体架构
### 2.1 分层架构
### 2.1 分层架构
SIS
O系统采用经典的分层架构设计,从上到下依次分为以下几层:
MIM
O系统采用经典的分层架构设计,从上到下依次分为以下几层:
1.
**表现层(Layer 1-2)**
:用户界面和交互组件
1.
**表现层(Layer 1-2)**
:用户界面和交互组件
(
`UI`
目录)
2.
**应用层(Layer 3-4)**
:业务应用和功能模块
2.
**应用层(Layer 3-4)**
:业务应用和功能模块
3.
**边缘计算层(Layer 5)**
:数据处理和业务逻辑
3.
**边缘计算层(Layer 5)**
:数据处理和业务逻辑
(
`Core/MachineControl`
)
4.
**设备控制层(Layer 6)**
:设备抽象和控制接口
4.
**设备控制层(Layer 6)**
:设备抽象和控制接口
(
`Core/Devices`
)
5.
**设备层(Layer 7)**
:物理设备和硬件接口
5.
**设备层(Layer 7)**
:物理设备和硬件接口
本文档主要关注系统的Layer5和Layer6部分。
本文档主要关注系统的Layer5和Layer6部分。
...
@@ -24,35 +24,31 @@ SISO系统采用经典的分层架构设计,从上到下依次分为以下几
...
@@ -24,35 +24,31 @@ SISO系统采用经典的分层架构设计,从上到下依次分为以下几
```
```
┌─────────────────────────────────────────────────┐
┌─────────────────────────────────────────────────┐
│ 表现层 (
Layer 1-2)
│
│ 表现层 (
UI)
│
│ ┌───────────────┐ ┌───────────────┐ │
│ ┌───────────────┐ ┌───────────────┐ │
│ │
主界面 │ │ 配置界面
│ │
│ │
MainForm │ │ Controls
│ │
│ └───────┬───────┘ └───────┬───────┘ │
│ └───────┬───────┘ └───────┬───────┘ │
│ │ │ │
│ │ │ │
└──────────┼──────────────────┼───────────────────┘
└──────────┼──────────────────┼───────────────────┘
│ │
│ │
┌──────────┼──────────────────┼───────────────────┐
┌──────────┼──────────────────┼───────────────────┐
│ │ │ │
│ │ │ │
│ ┌───────▼───────┐ ┌───────▼───────┐ │
│ └──────────┬───────┘ │
│ │ 应用服务 │ │ 业务模块 │ │
│ │ │
│ └───────┬───────┘ └───────┬───────┘ │
│ 边缘计算层 (Core/MachineControl, BusinessLogic) │
│ │ │ │
│ ┌─────────────────▼─────────────────┐ │
│ └──────────┬───────┘ │
│ │ MainMachine (主控) │ │
│ │ │
│ ├─────────────────┬─────────────────┤ │
│ 边缘计算层 (Layer 5) │
│ │ RobotManage │ ReelTransport │ │
│ ┌─────────────────▼─────────────────┐ │
│ └─────────────────┴─────────────────┘ │
│ │ MainMachine (主控) │ │
│ │ │
│ ├─────────────────┬─────────────────┤ │
│ ┌──────────┴──────────┐ │
│ │ RobotManage │ BoxTransport │ │
│ │ │ │
│ └─────────────────┴─────────────────┘ │
└──────────┼─────────────────────┼────────────────┘
│ │ │
│ ┌──────────┴──────────┐ │
│ │ │ │
└──────────┼─────────────────────┼───────────────┘
│ │
│ │
┌──────────▼─────────┐ ┌─────────▼─────────┐
┌──────────▼─────────┐ ┌─────────▼─────────┐
│ 设备控制层 │ │ 设备控制层 │
│ 设备控制层 │ │ 设备控制层 │
│ (
Layer 6 - 轴控) │ │ (Layer 6 - IO)
│
│ (
Devices/Axis) │ │ (Devices/IO)
│
│ ┌─────────────┐ │ │ ┌─────────────┐ │
│ ┌─────────────┐ │ │ ┌─────────────┐ │
│ │ AxisManager │ │ │ │ IOManager │ │
│ │ AxisManager │ │ │ │ IOManager │ │
│ └─────────────┘ │ │ └─────────────┘ │
│ └─────────────┘ │ │ └─────────────┘ │
...
@@ -66,23 +62,25 @@ SISO系统采用经典的分层架构设计,从上到下依次分为以下几
...
@@ -66,23 +62,25 @@ SISO系统采用经典的分层架构设计,从上到下依次分为以下几
## 3. 主要功能模块
## 3. 主要功能模块
### 3.1 设备控制层 (
Layer 6
)
### 3.1 设备控制层 (
Core/Devices
)
设备控制层负责提供统一的设备抽象和控制接口,主要包括:
设备控制层负责提供统一的设备抽象和控制接口,主要包括:
-
**
轴控制**
:管理运动轴的状态和运动
-
**
Axis**
:
`IAxisManager`
及其实现,管理运动轴。
-
**IO
控制**
:管理输入输出信号
-
**IO
**
:
`I_IOManager`
及其实现,管理 IO 信号。
-
**
传感器管理**
:处理各类传感器数据
-
**
Controllers**
:具体硬件控制器的实现(如
`HC`
,
`dauxiKS107`
)。
-
**
执行器控制**
:控制各类执行器动作
-
**
Camera**
:相机设备控制。
### 3.2 边缘计算层 (
Layer 5
)
### 3.2 边缘计算层 (
Core/MachineControl
)
边缘计算层负责处理设备数据、实现业务逻辑和协调设备交互,主要包括:
边缘计算层负责处理设备数据、实现业务逻辑和协调设备交互,主要包括:
-
**机器控制**
:协调各设备完成整体任务流程
-
**MainMachine**
:系统主控逻辑入口,作为部分类(Partial Class)实现,集成了多个子功能模块。
-
**任务管理**
:管理和调度各类任务
-
**状态机管理**
:通过
`MoveInfo`
对象管理多个并行的业务流程(如
`StringMoveInfo`
,
`ClampMoveInfo`
,
`StoreMoveInfo`
)。
-
**状态监控**
:监控系统和设备状态
-
**流程协调**
:协调料串机构、取放料机构和库位调度之间的交互。
-
**数据处理**
:对采集的数据进行处理和分析
-
**RobotManage**
:单例管理器,持有
`MainMachine`
实例和全局配置,负责系统级别的状态管理。
-
**ReelTransport**
:专注于料盘在库位、校准位和IO口之间的搬运逻辑(实现于
`BoxTransport.cs`
)。
-
**Components**
:各类机器组件的具体逻辑实现(如
`MainMachine_Store`
,
`MainMachine_Clamp`
)。
## 4. 技术架构
## 4. 技术架构
...
@@ -130,4 +128,4 @@ SISO系统采用经典的分层架构设计,从上到下依次分为以下几
...
@@ -130,4 +128,4 @@ SISO系统采用经典的分层架构设计,从上到下依次分为以下几
## 7. 总结
## 7. 总结
SISO系统采用分层架构设计,实现了设备控制和业务逻辑的有效分离,具有良好的可维护性、可扩展性和可靠性。系统的Layer5和Layer6部分作为连接应用层和物理设备的桥梁,在系统中扮演着至关重要的角色。
\ No newline at end of file
\ No newline at end of file
MIMO系统采用分层架构设计,实现了设备控制和业务逻辑的有效分离,具有良好的可维护性、可扩展性和可靠性。系统的Layer5和Layer6部分作为连接应用层和物理设备的桥梁,在系统中扮演着至关重要的角色。
\ No newline at end of file
\ No newline at end of file
Documentation/Configuration/Axis-Config.md
查看文件 @
3e6eede
此文件的差异被折叠,
点击展开。
Documentation/Configuration/Camera-Config.md
查看文件 @
3e6eede
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
## 1. 概述
## 1. 概述
本文档详细说明
SIS
O系统中相机设备的配置方法,包括配置文件格式、参数说明以及配置示例。相机配置文件采用JSON格式,存储在
`DeviceLibrary/Config/`
目录下。
本文档详细说明
MIM
O系统中相机设备的配置方法,包括配置文件格式、参数说明以及配置示例。相机配置文件采用JSON格式,存储在
`DeviceLibrary/Config/`
目录下。
## 2. 配置文件格式
## 2. 配置文件格式
...
@@ -247,21 +247,13 @@
...
@@ -247,21 +247,13 @@
### 5.1 配置文件位置
### 5.1 配置文件位置
相机配置文件存储在以下位置:
相机配置文件存储在执行目录的
`Config/`
文件夹下。
```
DeviceLibrary/
└── Config/
├── CameraA.json
├── CameraB.json
└── ...
```
### 5.2 配置加载流程
### 5.2 配置加载流程
1.
系统启动时,
`C
amera.cs`
类会扫描
`Config`
目录下的所有相机配置文件
1.
系统启动时,
`C
odeManager`
类会加载配置。
2.
根据配置文件中的信息初始化相应的相机设备
2.
自动寻找
`Config/IPCamera.json`
并初始化相机。
3.
如果配置文件不存在或格式错误,系统将使用默认配置
3.
加载
`Config/coverroi.json`
获取ROI信息。
### 5.3 配置修改方法
### 5.3 配置修改方法
...
...
Documentation/Configuration/Communication-Config.md
查看文件 @
3e6eede
...
@@ -2,11 +2,11 @@
...
@@ -2,11 +2,11 @@
## 1. 概述
## 1. 概述
本文档详细说明
SIS
O系统中设备通信的配置方法,包括通信协议、配置文件格式、参数说明以及配置示例。设备通信配置对于系统各组件间的正常协作至关重要,用户应根据实际网络环境和设备情况正确配置相关参数。
本文档详细说明
MIM
O系统中设备通信的配置方法,包括通信协议、配置文件格式、参数说明以及配置示例。设备通信配置对于系统各组件间的正常协作至关重要,用户应根据实际网络环境和设备情况正确配置相关参数。
## 2. 通信架构
## 2. 通信架构
SIS
O系统采用分层通信架构,主要包括以下几种通信方式:
MIM
O系统采用分层通信架构,主要包括以下几种通信方式:
-
**控制器通信**
:与运动控制器之间的通信
-
**控制器通信**
:与运动控制器之间的通信
-
**设备通信**
:与各类传感器、执行器的通信
-
**设备通信**
:与各类传感器、执行器的通信
...
@@ -160,80 +160,31 @@ SISO系统采用分层通信架构,主要包括以下几种通信方式:
...
@@ -160,80 +160,31 @@ SISO系统采用分层通信架构,主要包括以下几种通信方式:
## 4. 设备通信配置参数说明
## 4. 设备通信配置参数说明
### 4.1 EtherCAT配置参数
### 4.1 常用PRO配置参数
| 参数 | 类型 | 说明 | 是否必需 |
|-----|------|-----|--------|
| Master.Id | Integer | 主站ID | 是 |
| Master.Name | String | 主站名称 | 是 |
| Master.Port | Integer | 网络端口号 | 是 |
| Master.CycleTime | Integer | 通信周期时间(μs) | 是 |
| Master.Priority | String | 通信优先级 | 是 |
| Slave.Id | Integer | 从站ID | 是 |
| Slave.Name | String | 从站名称 | 是 |
| Slave.VendorId | Hex | 厂商ID | 是 |
| Slave.ProductCode | Hex | 产品代码 | 是 |
| Slave.Alias | Integer | 别名 | 否 |
| Slave.Position | Integer | 位置 | 是 |
### 4.2 Modbus配置参数
| 参数 | 类型 | 说明 | 是否必需 |
|-----|------|-----|--------|
| Port | String/Integer | 串口名称或TCP端口 | 是 |
| BaudRate | Integer | 波特率(RTU模式) | 是(RTU模式) |
| DataBits | Integer | 数据位(RTU模式) | 是(RTU模式) |
| StopBits | Integer | 停止位(RTU模式) | 是(RTU模式) |
| Parity | String | 校验位(RTU模式) | 是(RTU模式) |
| IpAddress | String | IP地址(TCP模式) | 是(TCP模式) |
| Timeout | Integer | 通信超时时间(ms) | 是 |
| Slave.Id | Integer | 从站ID | 是 |
| Slave.Name | String | 从站名称 | 是 |
| Slave.FunctionCode | Integer | 功能码 | 是 |
| Slave.StartingRegister | Integer | 起始寄存器地址 | 是 |
| Slave.RegisterCount | Integer | 寄存器数量 | 是 |
### 4.3 网络通信配置参数
| 参数 | 类型 | 说明 | 是否必需 |
|-----|------|-----|--------|
| Port | Integer | 网络端口号 | 是 |
| IpAddress | String | IP地址(客户端) | 是(客户端) |
| MaxConnections | Integer | 最大连接数 | 是 |
| BufferSize | Integer | 缓冲区大小 | 是 |
| Timeout | Integer | 超时时间(ms) | 是 |
| EnableSsl | Boolean | 是否启用SSL | 否 |
| AutoReconnect | Boolean | 是否自动重连 | 否 |
| ReconnectInterval | Integer | 重连间隔(ms) | 否 |
| Path | String | WebSocket路径 | 是(WebSocket) |
| HeartbeatInterval | Integer | 心跳间隔(ms) | 否(WebSocket) |
## 5. 配置文件管理
| 参数名 | 说明 |
|-----|-----|
### 5.1 配置文件位置
| Humiture_Port | 温湿度传感器连接的COM端口 |
| AIDevice_IP | 模拟量采集模块的IP地址 |
| AIDI
*
_Addr | 模拟量输入通道地址 |
配置文件通常存储在以下位置:
### 4.2 EtherCAT/Motion 参数
-
主配置目录:
`/Config/Communication/`
EtherCAT通信参数(如PDO映射、周期)通常在控制卡固件或底层驱动代码中固定,用户主要通过
`AXIS`
配置项调整轴号映射和运动参数。
-
EtherCAT配置:
`/Config/Communication/EtherCAT.xml`
-
Modbus配置:
`/Config/Communication/Modbus.json`
-
网络通信配置:
`/Config/Communication/Network.json`
##
# 5.2 配置文件加载流程
##
5. 配置文件管理
1.
系统启动时,自动加载通信配置文件
### 5.1 配置文件位置
2.
验证配置文件格式和参数有效性
3.
根据配置初始化通信模块
4.
建立与各设备的通信连接
5.
监控通信状态,处理异常情况
### 5.3 动态配置更新
所有通信相关配置均包含在主配置文件中:
-
`Core/Config/Config.csv`
系统支持运行时动态更新通信配置:
### 5.2 配置修改
-
通过API接口更新配置
1.
使用文本编辑器或Excel打开
`Config.csv`
。
-
通过Web界面更新配置
2.
找到
`PRO`
类型行。
-
配置更新后自动重新连接设备
3.
修改对应属性值(第5列)。
4.
保存文件并重启软件生效。
## 6. 通信诊断与故障排除
## 6. 通信诊断与故障排除
...
...
Documentation/Troubleshooting/System-Troubleshooting-Guide.md
查看文件 @
3e6eede
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
## 1. 概述
## 1. 概述
本文档提供了
SIS
O系统常见故障的诊断步骤和解决方案,旨在帮助技术人员快速识别和解决系统运行中遇到的问题。故障排除应遵循系统化的方法,从基础检查开始,逐步深入分析,最终解决问题。
本文档提供了
MIM
O系统常见故障的诊断步骤和解决方案,旨在帮助技术人员快速识别和解决系统运行中遇到的问题。故障排除应遵循系统化的方法,从基础检查开始,逐步深入分析,最终解决问题。
## 2. 故障诊断基本流程
## 2. 故障诊断基本流程
...
@@ -110,15 +110,12 @@
...
@@ -110,15 +110,12 @@
## 7. 日志分析指南
## 7. 日志分析指南
### 7.1 日志级别说明
### 7.1 日志级别说明
| 级别 | 说明 | 示例 |
| 级别 | 说明 | 对应代码 |
|-----|------|------|
|-----|------|------|
| FATAL | 致命错误,导致系统崩溃 | 硬件故障、核心服务崩溃 |
| alarm | 报警,系统停止或需要立即处理 |
`MsgLevel.alarm`
|
| ERROR | 严重错误,影响系统功能 | 通信失败、设备连接断开 |
| warning | 警告,可能影响流程但不致命 |
`MsgLevel.warning`
|
| WARN | 警告信息,可能导致问题 | 参数异常、资源不足 |
| info | 一般信息,记录流程状态 |
`MsgLevel.info`
|
| INFO | 一般信息,记录重要事件 | 系统启动、模块加载 |
| DEBUG | 调试信息,用于问题诊断 | 函数调用、变量值 |
| TRACE | 详细跟踪信息,记录执行流程 | 代码路径、执行步骤 |
### 7.2 日志文件位置
### 7.2 日志文件位置
...
@@ -128,34 +125,31 @@
...
@@ -128,34 +125,31 @@
-
设备日志:
`/Logs/Device/`
-
设备日志:
`/Logs/Device/`
-
错误日志:
`/Logs/Error/`
-
错误日志:
`/Logs/Error/`
### 7.3
关键错误代码含义
### 7.3
系统错误代码 (ErrInfo & AlarmInfo)
#### 7.3.1
通信错误代码
#### 7.3.1
常见错误枚举 (ErrInfo)
| 错误代码
| 说明 | 可能原因
|
| 错误代码
/枚举 | 说明 | 解决方案
|
|---------|------|--------|
|---------|------|--------|
|
ECOM001 | 连接失败 | 网络问题、目标不可达
|
|
`X09_BoxNotDetect`
| 料叉传感器未检测到料盘 | 检查X30/X09传感器,确认料盘是否在位,手动确认或清除障碍
|
|
ECOM002 | 超时错误 | 响应缓慢、网络延迟
|
|
`SuddenStop`
| 急停按钮被按下或运动报警 | 检查急停按钮状态,检查轴运动是否受阻
|
|
ECOM003 | 数据传输错误 | 协议不匹配、数据损坏
|
|
`RunBtn`
| 运行按钮相关错误 | 检查操作面板按钮状态
|
|
ECOM004 | 配置错误 | 参数设置不正确、配置文件损坏
|
|
`Res0008`
| 服务器连接异常 | 检查网络连接,确认上位机服务是否启动
|
#### 7.3.2
设备错误代码
#### 7.3.2
报警类型 (AlarmInfo)
| 错误代码 | 说明 | 可能原因 |
系统内部定义的报警类型(AlarmType):
|---------|------|--------|
| EDEV001 | 设备未连接 | 电源问题、物理连接断开 |
| EDEV002 | 设备响应错误 | 设备故障、参数错误 |
| EDEV003 | 设备超时 | 通信问题、设备繁忙 |
| EDEV004 | 设备异常 | 内部错误、硬件故障 |
#### 7.3.3 系统错误代码
| 类型ID | 类别 | 详细说明 |
|---|---|---|
| 0 | 消息 | 原点返回、复位消息 |
| 1 | 总体错误 | 急停、气压不足、盘错乱 |
| 2 | 运动轴错误 | 轴1-4报警(旋转、升降、进出、压紧)、电缸报警 |
| 3 | IO报警 | 信号超时 |
| 错误代码 | 说明 | 可能原因 |
#### 7.3.3 汇川(Huichuan)伺服报警
|---------|------|--------|
| ESYS001 | 初始化失败 | 配置错误、依赖缺失 |
系统通过
`HCBoardManager.GetAxisErrorDetail`
获取伺服驱动器的详细报警代码。请参考汇川伺服驱动器手册查询具体报警代码(如 E-xxx)。
| ESYS002 | 资源不足 | 内存不足、CPU过载 |
| ESYS003 | 访问权限错误 | 权限设置问题、用户权限不足 |
| ESYS004 | 文件操作错误 | 文件不存在、权限问题、磁盘空间不足 |
## 8. 预防性维护
## 8. 预防性维护
...
...
Documentation/User-Manual/System-User-Manual.md
查看文件 @
3e6eede
#
SIS
O系统用户手册
#
MIM
O系统用户手册
## 1. 简介
## 1. 简介
### 1.1 文档目的
### 1.1 文档目的
本文档旨在为
SIS
O系统的操作人员提供全面的操作指南,包括系统概述、安装配置、日常操作、维护保养及故障处理等内容,帮助用户正确、安全、高效地使用本系统。
本文档旨在为
MIM
O系统的操作人员提供全面的操作指南,包括系统概述、安装配置、日常操作、维护保养及故障处理等内容,帮助用户正确、安全、高效地使用本系统。
### 1.2 适用对象
### 1.2 适用对象
...
@@ -17,7 +17,7 @@
...
@@ -17,7 +17,7 @@
| 术语 | 解释说明 |
| 术语 | 解释说明 |
|-----|--------|
|-----|--------|
|
SISO | Single Input Single Output,单输入单
输出系统 |
|
MIMO | Multiple Input Multiple Output,多输入多
输出系统 |
| PLC | Programmable Logic Controller,可编程逻辑控制器 |
| PLC | Programmable Logic Controller,可编程逻辑控制器 |
| HMI | Human Machine Interface,人机界面 |
| HMI | Human Machine Interface,人机界面 |
| EtherCAT | 工业以太网通信协议 |
| EtherCAT | 工业以太网通信协议 |
...
@@ -32,7 +32,7 @@
...
@@ -32,7 +32,7 @@
### 2.1 系统功能
### 2.1 系统功能
SIS
O系统是一个集运动控制、设备管理、数据采集和监控于一体的工业自动化控制系统,主要功能包括:
MIM
O系统是一个集运动控制、设备管理、数据采集和监控于一体的工业自动化控制系统,主要功能包括:
-
多轴运动控制
-
多轴运动控制
-
设备IO管理
-
设备IO管理
...
@@ -480,14 +480,17 @@ IO监控界面用于监控和控制输入输出信号,主要功能包括:
...
@@ -480,14 +480,17 @@ IO监控界面用于监控和控制输入输出信号,主要功能包括:
4.
记录报警原因和处理方法
4.
记录报警原因和处理方法
### 9.4 常见报警及处理
### 9.4 常见报警及处理
| 报警代码 | 报警描述 | 可能原因 | 处理方法 |
系统报警分为以下几类(AlarmType):
|---------|--------|---------|--------|
| ALM001 | 轴位置超限 | 限位开关触发或软限位设置不当 | 检查机械位置,调整限位设置 |
| 类型ID | 类别 | 描述 | 处理建议 |
| ALM002 | 伺服驱动器报警 | 伺服故障或参数设置错误 | 检查伺服驱动器报警代码,参考伺服手册处理 |
|---|---|---|---|
| ALM003 | 通信超时 | 网络故障或设备无响应 | 检查网络连接,重启通信设备 |
| 0 | 消息 | 原点返回、复位等提示信息 | 无需特殊处理,确认即可 |
| ALM004 | 电源电压异常 | 电源波动或故障 | 检查电源系统,必要时更换电源 |
| 1 | 总体错误 | 急停被按下、气压不足、料盘错乱等 | 检查急停按钮、气源压力或料盘状态 |
| ALM005 | 温度过高 | 环境温度过高或冷却系统故障 | 改善通风条件,检查冷却系统 |
| 2 | 运动轴错误 | 轴伺服报警、位置超限等 | 检查对应轴的机械状态和驱动器报警代码,清除报警后复位 |
| 3 | IO报警 | 信号超时、传感器未检测到等 | 检查相关传感器和气缸状态 |
具体的伺服报警代码(如E-xxx)请参考伺服驱动器手册。
## 10. 附录
## 10. 附录
...
@@ -532,19 +535,18 @@ IO监控界面用于监控和控制输入输出信号,主要功能包括:
...
@@ -532,19 +535,18 @@ IO监控界面用于监控和控制输入输出信号,主要功能包括:
| Esc | 取消当前操作 |
| Esc | 取消当前操作 |
### 10.3 联系方式
### 10.3 联系方式
**技术支持热线**
:400-123-4567
**邮箱**
:support@siso-system.com
**网站**
:www.siso-system.com
**服务时间**
:周一至周五 9:00-18:00
### 10.4 版本历史
| 版本号 | 更新日期 | 更新内容 |
|-------|--------|--------|
| 1.0.0 | 2023-01-15 | 初始版本 |
| 1.1.0 | 2023-03-20 | 新增功能和性能优化 |
| 1.2.0 | 2023-06-10 | 修复已知问题,增强稳定性 |
\ No newline at end of file
\ No newline at end of file
**技术支持热线**
:400-XXX-XXXX
**邮箱**
:support@mimo-system.com
**网站**
:www.mimo-system.com
**服务时间**
:周一至周五 9:00-18:00
### 10.4 版本历史
| 版本号 | 更新日期 | 更新内容 |
|-------|--------|--------|
| 1.0.0 | 2025-12-18 | MIMO系统初始版本 |
| 0.9.0 | 2023-01-15 | 原型版本 |
\ No newline at end of file
\ No newline at end of file
UI/UI.csproj
查看文件 @
3e6eede
...
@@ -320,10 +320,6 @@
...
@@ -320,10 +320,6 @@
</BootstrapperPackage>
</BootstrapperPackage>
</ItemGroup>
</ItemGroup>
<ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Core\Core.csproj">
<Project>{bb23296c-aa1d-45c6-9fa6-5a37b2abfe9b}</Project>
<Name>Core</Name>
</ProjectReference>
<ProjectReference Include="..\Infrastructure\Common\Common.csproj">
<ProjectReference Include="..\Infrastructure\Common\Common.csproj">
<Project>{43cdd09e-fcf3-4960-a01d-3bbfe9933122}</Project>
<Project>{43cdd09e-fcf3-4960-a01d-3bbfe9933122}</Project>
<Name>Common</Name>
<Name>Common</Name>
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论