Bladeren bron

Merge branch 'AOI-3' of http://49.235.130.76/XXF_1122/DaisyNPILine into AOI-3

KWD 3 maanden geleden
bovenliggende
commit
5672a90dff

+ 7 - 6
TeamAAS-VM/Core/Management.cs

@@ -1681,7 +1681,7 @@ namespace TeamAAS_VP.Core
                                 ScanValue = "";
                                 _scanDoneEvent.Reset(); // 重要:先关门
 
-                                await Scan_Client.SendAsync("T\r\n");
+                                await Scan_Client.SendAsync("T");
 
                                 // 等待扫码结果,最多 3 秒
                                 bool scanOk = await Task.Run(() => _scanDoneEvent.Wait(3000));
@@ -1805,7 +1805,7 @@ namespace TeamAAS_VP.Core
                                 ScanValue = "";
                                 _scanDoneEvent.Reset(); // 重要:先关门
 
-                                await Scan_Client.SendAsync("T\r\n");
+                                await Scan_Client.SendAsync("T");
 
                                 // 等待扫码结果,最多 3 秒
                                 bool scanOk = await Task.Run(() => _scanDoneEvent.Wait(3000));
@@ -2708,6 +2708,11 @@ namespace TeamAAS_VP.Core
                                 {
                                     return;
                                 }
+                                if (i==1)
+                                {
+                                    SendTaskMessage($"收到人工站请求不处理", MessageLevel.Debug);
+                                    return;
+                                }
                                 var sysConfig = _configService.GetSystemConfiguration();
                                 if (sysConfig.CodeUse == true && state == 1)
                                 {
@@ -2723,10 +2728,6 @@ namespace TeamAAS_VP.Core
                                 {
                                     code = plc.ReadNode<string>(string.Format(addressConfig.In_Code.Address, i));
                                 }
-                                if (sysConfig.IsManual && i == 1)
-                                {
-                                    return;
-                                }
 
                                 //var homeview = _container.Resolve<HomeViewModel>();
                                 if (i == 0)

+ 0 - 10
TeamAAS-VM/Models/SystemConfiguration.cs

@@ -532,16 +532,6 @@ namespace TeamAAS_VP.Models
             set => SetProperty(ref _iouThreshold, value);
         }
 
-        private bool _IsManual;
-        /// <summary>
-        /// 是否有人工站
-        /// </summary>
-        public bool IsManual
-        {
-            get => _IsManual;
-            set => SetProperty(ref _IsManual, value);
-        }
-
         private double _PermissionIdleTimeout = 0;
         /// <summary>
         ///  工程师和管理员权限的无操作超时时长

+ 61 - 4
TeamAAS-VM/Resources/Languages/Lang.en.resx

@@ -469,7 +469,7 @@
     <value>Current Products</value>
   </data>
   <data name="产品编号" xml:space="preserve">
-    <value>Product No</value>
+    <value>Product No.</value>
   </data>
   <data name="当前产品总产量" xml:space="preserve">
     <value>Current Total Product Output</value>
@@ -1152,9 +1152,6 @@
   <data name="行X列" xml:space="preserve">
     <value>Row X Column: </value>
   </data>
-  <data name="X" xml:space="preserve">
-    <value> X </value>
-  </data>
   <data name="修改名称" xml:space="preserve">
     <value>Edit name</value>
   </data>
@@ -2139,4 +2136,64 @@
   <data name="设备信息" xml:space="preserve">
     <value>Device Info</value>
   </data>
+  <data name="时间" xml:space="preserve">
+    <value>Time</value>
+  </data>
+  <data name="测量数据" xml:space="preserve">
+    <value>Measurement Data</value>
+  </data>
+  <data name="拍照结果" xml:space="preserve">
+    <value>Photo Result</value>
+  </data>
+  <data name="详情" xml:space="preserve">
+    <value>Details</value>
+  </data>
+  <data name="良率" xml:space="preserve">
+    <value>Yield Rate</value>
+  </data>
+  <data name="虚拟SN" xml:space="preserve">
+    <value>Virtual SN</value>
+  </data>
+  <data name="检测结果为1" xml:space="preserve">
+    <value>Detection Result is 1</value>
+  </data>
+  <data name="设备列表" xml:space="preserve">
+    <value>Device List</value>
+  </data>
+  <data name="设备编号" xml:space="preserve">
+    <value>Device No.</value>
+  </data>
+  <data name="设备名称" xml:space="preserve">
+    <value>Device Name</value>
+  </data>
+  <data name="设备描述" xml:space="preserve">
+    <value>Device Description</value>
+  </data>
+  <data name="启用 MES" xml:space="preserve">
+    <value>Enable MES</value>
+  </data>
+  <data name="是否启用两次产品编号" xml:space="preserve">
+    <value>Enable Twice Product No. Input</value>
+  </data>
+  <data name="是否保存键盘格JMP数据" xml:space="preserve">
+    <value>Save Keyboard Grid JMP Data</value>
+  </data>
+  <data name="是否保存CSV文件" xml:space="preserve">
+    <value>Save CSV File</value>
+  </data>
+  <data name="是否保存ppid" xml:space="preserve">
+    <value>Save PPID</value>
+  </data>
+  <data name="是否启用键盘相邻键保存差值" xml:space="preserve">
+    <value>Enable Saving Difference Value of Adjacent Keyboard Keys</value>
+  </data>
+  <data name="保存的CSV文件路径" xml:space="preserve">
+    <value>Saved CSV File Path</value>
+  </data>
+  <data name="生产" xml:space="preserve">
+    <value>production</value>
+  </data>
+  <data name="流线" xml:space="preserve">
+    <value>streamline</value>
+  </data>
 </root>

+ 101 - 45
TeamAAS-VM/Resources/Languages/Lang.ja-JP.resx

@@ -469,7 +469,7 @@
     <value>現在の製品</value>
   </data>
   <data name="产品编号" xml:space="preserve">
-    <value>品番号</value>
+    <value>品番号</value>
   </data>
   <data name="当前产品总产量" xml:space="preserve">
     <value>現在の総製品出力</value>
@@ -1152,9 +1152,6 @@
   <data name="行X列" xml:space="preserve">
     <value>X列目: </value>
   </data>
-  <data name="X" xml:space="preserve">
-    <value> X </value>
-  </data>
   <data name="修改名称" xml:space="preserve">
     <value>名前を変更してください</value>
   </data>
@@ -2022,13 +2019,45 @@
   <data name="请选择要启用的光源通道" xml:space="preserve">
     <value>有効にするライトチャンネルを選択してください</value>
   </data>
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="是否控制光源通道亮灭" xml:space="preserve">
+    <value>光源チャンネルのオン/オフを制御するかどうか</value>
+  </data>
+  <data name="CameraBrand_opt" xml:space="preserve">
+    <value>Opt Camera Viewer </value>
+  </data>
+  <data name="相机焦距评价" xml:space="preserve">
+    <value>カメラ焦点距離定格</value>
+  </data>
+  <data name="示教起点" xml:space="preserve">
+    <value>出発点を教えてください</value>
+  </data>
+  <data name="示教终点" xml:space="preserve">
+    <value>ティーチングエンドポイント</value>
+  </data>
+  <data name="CameraBrand_SSZN" xml:space="preserve">
+    <value>ディープ3 D </value>
+  </data>
   <data name="执行起始点" xml:space="preserve">
     <value>実行開始ポイント</value>
   </data>
   <data name="执行终点" xml:space="preserve">
     <value>実行エンドポイント</value>
   </data>
+  <data name="相机曝光设置失败" xml:space="preserve">
+    <value>カメラの露出設定に失敗しました</value>
+  </data>
+  <data name="相机增益设置失败" xml:space="preserve">
+    <value>カメラゲインの設定に失敗しました</value>
+  </data>
+  <data name="开始采集图像" xml:space="preserve">
+    <value>画像のキャプチャを始めましょう</value>
+  </data>
+  <data name="开始运行视觉工具" xml:space="preserve">
+    <value>ビジュアルツールの実行を開始してください</value>
+  </data>
+  <data name="执行相机取图并执行视觉工具组时出错" xml:space="preserve">
+    <value>カメラの図面の実行とビジュアルツールセットの実行中にエラーが発生しました</value>
+  </data>
   <data name="示教终點" xml:space="preserve">
     <value>ティーチングエンドポイント</value>
   </data>
@@ -2044,6 +2073,12 @@
   <data name="ProcedureSaveImagePathModel_Month_Day_Formula_ProductSN_Time" xml:space="preserve">
     <value>MM/DD/レシピ名/商品SN/商品SN + TIME </value>
   </data>
+  <data name="抛料数" xml:space="preserve">
+    <value>鋳物の数</value>
+  </data>
+  <data name="NG数量" xml:space="preserve">
+    <value>NG数量</value>
+  </data>
   <data name="是否移除扫码枪" xml:space="preserve">
     <value>スキャナーガンを取り外すかどうか</value>
   </data>
@@ -2071,73 +2106,94 @@
   <data name="扫码枪接收信息时出错" xml:space="preserve">
     <value>スキャナーからのメッセージの受信中にエラーが発生しました</value>
   </data>
+  <data name="运行过度点" xml:space="preserve">
+    <value>ポイントを駆け抜けろ</value>
+  </data>
+  <data name="是否运行过度点" xml:space="preserve">
+    <value>トランジションポイントを実行するかどうか</value>
+  </data>
+  <data name="过度点旋转" xml:space="preserve">
+    <value>過度のポイントローテーション</value>
+  </data>
+  <data name="是否运行过度点旋转" xml:space="preserve">
+    <value>過度のポイントローテーションを実行するかどうか</value>
+  </data>
+  <data name="是否运行到过度点位" xml:space="preserve">
+    <value>超過点まで走るかどうか</value>
+  </data>
+  <data name="是否运行到过度点旋转位" xml:space="preserve">
+    <value>超点回転ビットまで走るかどうか</value>
+  </data>
   <data name="采集图像完成用时0ms" xml:space="preserve">
     <value>取得画像完了時間0 ms </value>
   </data>
   <data name="视觉静态精度分析" xml:space="preserve">
     <value>視覚的静的精度分析</value>
   </data>
+  <data name="CameraBrand_IKap" xml:space="preserve">
+    <value>CameraBrandIKap</value>
+  </data>
   <data name="设备信息" xml:space="preserve">
     <value>デバイス情報</value>
   </data>
-  <data name="是否控制光源通道亮灭" xml:space="preserve">
-    <value>光源チャンネルのオン/オフを制御するかどうか</value>
+  <data name="时间" xml:space="preserve">
+    <value>時間</value>
   </data>
-  <data name="CameraBrand_opt" xml:space="preserve">
-    <value>Opt Camera Viewer </value>
+  <data name="测量数据" xml:space="preserve">
+    <value>測定データ</value>
   </data>
-  <data name="相机焦距评价" xml:space="preserve">
-    <value>カメラ焦点距離定格</value>
+  <data name="拍照结果" xml:space="preserve">
+    <value>撮影結果</value>
   </data>
-  <data name="示教起点" xml:space="preserve">
-    <value>出発点を教えてください</value>
+  <data name="详情" xml:space="preserve">
+    <value>詳細</value>
   </data>
-  <data name="示教终点" xml:space="preserve">
-    <value>ティーチングエンドポイント</value>
+  <data name="良率" xml:space="preserve">
+    <value>良品率</value>
   </data>
-  <data name="CameraBrand_SSZN" xml:space="preserve">
-    <value>ディープ3 D </value>
+  <data name="虚拟SN" xml:space="preserve">
+    <value>仮想SN</value>
   </data>
-  <data name="相机曝光设置失败" xml:space="preserve">
-    <value>カメラの露出設定に失敗しました</value>
+  <data name="检测结果为1" xml:space="preserve">
+    <value>検出結果が1</value>
   </data>
-  <data name="相机增益设置失败" xml:space="preserve">
-    <value>カメラゲインの設定に失敗しました</value>
+  <data name="设备列表" xml:space="preserve">
+    <value>デバイスリスト</value>
   </data>
-  <data name="开始采集图像" xml:space="preserve">
-    <value>画像のキャプチャを始めましょう</value>
+  <data name="设备编号" xml:space="preserve">
+    <value>デバイス番号</value>
   </data>
-  <data name="开始运行视觉工具" xml:space="preserve">
-    <value>ビジュアルツールの実行を開始してください</value>
+  <data name="设备名称" xml:space="preserve">
+    <value>デバイス名</value>
   </data>
-  <data name="执行相机取图并执行视觉工具组时出错" xml:space="preserve">
-    <value>カメラの図面の実行とビジュアルツールセットの実行中にエラーが発生しました</value>
+  <data name="设备描述" xml:space="preserve">
+    <value>デバイス説明</value>
   </data>
-  <data name="抛料数" xml:space="preserve">
-    <value>鋳物の数</value>
+  <data name="启用 MES" xml:space="preserve">
+    <value>MESを有効にする</value>
   </data>
-  <data name="NG数量" xml:space="preserve">
-    <value>NG数量</value>
+  <data name="是否启用两次产品编号" xml:space="preserve">
+    <value>製品番号を2回入力する機能を有効にするか</value>
   </data>
-  <data name="运行过度点" xml:space="preserve">
-    <value>ポイントを駆け抜けろ</value>
+  <data name="是否保存键盘格JMP数据" xml:space="preserve">
+    <value>キーボードグリッドのJMPデータを保存するか</value>
   </data>
-  <data name="是否运行过度点" xml:space="preserve">
-    <value>トランジションポイントを実行するかどうか</value>
+  <data name="是否保存CSV文件" xml:space="preserve">
+    <value>CSVファイルを保存するか</value>
   </data>
-  <data name="过度点旋转" xml:space="preserve">
-    <value>過度のポイントローテーション</value>
+  <data name="是否保存ppid" xml:space="preserve">
+    <value>ppidを保存するか</value>
   </data>
-  <data name="是否运行过度点旋转" xml:space="preserve">
-    <value>過度のポイントローテーションを実行するかどうか</value>
+  <data name="是否启用键盘相邻键保存差值" xml:space="preserve">
+    <value>キーボード隣接キーの差分値を保存する機能を有効にするか</value>
   </data>
-  <data name="是否运行到过度点位" xml:space="preserve">
-    <value>超過点まで走るかどうか</value>
+  <data name="保存的CSV文件路径" xml:space="preserve">
+    <value>保存するCSVファイルのパス</value>
   </data>
-  <data name="是否运行到过度点旋转位" xml:space="preserve">
-    <value>超点回転ビットまで走るかどうか</value>
+  <data name="生产" xml:space="preserve">
+    <value>生産</value>
   </data>
-  <data name="CameraBrand_IKap" xml:space="preserve">
-    <value>CameraBrandIKap</value>
+  <data name="流线" xml:space="preserve">
+    <value>流線</value>
   </data>
 </root>

+ 60 - 3
TeamAAS-VM/Resources/Languages/Lang.resx

@@ -1245,9 +1245,6 @@
   <data name="行X列" xml:space="preserve">
     <value>行 X 列: </value>
   </data>
-  <data name="X" xml:space="preserve">
-    <value> X </value>
-  </data>
   <data name="修改名称" xml:space="preserve">
     <value>修改名称</value>
   </data>
@@ -2267,4 +2264,64 @@
     <value>设备信息</value>
     <comment>设备信息</comment>
   </data>
+  <data name="时间" xml:space="preserve">
+    <value>时间</value>
+  </data>
+  <data name="测量数据" xml:space="preserve">
+    <value>测量数据</value>
+  </data>
+  <data name="拍照结果" xml:space="preserve">
+    <value>拍照结果</value>
+  </data>
+  <data name="详情" xml:space="preserve">
+    <value>详情</value>
+  </data>
+  <data name="良率" xml:space="preserve">
+    <value>良率</value>
+  </data>
+  <data name="虚拟SN" xml:space="preserve">
+    <value>虚拟SN</value>
+  </data>
+  <data name="检测结果为1" xml:space="preserve">
+    <value>检测结果为1</value>
+  </data>
+  <data name="设备列表" xml:space="preserve">
+    <value>设备列表</value>
+  </data>
+  <data name="设备编号" xml:space="preserve">
+    <value>设备编号</value>
+  </data>
+  <data name="设备名称" xml:space="preserve">
+    <value>设备名称</value>
+  </data>
+  <data name="设备描述" xml:space="preserve">
+    <value>设备描述</value>
+  </data>
+  <data name="启用 MES" xml:space="preserve">
+    <value>启用 MES</value>
+  </data>
+  <data name="是否启用两次产品编号" xml:space="preserve">
+    <value>是否启用两次产品编号</value>
+  </data>
+  <data name="是否保存键盘格JMP数据" xml:space="preserve">
+    <value>是否保存键盘格JMP数据</value>
+  </data>
+  <data name="是否保存CSV文件" xml:space="preserve">
+    <value>是否保存CSV文件</value>
+  </data>
+  <data name="是否保存ppid" xml:space="preserve">
+    <value>是否保存ppid</value>
+  </data>
+  <data name="是否启用键盘相邻键保存差值" xml:space="preserve">
+    <value>是否启用键盘相邻键保存差值</value>
+  </data>
+  <data name="保存的CSV文件路径" xml:space="preserve">
+    <value>保存的CSV文件路径</value>
+  </data>
+  <data name="生产" xml:space="preserve">
+    <value>生产</value>
+  </data>
+  <data name="流线" xml:space="preserve">
+    <value>流线</value>
+  </data>
 </root>

+ 60 - 3
TeamAAS-VM/Resources/Languages/Lang.vi.resx

@@ -1152,9 +1152,6 @@
   <data name="行X列" xml:space="preserve">
     <value>Hàng X Cột:</value>
   </data>
-  <data name="X" xml:space="preserve">
-    <value>X</value>
-  </data>
   <data name="修改名称" xml:space="preserve">
     <value>Sửa đổi tên</value>
   </data>
@@ -2139,4 +2136,64 @@
   <data name="设备信息" xml:space="preserve">
     <value>Thông tin thiết bị</value>
   </data>
+  <data name="时间" xml:space="preserve">
+    <value>Thời gian</value>
+  </data>
+  <data name="测量数据" xml:space="preserve">
+    <value>Dữ liệu đo lường</value>
+  </data>
+  <data name="拍照结果" xml:space="preserve">
+    <value>Kết quả chụp ảnh</value>
+  </data>
+  <data name="详情" xml:space="preserve">
+    <value>Chi tiết</value>
+  </data>
+  <data name="良率" xml:space="preserve">
+    <value>Tỷ lệ sản phẩm tốt</value>
+  </data>
+  <data name="虚拟SN" xml:space="preserve">
+    <value>SN ảo</value>
+  </data>
+  <data name="检测结果为1" xml:space="preserve">
+    <value>Kết quả phát hiện là 1</value>
+  </data>
+  <data name="设备列表" xml:space="preserve">
+    <value>Danh sách thiết bị</value>
+  </data>
+  <data name="设备编号" xml:space="preserve">
+    <value>Mã thiết bị</value>
+  </data>
+  <data name="设备名称" xml:space="preserve">
+    <value>Tên thiết bị</value>
+  </data>
+  <data name="设备描述" xml:space="preserve">
+    <value>Mô tả thiết bị</value>
+  </data>
+  <data name="启用 MES" xml:space="preserve">
+    <value>Bật MES</value>
+  </data>
+  <data name="是否启用两次产品编号" xml:space="preserve">
+    <value>Có bật chức năng nhập mã sản phẩm hai lần không</value>
+  </data>
+  <data name="是否保存键盘格JMP数据" xml:space="preserve">
+    <value>Có lưu dữ liệu JMP của lưới bàn phím không</value>
+  </data>
+  <data name="是否保存CSV文件" xml:space="preserve">
+    <value>Có lưu tệp CSV không</value>
+  </data>
+  <data name="是否保存ppid" xml:space="preserve">
+    <value>Có lưu ppid không</value>
+  </data>
+  <data name="是否启用键盘相邻键保存差值" xml:space="preserve">
+    <value>Có bật chức năng lưu giá trị hiệu của các phím liền kề bàn phím không</value>
+  </data>
+  <data name="保存的CSV文件路径" xml:space="preserve">
+    <value>Đường dẫn tệp CSV đã lưu</value>
+  </data>
+  <data name="生产" xml:space="preserve">
+    <value>sản xuất</value>
+  </data>
+  <data name="流线" xml:space="preserve">
+    <value>đường dòng</value>
+  </data>
 </root>

+ 100 - 44
TeamAAS-VM/Resources/Languages/Lang.zh-TW.resx

@@ -1152,9 +1152,6 @@
   <data name="行X列" xml:space="preserve">
     <value>行X 列: </value>
   </data>
-  <data name="X" xml:space="preserve">
-    <value> X </value>
-  </data>
   <data name="修改名称" xml:space="preserve">
     <value>修改名稱</value>
   </data>
@@ -2022,13 +2019,45 @@
   <data name="请选择要启用的光源通道" xml:space="preserve">
     <value>請選擇要啟用的光源通道</value>
   </data>
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="是否控制光源通道亮灭" xml:space="preserve">
+    <value>是否控制光源通道亮滅</value>
+  </data>
+  <data name="CameraBrand_opt" xml:space="preserve">
+    <value>奧普特(OPT Camera Viewer)</value>
+  </data>
+  <data name="相机焦距评价" xml:space="preserve">
+    <value>相機焦距評價</value>
+  </data>
+  <data name="示教起点" xml:space="preserve">
+    <value>示教起點</value>
+  </data>
+  <data name="示教终点" xml:space="preserve">
+    <value>示教終點</value>
+  </data>
+  <data name="CameraBrand_SSZN" xml:space="preserve">
+    <value>深視3D</value>
+  </data>
   <data name="执行起始点" xml:space="preserve">
     <value>執行起點</value>
   </data>
   <data name="执行终点" xml:space="preserve">
     <value>執行終點</value>
   </data>
+  <data name="相机曝光设置失败" xml:space="preserve">
+    <value>相機曝光設定失敗</value>
+  </data>
+  <data name="相机增益设置失败" xml:space="preserve">
+    <value>相機增益設定失敗</value>
+  </data>
+  <data name="开始采集图像" xml:space="preserve">
+    <value>開始採集影像</value>
+  </data>
+  <data name="开始运行视觉工具" xml:space="preserve">
+    <value>開始運行視覺工具</value>
+  </data>
+  <data name="执行相机取图并执行视觉工具组时出错" xml:space="preserve">
+    <value>執行相機取圖並執行視覺工具組時出錯</value>
+  </data>
   <data name="示教终點" xml:space="preserve">
     <value>示教終點</value>
   </data>
@@ -2044,6 +2073,12 @@
   <data name="ProcedureSaveImagePathModel_Month_Day_Formula_ProductSN_Time" xml:space="preserve">
     <value>年月/日/配方名/產品SN/產品SN+時間</value>
   </data>
+  <data name="抛料数" xml:space="preserve">
+    <value>拋料數</value>
+  </data>
+  <data name="NG数量" xml:space="preserve">
+    <value>NG數量</value>
+  </data>
   <data name="是否移除扫码枪" xml:space="preserve">
     <value>是否移除掃碼槍</value>
   </data>
@@ -2071,73 +2106,94 @@
   <data name="扫码枪接收信息时出错" xml:space="preserve">
     <value>掃碼槍接收訊息時發生錯誤</value>
   </data>
+  <data name="运行过度点" xml:space="preserve">
+    <value>運行過度點</value>
+  </data>
+  <data name="是否运行过度点" xml:space="preserve">
+    <value>是否運行過度點</value>
+  </data>
+  <data name="过度点旋转" xml:space="preserve">
+    <value>過度點旋轉</value>
+  </data>
+  <data name="是否运行过度点旋转" xml:space="preserve">
+    <value>是否運行過度點旋轉</value>
+  </data>
+  <data name="是否运行到过度点位" xml:space="preserve">
+    <value>是否運行到過度點位</value>
+  </data>
+  <data name="是否运行到过度点旋转位" xml:space="preserve">
+    <value>是否運行到過度點旋轉位</value>
+  </data>
   <data name="采集图像完成用时0ms" xml:space="preserve">
     <value>擷取影像完成用時0ms</value>
   </data>
   <data name="视觉静态精度分析" xml:space="preserve">
     <value>視覺靜態精度分析</value>
   </data>
+  <data name="CameraBrand_IKap" xml:space="preserve">
+    <value>CameraBrandIKap</value>
+  </data>
   <data name="设备信息" xml:space="preserve">
     <value>設備資訊</value>
   </data>
-  <data name="是否控制光源通道亮灭" xml:space="preserve">
-    <value>是否控制光源通道亮滅</value>
+  <data name="时间" xml:space="preserve">
+    <value>時間</value>
   </data>
-  <data name="CameraBrand_opt" xml:space="preserve">
-    <value>奧普特(OPT Camera Viewer)</value>
+  <data name="测量数据" xml:space="preserve">
+    <value>測量數據</value>
   </data>
-  <data name="相机焦距评价" xml:space="preserve">
-    <value>相機焦距評價</value>
+  <data name="拍照结果" xml:space="preserve">
+    <value>拍照結果</value>
   </data>
-  <data name="示教起点" xml:space="preserve">
-    <value>示教起點</value>
+  <data name="详情" xml:space="preserve">
+    <value>詳情</value>
   </data>
-  <data name="示教终点" xml:space="preserve">
-    <value>示教終點</value>
+  <data name="良率" xml:space="preserve">
+    <value>良率</value>
   </data>
-  <data name="CameraBrand_SSZN" xml:space="preserve">
-    <value>深視3D</value>
+  <data name="虚拟SN" xml:space="preserve">
+    <value>虛擬SN</value>
   </data>
-  <data name="相机曝光设置失败" xml:space="preserve">
-    <value>相機曝光設定失敗</value>
+  <data name="检测结果为1" xml:space="preserve">
+    <value>檢測結果為1</value>
   </data>
-  <data name="相机增益设置失败" xml:space="preserve">
-    <value>相機增益設定失敗</value>
+  <data name="设备列表" xml:space="preserve">
+    <value>設備列表</value>
   </data>
-  <data name="开始采集图像" xml:space="preserve">
-    <value>開始採集影像</value>
+  <data name="设备编号" xml:space="preserve">
+    <value>設備編號</value>
   </data>
-  <data name="开始运行视觉工具" xml:space="preserve">
-    <value>開始運行視覺工具</value>
+  <data name="设备名称" xml:space="preserve">
+    <value>設備名稱</value>
   </data>
-  <data name="执行相机取图并执行视觉工具组时出错" xml:space="preserve">
-    <value>執行相機取圖並執行視覺工具組時出錯</value>
+  <data name="设备描述" xml:space="preserve">
+    <value>設備描述</value>
   </data>
-  <data name="抛料数" xml:space="preserve">
-    <value>拋料數</value>
+  <data name="启用 MES" xml:space="preserve">
+    <value>啟用 MES</value>
   </data>
-  <data name="NG数量" xml:space="preserve">
-    <value>NG數量</value>
+  <data name="是否启用两次产品编号" xml:space="preserve">
+    <value>是否啟用兩次產品編號</value>
   </data>
-  <data name="运行过度点" xml:space="preserve">
-    <value>運行過度點</value>
+  <data name="是否保存键盘格JMP数据" xml:space="preserve">
+    <value>是否保存鍵盤格JMP數據</value>
   </data>
-  <data name="是否运行过度点" xml:space="preserve">
-    <value>是否運行過度點</value>
+  <data name="是否保存CSV文件" xml:space="preserve">
+    <value>是否保存CSV文件</value>
   </data>
-  <data name="过度点旋转" xml:space="preserve">
-    <value>過度點旋轉</value>
+  <data name="是否保存ppid" xml:space="preserve">
+    <value>是否保存ppid</value>
   </data>
-  <data name="是否运行过度点旋转" xml:space="preserve">
-    <value>是否運行過度點旋轉</value>
+  <data name="是否启用键盘相邻键保存差值" xml:space="preserve">
+    <value>是否啟用鍵盤相鄰鍵保存差值</value>
   </data>
-  <data name="是否运行到过度点位" xml:space="preserve">
-    <value>是否運行到過度點位</value>
+  <data name="保存的CSV文件路径" xml:space="preserve">
+    <value>保存的CSV文件路徑</value>
   </data>
-  <data name="是否运行到过度点旋转位" xml:space="preserve">
-    <value>是否運行到過度點旋轉位</value>
+  <data name="生产" xml:space="preserve">
+    <value>生産</value>
   </data>
-  <data name="CameraBrand_IKap" xml:space="preserve">
-    <value>CameraBrandIKap</value>
+  <data name="流线" xml:space="preserve">
+    <value>流線</value>
   </data>
 </root>

+ 5 - 5
TeamAAS-VM/ViewModels/MainWindowViewModel.cs

@@ -69,7 +69,7 @@ namespace TeamAAS_VP.ViewModels
         /// 工程师和管理员权限的无操作超时时长。
         /// 超过该时长后自动切回操作员权限。
         /// </summary>
-        private TimeSpan PermissionIdleTimeout = TimeSpan.FromMinutes(0.5);
+        private TimeSpan PermissionIdleTimeout = TimeSpan.FromMinutes(1);
 
         /// <summary>
         /// 权限空闲检测计时器。
@@ -266,10 +266,10 @@ namespace TeamAAS_VP.ViewModels
             // 1. 读取配置参数
             _configService.LoadAll();
 
-            //if (_regionManager != null && _configService.GetSystemConfiguration().PermissionIdleTimeout > 0)
-            //{
-            //    PermissionIdleTimeout = TimeSpan.FromMinutes(_configService.GetSystemConfiguration().PermissionIdleTimeout);
-            //}
+            if (_regionManager != null && _configService.GetSystemConfiguration().PermissionIdleTimeout > 0)
+            {
+                PermissionIdleTimeout = TimeSpan.FromMinutes(_configService.GetSystemConfiguration().PermissionIdleTimeout);
+            }
             // 2. 加载校准
             _calibrationService.LoadAll();
 

+ 27 - 1
TeamAAS-VM/ViewModels/Product/VisionDynamicAccuracyAnalyzerViewModel.cs

@@ -244,6 +244,18 @@ namespace TeamAAS_VP.ViewModels.Product
             set { SetProperty(ref _MoveSpeed, value); }
         }
 
+        private int _MoveCount = 1000;
+        /// <summary>
+        /// 设置批次点数
+        /// </summary>
+        public int MoveCount
+        {
+            get { return _MoveCount; }
+            set { SetProperty(ref _MoveCount, value); }
+        }
+
+
+
         private double _CycleTime;
         /// <summary>
         /// 单次的时长
@@ -414,7 +426,15 @@ namespace TeamAAS_VP.ViewModels.Product
                 DateTime startTime = DateTime.Now;
                 //为机器人设置移动速度
                 await Robot.CalibParameAsync(new PickInfo(), MoveSpeed, 0, false, 0, 0);
-                
+
+
+                // 优先针对已知的 SSZNCamera 类型直接调用
+                if (Camera is TeamAAS_VP.Core.Cameras.SSZNCamera sszn)
+                {
+                    sszn.CameraRevFinish = false;
+                    sszn.SetBatchPoints(MoveCount);
+                }
+
                 //移动机器人至A点
                 bool isSuccess1 = await Robot.CalibMotionAsync(PointA, null);
                 //if (!isSuccess1)
@@ -490,6 +510,12 @@ namespace TeamAAS_VP.ViewModels.Product
                 //为机器人设置移动速度
                 await Robot.CalibParameAsync(new PickInfo(), MoveSpeed, 0, false, 0, 0);
 
+                // 优先针对已知的 SSZNCamera 类型直接调用
+                if (Camera is TeamAAS_VP.Core.Cameras.SSZNCamera sszn)
+                {
+                    sszn.CameraRevFinish = false;
+                    sszn.SetBatchPoints(MoveCount);
+                }
                 while (CurrentProgress < RepeatCount)
                 {
                     if (_cts.Token.IsCancellationRequested)

+ 8 - 8
TeamAAS-VM/Views/HomeView.xaml

@@ -77,7 +77,7 @@
                             <TextBlock DockPanel.Dock="Top"
                                        FontWeight="Bold"
                                        FontSize="{DynamicResource Font.Size.Body3}"
-                                       Text="拍照结果:" />
+                                       Text="{lex:Loc 拍照结果}" />
                             <DataGrid x:Name="lockResultGrid"
                                       ItemsSource="{Binding LockResults}"
                                       AutoGenerateColumns="False"
@@ -96,15 +96,15 @@
                                                         Binding="{Binding PhotoName}"
                                                         Width="auto"
                                                         IsReadOnly="True" />
-                                    <DataGridTextColumn Header="产品编号"
+                                    <DataGridTextColumn Header="{lex:Loc 产品编号}"
                                                         Binding="{Binding PhotoCode}"
                                                         Width="auto"
                                                         IsReadOnly="True" />
-                                    <DataGridTextColumn Header="时间"
+                                    <DataGridTextColumn Header="{lex:Loc 时间}"
                                                         Binding="{Binding Timestamp, StringFormat={}{0:G}}"
                                                         Width="auto"
                                                         IsReadOnly="True" />
-                                    <DataGridTextColumn Header="测量数据"
+                                    <DataGridTextColumn Header="{lex:Loc 测量数据}"
                                                         Binding="{Binding ResultData}"
                                                         Width="auto"
                                                         IsReadOnly="True" />
@@ -120,7 +120,7 @@
                     Binding="{Binding LockTorque}"
                     Width="auto"
                     IsReadOnly="True" />-->
-                                    <DataGridTemplateColumn Header="拍照结果"
+                                    <DataGridTemplateColumn Header="{lex:Loc 拍照结果}"
                                                             Width="auto"
                                                             IsReadOnly="True">
                                         <DataGridTemplateColumn.CellTemplate>
@@ -160,7 +160,7 @@
                                             </DataTemplate>
                                         </DataGridTemplateColumn.CellTemplate>
                                     </DataGridTemplateColumn>
-                                    <DataGridTextColumn Header="详情"
+                                    <DataGridTextColumn Header="{lex:Loc 详情}"
                                                         Binding="{Binding Detail}"
                                                         Width="auto"
                                                         IsReadOnly="True" />
@@ -420,7 +420,7 @@
                                VerticalAlignment="Center"
                                Margin="10,0" />
                 </StackPanel>
-                <CheckBox Grid.Row="2"
+                <!--<CheckBox Grid.Row="2"
                           VerticalAlignment="Bottom"
                           Margin=" 120,3"
                           HorizontalAlignment="Right"
@@ -433,7 +433,7 @@
                           HorizontalAlignment="Right"
                           Content="检测结果为1"
                           IsEnabled="{Binding IsRunning, Converter={StaticResource InvertBooleanConverter}}"
-                          IsChecked="{Binding IsResultTrue, Mode=TwoWay, Converter={StaticResource InvertBooleanConverter}}" Width="98" />
+                          IsChecked="{Binding IsResultTrue, Mode=TwoWay, Converter={StaticResource InvertBooleanConverter}}" Width="98" />-->
                 <Button Grid.Row="2"
                         Content="{lex:Loc 计数清零}"
                         VerticalAlignment="Bottom"

+ 3 - 3
TeamAAS-VM/Views/MainWindowView.xaml

@@ -127,13 +127,13 @@
                 VerticalAlignment="Center"
                 FontWeight="Bold"/>
                         <materialDesign:Card HorizontalAlignment="Center" VerticalAlignment="Center" Margin="50,10" Background="{Binding management.RunModelBackground}" >
-                            <TextBlock Text="生产" FontSize="22" Margin="8" />
+                            <TextBlock Text="{lex:Loc 生产}" FontSize="22" Margin="8" />
                         </materialDesign:Card >
                         <materialDesign:Card HorizontalAlignment="Center" VerticalAlignment="Center" Margin="20,10" Background="{Binding management.ManualModeBackground}" >
-                            <TextBlock Text="调机" FontSize="22" Margin="8"/>
+                            <TextBlock Text="{lex:Loc 调试}" FontSize="22" Margin="8"/>
                         </materialDesign:Card>
                         <materialDesign:Card HorizontalAlignment="Center" VerticalAlignment="Center" Margin="50,10" Background="{Binding management.ClearModeBackground}" >
-                            <TextBlock Text="流线" FontSize="22" Margin="8" />
+                            <TextBlock Text="{lex:Loc 流线}" FontSize="22" Margin="8" />
                         </materialDesign:Card>
                     </StackPanel>
 

+ 20 - 7
TeamAAS-VM/Views/Product/VisionDynamicAccuracyAnalyzer.xaml

@@ -278,6 +278,7 @@
                                     <ColumnDefinition Width="*" />
                                     <ColumnDefinition Width="*" />
                                     <ColumnDefinition Width="*" />
+                                    <ColumnDefinition Width="*" />
                                 </Grid.ColumnDefinitions>
 
                                 <!-- 重复次数 -->
@@ -308,15 +309,27 @@
                                 </StackPanel>
 
                                 <StackPanel Grid.Column="2"
-Margin="10,0,0,0">
+                                              Margin="10,0,0,0">
                                     <TextBlock Text="垂直步进距离(ms):" />
                                     <uControl:myNumericUpDowm MinWidth="100"
-                  Interval="0.1"
-                  Maximum="10"
-                  Minimum="-10"
-                  StringFormat="{}{0:N3} mm"
-                  Value="{Binding Distance,Mode=TwoWay}"
-                  Margin="10,0" />
+                                               Interval="0.1"
+                                               Maximum="10"
+                                               Minimum="-10"
+                                               StringFormat="{}{0:N3} mm"
+                                               Value="{Binding Distance,Mode=TwoWay}"
+                                               Margin="10,0" />
+                                </StackPanel>
+                                <StackPanel Grid.Column="3"
+                                            Margin="10,0,0,0">
+                                    <TextBlock Text="设置批次点数:" />
+                                    <mah:NumericUpDown Value="{Binding MoveCount, Mode=TwoWay}"
+                                                       Minimum="1"
+                                                       Maximum="1000000"
+                                                       d:Value="50"
+                                                       TextAlignment="Center"
+                                                       HorizontalContentAlignment="Center"
+                                                       HorizontalAlignment="Stretch"
+                                                       IsEnabled="{Binding IsRunning, Converter={StaticResource InvertBooleanConverter}}" />
                                 </StackPanel>
                             </Grid>
 

+ 10 - 10
TeamAAS-VM/Views/SettingView.xaml

@@ -643,7 +643,7 @@
 
                                 <TextBlock Grid.Row="0"
                                Grid.Column="0"
-                               Text="设备编号:"
+                               Text="{lex:Loc 设备编号}"
                                HorizontalAlignment="Right"
                                VerticalAlignment="Center" />
                                 <TextBlock Grid.Row="0"
@@ -654,7 +654,7 @@
 
                                 <TextBlock Grid.Row="1"
                                Grid.Column="0"
-                               Text="设备名称:"
+                               Text="{lex:Loc 设备名称}"
                                HorizontalAlignment="Right"
                                VerticalAlignment="Center" />
                                 <TextBox Grid.Row="1"
@@ -664,7 +664,7 @@
 
                                 <TextBlock Grid.Row="2"
                                Grid.Column="0"
-                               Text="设备描述:"
+                               Text="{lex:Loc 设备描述}"
                                HorizontalAlignment="Right"
                                VerticalAlignment="Center" />
                                 <TextBox Grid.Row="2"
@@ -754,7 +754,7 @@
 
                                 <TextBlock Grid.Row="11"
                                Grid.Column="0"
-                               Text="启用 MES:"
+                               Text="{lex:Loc 启用 MES}"
                                HorizontalAlignment="Right"
                                VerticalAlignment="Center" />
                                 <CheckBox Grid.Row="11"
@@ -767,32 +767,32 @@
                              Orientation="Horizontal">
                                 <CheckBox Grid.Row="12"
                               Grid.Column="1"
-                              Content="是否启用两次产品编号"
+                              Content="{lex:Loc 是否启用两次产品编号}"
                               IsChecked="{Binding SelectDeviceInfo.EnableDoubleMes, Mode=TwoWay}"
                               Margin="6,2" />
                                 <CheckBox Grid.Row="12"
                                         Grid.Column="1"
-                                          Content="是否保存键盘格JMP数据"
+                                          Content="{lex:Loc 是否保存键盘格JMP数据}"
                                           IsChecked="{Binding SelectDeviceInfo.SaveCsvJmp, Mode=TwoWay}"
                                           Margin="6,2" />
                                 </StackPanel>
                                 <StackPanel Grid.Row="13"
                                 Grid.Column="1"
                                 Orientation="Horizontal">
-                                    <CheckBox Content="是否保存CSV文件"
+                                    <CheckBox Content="{lex:Loc 是否保存CSV文件}"
                                   IsChecked="{Binding SelectDeviceInfo.SaveCsv, Mode=TwoWay}"
                                   Command="{Binding CheckStatusCommand}"
                                   Margin="6,2" />
-                                    <CheckBox Content="是否保存ppid"
+                                    <CheckBox Content="{lex:Loc 是否保存ppid}"
                                   IsChecked="{Binding SelectDeviceInfo.SaveCsvPPID, Mode=TwoWay}"
                                   Margin="6,2" />
-                                    <CheckBox Content="是否启用键盘相邻键保存差值"
+                                    <CheckBox Content="{lex:Loc 是否启用键盘相邻键保存差值}"
                                   IsChecked="{Binding SelectDeviceInfo.SaveCsvkeyData, Mode=TwoWay}"
                                   Margin="6,2"/>
                                 </StackPanel>
                                 <TextBlock Grid.Row="14"
                                Grid.Column="0"
-                               Text="保存的CSV文件路径:"
+                               Text="{lex:Loc 保存的CSV文件路径}"
                                HorizontalAlignment="Right"
                                VerticalAlignment="Center" />
                                 <DockPanel HorizontalAlignment="Stretch"