1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
using FLY.Thick.Base.Common;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FLY.Thick.Base.IService
{
/// <summary>
/// 膜位置检测;
/// 通过辊接近开关,或者编码器2;
/// 支持同步;
/// </summary>
public interface IFilmPositionDetectService : INotifyPropertyChanged
{
#region 状态
/// <summary>
/// 线速度 m/min
/// </summary>
double FilmVelocity { get; }
/// <summary>
/// 膜位置, m
/// </summary>
double FilmPosition { get; }
/// <summary>
/// 工作中
/// </summary>
bool IsRunning { get; }
/// <summary>
/// 当前正在使用的 与机头测厚仪偏移,单位m
/// </summary>
double VDistanceWithHeaderInUsed { get; }
/// <summary>
/// 当前正在使用的 激光探头与 X光的偏移,单位m
/// </summary>
double VSensorOffsetInUsed { get; }
/// <summary>
/// 已经重新开始测量
/// </summary>
bool HasReset { get; }
#endregion
#region 参数
/// <summary>
/// 线速度阀值,低于阀值,速度直接变为0
/// </summary>
double FilmVThreshold { get; set; }
/// <summary>
/// 线速度来源
/// </summary>
FilmVSRC FilmVSrc { get; set; }
/// <summary>
/// 线速度:编码器2 mm/pulse
/// </summary>
double Encoder2_mmpp { get; set; }
/// <summary>
/// 线速度:1圈多少mm
/// </summary>
double MmOfR { get; set; }
/// <summary>
/// 本测厚仪探头与机头测厚仪探头距离单位m
/// </summary>
double VDistanceWithHeader { get; set; }
/// <summary>
/// 纵向光纤传感器与本测厚仪探头距离 单位m;
/// 修改此值,会改变纵向偏移
/// </summary>
double VSensorOffset { get; set; }
#endregion
/// <summary>
/// 主轴激光传感器检测到 1->0 变化 事件
/// </summary>
event FilmPosAt01EventHandler FilmPosAt01Event;
/// <summary>
/// 设置膜位置为某值
/// </summary>
/// <param name="filmPos">极片位置m</param>
void Reset(double filmPos);
/// <summary>
/// 把膜位置设置为 -VDistanceWithHeader
/// </summary>
void Reset();
/// <summary>
/// 清除 hasReset标志位
/// </summary>
void ClearResetState();
/// <summary>
/// 服务器 从 机头得到的 0->1 事件,给机尾
/// </summary>
/// <param name="filmPos">极片位置m</param>
void SetFilmPosAt01(double filmPos);
/// <summary>
/// 停止测量
/// </summary>
void Stop();
/// <summary>
/// 启动测量
/// </summary>
void Start();
}
/// <summary>
/// 0->1 时极片位置事件
/// </summary>
public class FilmPosAt01EventArgs : EventArgs
{
/// <summary>
/// 极片位置单位m
/// </summary>
public double filmPos;
}
/// <summary>
///
/// </summary>
/// <param name="s"></param>
/// <param name="e"></param>
public delegate void FilmPosAt01EventHandler(object s, FilmPosAt01EventArgs e);
}