Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
T
thick-casting
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
潘栩锋
thick-casting
Commits
4f51b219
Commit
4f51b219
authored
Aug 18, 2022
by
潘栩锋
🚴
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加 简单的纵向位置检测器。 没有同步功能
parent
e96653a7
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
316 additions
and
14 deletions
+316
-14
FlyADIODefine.cs
...FilmCasting/FLY.Thick.FilmCasting/Common/FlyADIODefine.cs
+2
-2
FLY.Thick.FilmCasting.csproj
...asting/FLY.Thick.FilmCasting/FLY.Thick.FilmCasting.csproj
+1
-0
FilmPositionDetect2.cs
...sting/FLY.Thick.FilmCasting/Server/FilmPositionDetect2.cs
+296
-0
GM_Scan.cs
...Thick.FilmCasting/FLY.Thick.FilmCasting/Server/GM_Scan.cs
+2
-2
TDGage.cs
....Thick.FilmCasting/FLY.Thick.FilmCasting/Server/TDGage.cs
+10
-6
thick_public
thick_public
+1
-1
filmCastingInstallZipVersionInfo.json
脚本/filmCastingInstallZipVersionInfo.json
+3
-2
流延报表模板 3.xlsx
脚本/流延报表模板 3.xlsx
+0
-0
版本描述.md
脚本/版本描述.md
+1
-1
No files found.
Project.FLY.Thick.FilmCasting/FLY.Thick.FilmCasting/Common/FlyADIODefine.cs
View file @
4f51b219
...
...
@@ -18,9 +18,9 @@ namespace FLY.Thick.FilmCasting.Common
public
int
InNo_Finish
{
get
;
protected
set
;
}
=
9
-
1
;
/// <summary>
///
换卷
信号
///
拉伸前辊
信号
/// </summary>
[
Description
(
"拉伸前信号"
)]
[
Description
(
"拉伸前
辊
信号"
)]
public
int
InNo_VBeforeStretching
{
get
;
protected
set
;
}
=
12
-
1
;
protected
override
List
<
string
>
GetInputPropertyNames
()
...
...
Project.FLY.Thick.FilmCasting/FLY.Thick.FilmCasting/FLY.Thick.FilmCasting.csproj
View file @
4f51b219
...
...
@@ -65,6 +65,7 @@
<Compile
Include=
"Server.OBJProxy\OBJProxy.cs"
/>
<Compile
Include=
"Server\BoltMapFilmCasting.cs"
/>
<Compile
Include=
"Server\FilmCastingProfile.cs"
/>
<Compile
Include=
"Server\FilmPositionDetect2.cs"
/>
<Compile
Include=
"Server\GM_Scan.cs"
/>
<Compile
Include=
"Server\InitParam.cs"
/>
<Compile
Include=
"Server\ScanMotion.cs"
/>
...
...
Project.FLY.Thick.FilmCasting/FLY.Thick.FilmCasting/Server/FilmPositionDetect2.cs
0 → 100644
View file @
4f51b219
using
FLY.Thick.Base.Common
;
using
FlyADBase
;
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Windows.Threading
;
namespace
FLY.Thick.FilmCasting.Server
{
/// <summary>
/// 膜位置检测;
/// 通过辊接近开关,或者编码器2;
/// 可以用于2台测厚仪同步主轴位置
/// </summary>
public
class
FilmPositionDetect2
:
INotifyPropertyChanged
{
public
event
PropertyChangedEventHandler
PropertyChanged
;
#
region
状态
/// <summary>
/// 线速度 m/min
/// </summary>
public
double
FilmVelocity
{
get
;
private
set
;
}
/// <summary>
/// 膜位置, m
/// </summary>
public
double
FilmPosition
{
get
;
private
set
;
}
#
endregion
#
region
参数
/// <summary>
/// 线速度阀值,低于阀值,速度直接变为0
/// </summary>
public
double
FilmVThreshold
{
get
;
set
;
}
=
2
;
/// <summary>
/// 线速度来源
/// </summary>
public
FilmVSRC
FilmVSrc
{
get
;
set
;
}
=
FilmVSRC
.
ROUND
;
/// <summary>
/// 线速度:编码器2 mm/pulse
/// </summary>
public
double
Encoder2_mmpp
{
get
;
set
;
}
=
0.1
;
/// <summary>
/// 线速度:1圈多少mm
/// </summary>
public
double
MmOfR
{
get
;
set
;
}
=
314
;
/// <summary>
/// 辊信号
/// </summary>
public
int
InNo_Roll
{
get
;
set
;
}
=
11
-
1
;
#
endregion
/// <summary>
///
/// </summary>
double
reset_filmPos
;
/// <summary>
/// 复位时,对应的pos2脉冲
/// </summary>
int
reset_pos2
;
FlyAD7
flyAd
;
/// <summary>
///
/// </summary>
/// <param name="flyAd"></param>
public
void
Init
(
FlyAD7
flyAd
)
{
this
.
flyAd
=
flyAd
;
//------------------------------------------------------------------------------------------------------------------------------------
//线速度------------------------------------------------------------------------------------------------------------------------------
this
.
flyAd
.
PropertyChanged
+=
FlyAd_PropertyChanged_EN2
;
//------------------------------------------------------------------------------------------------------------------------------------
//辊信号生成线速度-----------------------------------------------------------------------------------------------------------------------------
InitRoundFilmVelocity
();
//复位
Misc
.
BindingOperations
.
SetBinding
(
this
.
flyAd
,
nameof
(
this
.
flyAd
.
IsReady
),
()
=>
{
//刚连接上,复位
Reset
(
0
);
});
}
private
void
FlyAd_PropertyChanged_EN2
(
object
sender
,
PropertyChangedEventArgs
e
)
{
if
(
FilmVSrc
!=
FilmVSRC
.
EN2
)
return
;
if
(
e
.
PropertyName
==
nameof
(
flyAd
.
Speed2
))
{
double
speed
=
flyAd
.
Speed2
*
Encoder2_mmpp
/
1000.0
;
// m/s
speed
*=
60
;
//m/min
FilmVelocity
=
speed
;
}
else
if
(
e
.
PropertyName
==
nameof
(
flyAd
.
Position2
))
{
FilmPosition
=
Pos2ToFilmPos
(
flyAd
.
Position2
);
}
}
class
DateTimeUnit
{
public
DateTime
dt
{
get
;
set
;
}
public
int
data
;
}
List
<
DateTimeUnit
>
pos2Pool
=
new
List
<
DateTimeUnit
>();
void
AddPos2
(
DateTime
time
,
int
pos2
)
{
pos2Pool
.
Add
(
new
DateTimeUnit
()
{
dt
=
time
,
data
=
pos2
});
if
(
pos2Pool
.
Last
().
dt
-
pos2Pool
.
First
().
dt
>
TimeSpan
.
FromMinutes
(
1
))
{
pos2Pool
.
RemoveAt
(
0
);
}
}
bool
FindPos2
(
DateTime
time
,
out
int
pos2
)
{
pos2
=
0
;
var
unit
=
pos2Pool
.
Find
(
u
=>
u
.
dt
==
time
);
if
(
unit
==
null
)
return
false
;
pos2
=
unit
.
data
;
return
true
;
}
#
region
辊信号生成
线速度
DispatcherTimer
round_t
;
DateTime
dtRound
;
int
RCnt
=
0
;
double
BaseFilmPosition
=
0
;
void
InitRoundFilmVelocity
()
{
round_t
=
new
DispatcherTimer
();
round_t
.
Interval
=
TimeSpan
.
FromSeconds
(
1
);
round_t
.
Tick
+=
new
EventHandler
(
round_t_Tick
);
flyAd
.
IStatusChangedEvent
+=
mFlyAD_IStatusChangedEvent_round
;
}
/// <summary>
/// 用于实时信号
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void
mFlyAD_IStatusChangedEvent_round
(
object
sender
,
IStatusChangedEventArgs
e
)
{
if
(
FilmVSrc
!=
FilmVSRC
.
ROUND
)
return
;
if
(!
Misc
.
MyBase
.
CHECKBIT
(
e
.
IChanged
,
InNo_Roll
))
return
;
if
(
Misc
.
MyBase
.
CHECKBIT
(
e
.
IStatus
,
InNo_Roll
))
return
;
//1->0
DateTime
dt
=
e
.
Time
;
if
(
dt
<=
dtRound
)
return
;
if
(
dtRound
!=
DateTime
.
MinValue
)
{
double
v
=
MmOfR
/
1000.0
/
(
dt
-
dtRound
).
TotalMinutes
;
if
(
v
<
FilmVThreshold
)
//太慢了
{
dt
=
DateTime
.
MinValue
;
v
=
0
;
}
FilmVelocity
=
v
;
if
(
v
>
0
)
{
RCnt
++;
FilmPosition
=
RCnt
*
MmOfR
/
1000.0
+
BaseFilmPosition
;
}
}
dtRound
=
dt
;
if
(
dtRound
!=
DateTime
.
MinValue
)
{
if
(!
round_t
.
IsEnabled
)
round_t
.
Start
();
}
}
/// <summary>
/// 用于长时间没信号
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void
round_t_Tick
(
object
sender
,
EventArgs
e
)
{
if
(
FilmVSrc
!=
FilmVSRC
.
ROUND
)
{
round_t
.
Stop
();
return
;
}
if
(
dtRound
==
DateTime
.
MinValue
)
{
round_t
.
Stop
();
return
;
}
//1->0
DateTime
dt
=
flyAd
.
Now
;
if
(
dt
<=
dtRound
)
return
;
double
v
=
MmOfR
/
1000.0
/
(
dt
-
dtRound
).
TotalMinutes
;
if
(
v
>=
(
FilmVelocity
-
1
))
return
;
FilmVelocity
=
v
;
double
p1
=
RCnt
*
MmOfR
/
1000.0
;
double
p2
=
(
dt
-
dtRound
).
TotalMinutes
*
FilmVelocity
;
if
(
p2
>
MmOfR
/
1000.0
)
p2
=
MmOfR
/
1000.0
;
p1
+=
p2
;
if
(
FilmPosition
<
p1
)
FilmPosition
=
p1
;
if
(
FilmVelocity
<=
FilmVThreshold
)
{
dtRound
=
DateTime
.
MinValue
;
FilmVelocity
=
0
;
round_t
.
Stop
();
return
;
}
}
#
endregion
/// <summary>
/// 设置膜位置为某值
/// </summary>
/// <param name="filmPos">极片位置m</param>
public
void
Reset
(
double
filmPos
)
{
if
(
FilmVSrc
==
FilmVSRC
.
EN2
)
{
reset_pos2
=
flyAd
.
Position2
;
reset_filmPos
=
filmPos
;
FilmPosition
=
Pos2ToFilmPos
(
flyAd
.
Position2
);
}
else
{
RCnt
=
0
;
BaseFilmPosition
=
filmPos
;
FilmPosition
=
filmPos
;
}
}
double
Pos2ToFilmPos
(
int
pos2
)
{
int
distance_p
=
pos2
-
reset_pos2
;
double
distance_m
=
distance_p
*
Encoder2_mmpp
/
1000.0
;
double
filmPos
=
distance_m
+
reset_filmPos
;
if
(
Math
.
Abs
(
distance_p
)
>
1000000
)
//不让它太大,不然乘法会溢出
{
//当距离很远,需要复位一下
reset_pos2
=
pos2
;
reset_filmPos
=
filmPos
;
}
return
filmPos
;
}
}
}
Project.FLY.Thick.FilmCasting/FLY.Thick.FilmCasting/Server/GM_Scan.cs
View file @
4f51b219
...
...
@@ -25,7 +25,7 @@ namespace FLY.Thick.FilmCasting.Server
DynArea
dynArea
;
AD2ThkHandler
Ad2Thk
;
FilmPositionDetect
filmPositionDetect
;
FilmPositionDetect
2
filmPositionDetect
;
FilmCastingProfileParam
profileParam
;
FilmCastingProfile
profile
;
HistoryDb
historyDb
;
...
...
@@ -48,7 +48,7 @@ namespace FLY.Thick.FilmCasting.Server
GSample
gsample
,
InitParam
initParam
,
OBJComponents
.
Server
.
WarningSystem2
warningSystem
,
BoltMapFilmCasting
boltmap
,
BorderSearch
bordersearch
,
Reject
reject
,
DynArea
dynarea
,
AD2ThkHandler
ad2thk
,
FilmCastingProfileParam
profileParam
,
FilmCastingProfile
profile
,
FilmPositionDetect
filmPositionDetect
,
FilmCastingProfileParam
profileParam
,
FilmCastingProfile
profile
,
FilmPositionDetect
2
filmPositionDetect
,
HistoryDb
historyDb
,
BulkDb
bulkDb
)
{
...
...
Project.FLY.Thick.FilmCasting/FLY.Thick.FilmCasting/Server/TDGage.cs
View file @
4f51b219
...
...
@@ -53,12 +53,12 @@ namespace FLY.Thick.FilmCasting.Server
/// <summary>
/// 膜位置检测
/// </summary>
public
FilmPositionDetect
filmPositionDetect
;
FilmPositionDetect2
filmPositionDetect
;
/// <summary>
/// 拉伸前膜位置检测
/// </summary>
FilmPositionDetect
filmPositionDetectBeforeStretching
;
FilmPositionDetect
2
filmPositionDetectBeforeStretching
;
/// <summary>
/// 运行参数
/// </summary>
...
...
@@ -234,8 +234,8 @@ namespace FLY.Thick.FilmCasting.Server
DynArea2
=
new
DynArea
();
filmPositionDetect
=
new
FilmPositionDetect
();
filmPositionDetectBeforeStretching
=
new
FilmPositionDetect
();
filmPositionDetect
=
new
FilmPositionDetect
2
();
filmPositionDetectBeforeStretching
=
new
FilmPositionDetect
2
();
warning
=
new
OBJComponents
.
Server
.
WarningSystem2
();
scanWarning
=
new
ScanWarning
();
...
...
@@ -486,12 +486,13 @@ namespace FLY.Thick.FilmCasting.Server
//FilmPositionDetect 配置----------------------------------------
#
region
filmPositionDetect
.
Init
(
flyAd
);
filmPositionDetect
.
InNo_Roll
=
FlyADIODefine
.
Instance
.
InNo_Roll
;
Misc
.
BindingOperations
.
SetBinding
(
initParam
,
nameof
(
initParam
.
FilmVThreshold
),
filmPositionDetect
,
nameof
(
filmPositionDetect
.
FilmVThreshold
));
Misc
.
BindingOperations
.
SetBinding
(
initParam
,
nameof
(
initParam
.
FilmVSrc
),
filmPositionDetect
,
nameof
(
filmPositionDetect
.
FilmVSrc
));
Misc
.
BindingOperations
.
SetBinding
(
initParam
,
nameof
(
initParam
.
Encoder2_mmpp
),
filmPositionDetect
,
nameof
(
filmPositionDetect
.
Encoder2_mmpp
));
Misc
.
BindingOperations
.
SetBinding
(
initParam
,
nameof
(
initParam
.
MmOfR
),
filmPositionDetect
,
nameof
(
filmPositionDetect
.
MmOfR
));
Misc
.
BindingOperations
.
SetBinding
(
filmPositionDetect
,
nameof
(
filmPositionDetect
.
FilmPosition
),
DynArea
,
nameof
(
DynArea
.
FilmPosition
));
Misc
.
BindingOperations
.
SetBinding
(
filmPositionDetect
,
nameof
(
filmPositionDetect
.
FilmVelocity
),
DynArea
,
nameof
(
DynArea
.
FilmVelocity
));
...
...
@@ -500,9 +501,12 @@ namespace FLY.Thick.FilmCasting.Server
//FilmPositionDetectBeforeStretching 配置----------------------------------------
#
region
filmPositionDetectBeforeStretching
.
Init
(
flyAd
);
Misc
.
BindingOperations
.
SetBinding
(
initParam
,
nameof
(
initParam
.
FilmVThreshold
),
filmPositionDetectBeforeStretching
,
nameof
(
filmPositionDetectBeforeStretching
.
FilmVThreshold
));
filmPositionDetectBeforeStretching
.
FilmVSrc
=
FilmVSRC
.
ROUND
;
filmPositionDetectBeforeStretching
.
InNo_Roll
=
FlyADIODefine
.
Instance
.
InNo_VBeforeStretching
;
Misc
.
BindingOperations
.
SetBinding
(
initParam
,
nameof
(
initParam
.
FilmVThreshold
),
filmPositionDetectBeforeStretching
,
nameof
(
filmPositionDetectBeforeStretching
.
FilmVThreshold
));
Misc
.
BindingOperations
.
SetBinding
(
initParam
,
nameof
(
initParam
.
MmOfR_VBefore
),
filmPositionDetectBeforeStretching
,
nameof
(
filmPositionDetectBeforeStretching
.
MmOfR
));
Misc
.
BindingOperations
.
SetBinding
(
filmPositionDetectBeforeStretching
,
nameof
(
filmPositionDetectBeforeStretching
.
FilmVelocity
),
DynArea2
,
nameof
(
DynArea2
.
FilmVelocityBeforeStretching
));
#
endregion
...
...
thick_public
@
41f36fec
Subproject commit
610be9712001bf4cc9b2d484a4f8f9d4c71d33e6
Subproject commit
41f36fec3d87f757dce848b029d4eef36f6df4a5
脚本/filmCastingInstallZipVersionInfo.json
View file @
4f51b219
{
"InstallZipVersion"
:
"7.6.0.
3
"
,
"InstallZipUrl"
:
"http://server.flyautomation.net:8889/download/流延测厚仪安装包_v7.6.0.
3_20220802
.7z"
"InstallZipVersion"
:
"7.6.0.
4
"
,
"InstallZipUrl"
:
"http://server.flyautomation.net:8889/download/流延测厚仪安装包_v7.6.0.
4_20220818
.7z"
}
\ No newline at end of file
脚本/流延报表模板 3.xlsx
deleted
100644 → 0
View file @
e96653a7
File deleted
脚本/版本描述.md
View file @
4f51b219
# 流延测厚仪安装包_v7.
5.6_20220411
# 流延测厚仪安装包_v7.
6.0_20220818
## 流延测厚仪服务器 v7.6.0
1.
优化 数据库中,数据范围外数据不会删除。 只是扫描图不统计数据范围数据而已
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment