wankeda
2025-04-14 291f66df5621f0644ce9d15548eb6590045691f0
添加PDA下发输送线回流任务
已修改12个文件
已添加7个文件
1340 ■■■■ 文件已修改
代码管理/NEWCode/WIDESEAWCS_PDA/pages.json 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_PDA/pages/index/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_PDA/pages/叫料/输送线回流.vue 201 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskCZService.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/RoastZ/CommonRoastZ.cs 295 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/RoastZ/IRoastZ.cs 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/PDA/PDAController.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskCZService.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/ElevatorJob.cs 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RoastJob/CommonRoastJob.cs 172 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RoastZJob/CommonRoastZJob.cs 251 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WIDESEA_WCSServer/WIDESEA_WCS/SchedulerExecute/AGV/AgvAndEquiWorkF.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WIDESEA_WCSServer/WIDESEA_WCS/SchedulerExecute/AGV/AgvAndEquiWorkThree.cs 128 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WIDESEA_WCSServer/WIDESEA_WCS/SchedulerExecute/AGV/AgvAndEquiWorkThreeHKFJ.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WIDESEA_WCSServer/WIDESEA_WCS/SchedulerExecute/AGV/ToMesggeThreeHKZJ.cs 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WIDESEA_WCSServer/WIDESEA_WCSServer/Download/Logger/Queue/WriteError/20250411.txt 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WIDESEA_WCSServer/WIDESEA_WCSServer/Download/Logger/Queue/WriteError/20250412.txt 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WIDESEA_WCSServer/WIDESEA_WCSServer/Download/Logger/Queue/WriteError/20250413.txt 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_PDA/pages.json
@@ -38,7 +38,13 @@
                "navigationBarTitleText": "负极叫料",
                "enablePullDownRefresh": false
            }
        },
        {
            "path": "pages/叫料/输送线回流",
            "style": {
                "navigationBarTitleText": "输送线回流",
                "enablePullDownRefresh": false
            }
        },
        {
            "path" : "pages/SetAddress/SetAddress",
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_PDA/pages/index/index.vue
@@ -27,6 +27,11 @@
                        url: 'pages/叫料/负极叫料',
                        image: "data:image/png;base64,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"
                    },
                    {
                        text: '三楼输送线回流',
                        url: 'pages/叫料/输送线回流',
                        image: "data:image/png;base64,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"
                    },
                    // {
                    //     text: '二楼冲叠任务',
                    //     url: 'pages/createTask/jjkto2F',
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_PDA/pages/½ÐÁÏ/ÊäËÍÏß»ØÁ÷.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,201 @@
<template>
    <view>
        <uni-segmented-control :current="current" :values="items" @clickItem="onClickItem">
        </uni-segmented-control>
        <view class="content">
        <view v-if="current === 0" class="headerstyle">
                <view class="itemstyle">
                    <uni-forms label-width="120">
                        <uni-forms-item label="起点地址">
                            <!-- <uni-easyinput type="text" :focus="!addressFocus" v-model="sourceAddress"
                                placeholder="请扫瞄起点地址" ref='midInput' @input="inputChangebarcode" /> -->
                                    <uni-data-select v-model="value" :localdata="rangs"></uni-data-select>
                        </uni-forms-item>
                        <uni-forms-item label="终点地址">
                            <uni-easyinput type="text" :focus="!addressFocus" v-model="targetAddress"
                                placeholder="请扫描终点地址" ref='midInput' @input="inputChangebarcode" />
                        </uni-forms-item>
                        <uni-forms-item>
                            <button @click="inbound" type="primary" size="default"
                                style="margin-top: 2%;">输送线搬运确认</button>
                        </uni-forms-item>
                    </uni-forms>
                </view>
            </view>
        </view>
        <u-toast ref="uToast" />
    </view>
</template>
<script>
    const innerAudioContext = uni.createInnerAudioContext();
    export default {
        data() {
            return {
                items: ['输送线搬运'],
                current: 0,
                matTotal: [],
                matInfos: [],
                orderNo: "",
                label: "",
                orderDetail: [],
                focus: false,
                barcode: "",
                materSn: "",
                sns: [],
                addressFocus: false,
                targetAddress: "",
                sourceAddress: "",
                address: "",
                check: true,
                value: "",
                matInfo: [],
                value2: "",
                matTotals: [],
                value: 0,
                rangs: [{
                        value: "FJXL-KPHLX001",
                        text: "FJXL-KPHLX001"
                    },
                    {
                        value: "ZJXL-KPHLX001",
                        text: "ZJXL-KPHLX001"
                    },
                ],
                // range: [],
            }
        },
        onShow() {},
        // onLoad(res) {
        //     this.focus = false;
        //     this.addressFocus = false;
        //     this.orderNo = res.orderNo;
        //     this.label = "单据编号:" + this.orderNo;
        //     this.getData();
        //     // this.getEndLocations();
        // },
        methods: {
            voiceSpeech(src) {
                innerAudioContext.src = src; // '../../static/success.mp3';
                innerAudioContext.play();
            },
            updateFocus() {
                this.$nextTick(() => {
                    this.materSn = '';
                    if (!this.focus) {
                        this.focus = true;
                    }
                });
            },
            barcodeFocus() {
                this.barcode = '';
                if (this.focus) {
                    this.focus = false;
                }
            },
            // getData() {
            //     var postData = this.orderNo
            //     this.$u.post('/api/InboundOrder/GetInboundOrderDetail', postData).then((res) => {
            //         if (res.status) {
            //             this.orderDetail = res.data;
            //             if (this.orderDetail.length > 3) {
            //                 this.loadVisible = true;
            //             }
            //         }
            //     })
            // },
            onClickItem(e) {
                this.focus = false;
                this.addressFocus = false;
                if (this.current !== e.currentIndex) {
                    this.current = e.currentIndex;
                    if (this.current == 2) {
                        this.getData();
                    }
                }
            },
            barcodeInput() {
                this.$nextTick(function(x) {
                    if (this.barcode.length > 0) {
                        this.focus = true;
                    }
                })
            },
            inbound() {
                var postData = {
                    MainData: {
                        "sourceAddress": this.value,
                        "targetAddress": this.targetAddress,
                    }
                }
                this.$u.post('/api/PDA/EmptyTask', postData).then(res => {
                    if (res.code == 200) {
                        uni.$showMsg("任务添加成功");
                        this.sourceAddress = "";
                        this.targetAddress = "";
                        setTimeout(() => {
                            // this.materialtype = false;
                        }, 200);
                    } else {
                        this.$refs.uToast.show({
                            title: res.message,
                            type: "error"
                        })
                    }
                }).catch(err => {
                    this.$refs.uToast.show({
                        title: err.message,
                        type: "error"
                    })
                })
            },
            inputChangebarcode() {
                this.addressFocus = false;
                this.$nextTick(function(x) {
                    if (this.sourceAddress != '') {
                        this.addressFocus = true;
                    }
                })
            },
            // getEndLocations() {
            //     this.$u.post('/api/CachePoint/GetEndPoints', null).then(res => {
            //         if (res.status) {
            //             this.range = res.data;
            //         } else {
            //             this.$refs.uToast.show({
            //                 title: res.message,
            //                 type: "error"
            //             })
            //         }
            //     })
            // }
        }
    }
</script>
<style lang="scss">
    @import '@/common/uni-ui.scss';
    .content {
        display: flex;
        height: 150px;
    }
    .content-text {
        font-size: 14px;
        color: #666;
    }
    .itemstyle {
        margin-top: 30px;
        margin-left: 5%;
    }
    .headerstyle {
        width: 90%;
    }
</style>
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskCZService.cs
@@ -42,5 +42,12 @@
        /// <param name="dto"></param>
        /// <returns></returns>
        public Task<WebResponseContent> FinishTask(CZTaskFinshDto dto);
        /// <summary>
        /// è¾“送线回流
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public Task<WebResponseContent> EmptyTask(SaveModel saveModel);
    }
}
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/RoastZ/CommonRoastZ.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,295 @@
#region << ç‰ˆ æœ¬ æ³¨ é‡Š >>
/*----------------------------------------------------------------
 * å‘½åç©ºé—´ï¼šWIDESEAWCS_QuartzJob
 * åˆ›å»ºè€…:胡童庆
 * åˆ›å»ºæ—¶é—´ï¼š2024/8/2 16:13:36
 * ç‰ˆæœ¬ï¼šV1.0.0
 * æè¿°ï¼šä¸€èˆ¬çƒ˜çƒ¤å®žçŽ°ç±»
 *
 * ----------------------------------------------------------------
 * ä¿®æ”¹äººï¼š
 * ä¿®æ”¹æ—¶é—´ï¼š
 * ç‰ˆæœ¬ï¼šV1.0.1
 * ä¿®æ”¹è¯´æ˜Žï¼š
 *
 *----------------------------------------------------------------*/
#endregion << ç‰ˆ æœ¬ æ³¨ é‡Š >>
using HslCommunication;
using System.ComponentModel;
using WIDESEAWCS_Communicator;
using WIDESEAWCS_QuartzJob.ConveyorLine.Enum;
using WIDESEAWCS_QuartzJob.DeviceBase;
using WIDESEAWCS_QuartzJob.DTO;
namespace WIDESEAWCS_QuartzJob
{
    /// <summary>
    /// çƒ˜çƒ¤å®žçŽ°å¯¹è±¡
    /// </summary>
    [Description("Roast烘烤设备")]
    public class CommonRoastZ : IRoastZ
    {
        #region Private Member
        /// <summary>
        /// çƒ˜çƒ¤é€šè®¯å¯¹è±¡
        /// </summary>
        private readonly BaseCommunicator _communicator;
        /// <summary>
        /// çƒ˜çƒ¤åè®®ä¿¡æ¯
        /// </summary>
        private readonly List<DeviceProDTO> _deviceProDTOs;
        /// <summary>
        /// çƒ˜çƒ¤åè®®æ˜Žç»†ä¿¡æ¯
        /// </summary>
        private readonly List<DeviceProtocolDetailDTO> _deviceProtocolDetailDTOs;
        /// <summary>
        /// è®¾å¤‡ç¼–号
        /// </summary>
        public readonly string _deviceCode;
        /// <summary>
        /// è®¾å¤‡åç§°
        /// </summary>
        public readonly string _deviceName;
        private bool _heartStatr = true;
        private bool _isConnected = true;
        #endregion
        #region Public Member
        /// <summary>
        /// çƒ˜çƒ¤é€šè®¯å¯¹è±¡
        /// </summary>
        public BaseCommunicator Communicator => _communicator;
        /// <summary>
        /// çƒ˜çƒ¤åè®®ä¿¡æ¯
        /// </summary>
        public List<DeviceProDTO> DeviceProDTOs => _deviceProDTOs;
        /// <summary>
        /// çƒ˜çƒ¤åè®®æ˜Žç»†ä¿¡æ¯
        /// </summary>
        public List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs => _deviceProtocolDetailDTOs;
        /// <summary>
        /// è®¾å¤‡ç¼–号
        /// </summary>
        public string DeviceCode => _deviceCode;
        /// <summary>
        /// è®¾å¤‡åç§°
        /// </summary>
        public string DeviceName => _deviceName;
        /// <summary>
        /// é€šè®¯æ˜¯å¦å·²è¿žæŽ¥
        /// </summary>
        public bool IsConnected => Communicator.IsConnected && _isConnected;
        #endregion
        #region Constructor Function
        /// <summary>
        /// æž„造函数
        /// </summary>
        /// <param name="communicator">烘烤通讯对象</param>
        /// <param name="deviceProDTOs">烘烤协议信息</param>
        /// <param name="deviceProtocolDetailDTOs">烘烤协议明细信息</param>
        /// <param name="deviceCode">设备编号</param>
        /// <param name="deviceName">设备名称</param>
        public CommonRoastZ(BaseCommunicator communicator, List<DeviceProDTO> deviceProDTOs, List<DeviceProtocolDetailDTO> deviceProtocolDetailDTOs, string deviceCode, string deviceName)
        {
            _communicator = communicator;
            _deviceProDTOs = deviceProDTOs;
            _deviceProtocolDetailDTOs = deviceProtocolDetailDTOs;
            _deviceCode = deviceCode;
            _deviceName = deviceName;
            CheckConnect();
        }
        #endregion
        #region Private Method
        private void CheckConnect()
        {
            Task.Run(() =>
            {
                while (_heartStatr)
                {
                    try
                    {
                        DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault();
                        if (devicePro == null)
                            _isConnected = false;
                        else
                            Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType);
                        _isConnected = true;
                    }
                    catch (Exception ex)
                    {
                        _isConnected = false;
                    }
                    Thread.Sleep(500);
                }
            });
        }
        #endregion
        #region Public Method
        /// <summary>
        /// è¯»å–PLC协议地址的数据
        /// </summary>
        /// <typeparam name="TEnum">协议信息的枚举对象信息。</typeparam>
        /// <typeparam name="TResult">读取数据的类型对象信息。</typeparam>
        /// <param name="value">枚举值</param>
        /// <param name="deviceChildCode">设备子编号</param>
        /// <returns>读取到的数据</returns>
        public TResult GetValue<TEnum, TResult>(TEnum value, string deviceChildCode) where TEnum : Enum
        {
            if (!IsConnected) throw new Exception($"通讯连接错误,请检查网络");
            DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == value.ToString() && x.DeviceChildCode == deviceChildCode);
            return devicePro == null ? throw new Exception($"读取数据错误,未在协议信息里面找到参数{value.ToString()}") : (TResult)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType);
        }
        /// <summary>
        /// ä¸Žè®¾å¤‡çš„心跳
        /// </summary>
        public void Heartbeat()
        {
            throw new NotImplementedException();
        }
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="command"></param>
        /// <param name="deviceChildCode"></param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        public bool SendCommand<T>(T command, string deviceChildCode) where T : IDataTransfer, new()
        {
            if (Communicator is MelsecA1ENetCommunicator)
            {
                if (!IsConnected) throw new Exception($"通讯连接错误,请检查网络");
                DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == nameof(DeviceCommand) && x.DeviceChildCode == deviceChildCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
                if (devicePro == null)
                {
                    return false;
                }
                if (Communicator.WriteCustomer(devicePro.DeviceProAddress, command))
                {
                    return true;
                }
                return false;
            }
            else
            {
                throw new Exception("暂不支持除西门子之外的PLC");
            }
        }
        /// <summary>
        /// è¯»å–PLC数据,返回自定义对象
        /// </summary>
        /// <typeparam name="T">泛型</typeparam>
        /// <param name="deviceChildCode">子设备编号</param>
        /// <returns>返回自定义对象或抛出异常</returns>
        /// <exception cref="Exception"></exception>
        public T ReadCustomer<T>(string deviceChildCode) where T : IDataTransfer, new()
        {
            if (!IsConnected) throw new Exception($"通讯连接错误,请检查网络");
            DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == "ReadDeviceCommand" && x.DeviceChildCode == deviceChildCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
            if (devicePro == null)
            {
                throw new Exception("未找到协议信息");
            }
            else
            {
                return Communicator.ReadCustomer<T>(devicePro.DeviceProAddress);
            }
        }
        /// <summary>
        /// æ ¹æ®å‚数名称、设备子编号写入对应的数据。
        /// </summary>
        /// <typeparam name="TEnum">参数名称枚举类型。</typeparam>
        /// <typeparam name="TValue">要写入的数据类型。</typeparam>
        /// <param name="enum">参数名称。</param>
        /// <param name="value">要写入的数据。</param>
        /// <param name="deviceChildCode">设备子编号写</param>
        /// <returns>返回写入成功或失败</returns>
        public bool SetValue<TEnum, TValue>(TEnum @enum, TValue value, string deviceChildCode)
            where TEnum : Enum
            where TValue : notnull
        {
            if (!IsConnected) throw new Exception($"通讯连接错误,请检查网络");
            DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == @enum.ToString() && x.DeviceChildCode == deviceChildCode);
            return devicePro == null ? throw new Exception($"写入数据错误,未在协议信息里面找到参数{value.ToString()}") : Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, value);
        }
        /// <summary>
        /// æ˜¯å¦å ä½
        /// </summary>
        /// <param name="deviceChildCode">设备子编号</param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        public bool IsOccupied(string deviceChildCode)
        {
            if (Communicator.IsConnected)
            {
                List<DeviceProDTO> devicePros = _deviceProDTOs.Where(x => x.DeviceProParamType == ConveyorLineStatus.IsOccupied.ToString()).ToList();
                if (devicePros.Count == 0)
                {
                    //todo åè®®ä¿¡æ¯æœªèŽ·å–åˆ°æ—¶æŠ›å‡ºå¼‚å¸¸
                    throw new Exception();
                }
                for (int i = 0; i < devicePros.Count; i++)
                {
                    object readStatus = Communicator.ReadAsObj(devicePros[i].DeviceProAddress, devicePros[i].DeviceDataType);
                    //todo åè®®æ˜Žç»†ä¿¡æ¯æœªèŽ·å–åˆ°æ—¶æŠ›å‡ºå¼‚å¸¸
                    DeviceProtocolDetailDTO? deviceProtocolDetail = _deviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == devicePros[i].DeviceProParamName) ?? throw new Exception();
                    deviceProtocolDetail = _deviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == devicePros[i].DeviceProParamType && x.ProtocalDetailValue.Equals(readStatus.ToString()));
                    if (deviceProtocolDetail != null)
                    {
                        return true;
                    }
                    return false;
                }
            }
            //todo é€šè®¯æœªè¿žæŽ¥æ—¶æŠ›å‡ºå¼‚常
            return false;
        }
        /// <summary>
        /// é‡Šæ”¾å¯¹è±¡
        /// </summary>
        public void Dispose()
        {
            // è®¾ç½®å¿ƒè·³çŠ¶æ€ä¸ºfalse
            _heartStatr = false;
            // é‡Šæ”¾é€šä¿¡å™¨èµ„源
            _communicator.Dispose();
            // å‘Šè¯‰åžƒåœ¾å›žæ”¶å™¨ä¸å†è°ƒç”¨ç»ˆç»“器
            GC.SuppressFinalize(this);
        }
        #endregion
    }
}
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/RoastZ/IRoastZ.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,99 @@
#region << ç‰ˆ æœ¬ æ³¨ é‡Š >>
/*----------------------------------------------------------------
 * å‘½åç©ºé—´ï¼šWIDESEAWCS_QuartzJob
 * åˆ›å»ºè€…:胡童庆
 * åˆ›å»ºæ—¶é—´ï¼š2024/8/2 16:13:36
 * ç‰ˆæœ¬ï¼šV1.0.0
 * æè¿°ï¼šè¾“送线接口层
 *
 * ----------------------------------------------------------------
 * ä¿®æ”¹äººï¼š
 * ä¿®æ”¹æ—¶é—´ï¼š
 * ç‰ˆæœ¬ï¼šV1.0.1
 * ä¿®æ”¹è¯´æ˜Žï¼š
 *
 *----------------------------------------------------------------*/
#endregion << ç‰ˆ æœ¬ æ³¨ é‡Š >>
using HslCommunication;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Communicator;
using WIDESEAWCS_QuartzJob.DeviceBase;
using WIDESEAWCS_QuartzJob.DTO;
namespace WIDESEAWCS_QuartzJob
{
    /// <summary>
    /// AGV接口层
    /// </summary>
    public interface IRoastZ : IDevice
    {
        /// <summary>
        /// é€šè®¯å¯¹è±¡
        /// </summary>
        BaseCommunicator Communicator { get; }
        /// <summary>
        /// é€šè®¯åè®®ä¿¡æ¯
        /// </summary>
        List<DeviceProDTO> DeviceProDTOs { get; }
        /// <summary>
        /// é€šè®¯åè®®æ˜Žç»†ä¿¡æ¯
        /// </summary>
        List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs { get; }
        /// <summary>
        /// è®¾å¤‡æ˜¯å¦å·²è¿žæŽ¥
        /// </summary>
        bool IsConnected { get; }
        /// <summary>
        /// ä¸Žè®¾å¤‡çš„心跳
        /// </summary>
        void Heartbeat();
        /// <summary>
        /// è¯»å–PLC协议地址的数据
        /// </summary>
        /// <typeparam name="TEnum">协议信息的枚举对象信息。</typeparam>
        /// <typeparam name="TResult">读取数据的类型对象信息。</typeparam>
        /// <param name="value">枚举值</param>
        /// <param name="deviceChildCode">设备子编号</param>
        /// <returns>读取到的数据</returns>
        TResult GetValue<TEnum, TResult>(TEnum value, string deviceChildCode) where TEnum : Enum;
        /// <summary>
        /// æ ¹æ®å‚数名称、设备子编号写入对应的数据。
        /// </summary>
        /// <typeparam name="TEnum">参数名称枚举类型。</typeparam>
        /// <typeparam name="TValue">要写入的数据类型。</typeparam>
        /// <param name="enum">参数名称。</param>
        /// <param name="value">要写入的数据。</param>
        /// <param name="deviceChildCode">设备子编号写</param>
        /// <returns>返回写入成功或失败</returns>
        bool SetValue<TEnum, TValue>(TEnum @enum, TValue value, string deviceChildCode) where TEnum : Enum where TValue : notnull;
        /// <summary>
        /// è¯»å–站台是否被占用
        /// </summary>
        /// <param name="deviceChildCode">设备子编号</param>
        /// <returns></returns>
        bool IsOccupied(string deviceChildCode);
        /// <summary>
        /// å‘送任务命令
        /// </summary>
        /// <typeparam name="T">任务命令对象的类型泛型</typeparam>
        /// <param name="command">任务命令</param>
        /// <param name="deviceChildCode">设备子编号</param>
        /// <returns></returns>
        bool SendCommand<T>(T command, string deviceChildCode) where T : IDataTransfer, new();
    }
}
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/PDA/PDAController.cs
@@ -43,5 +43,11 @@
        {
            return _taskCZService.AddTaskCZAsync(czTaskDto);
        }
        [HttpPost, Route("EmptyTask"), AllowAnonymous]
        public Task<WebResponseContent> EmptyTask([FromBody] SaveModel saveModel)
        {
            return _taskCZService.EmptyTask(saveModel);
        }
    }
}
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskCZService.cs
@@ -17,6 +17,7 @@
#endregion << ç‰ˆ æœ¬ æ³¨ é‡Š >>
using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
@@ -29,8 +30,10 @@
{
    public class TaskCZService : ServiceBase<DtCZTask, ITaskCZRepository>, ITaskCZService
    {
        public TaskCZService(ITaskCZRepository BaseDal) : base(BaseDal)
        private readonly ITaskRepository _taskRepository;
        public TaskCZService(ITaskCZRepository BaseDal, ITaskRepository taskRepository) : base(BaseDal)
        {
            _taskRepository = taskRepository;
        }
        public Task<WebResponseContent> AddTaskCZAsync(CZTaskDto dto)
@@ -56,7 +59,7 @@
                    TaskNumber = dto.Number,
                    TaskExecutor = "CZ",
                    TaskOrderNo = dto.OrderNo,
                    TaskOwner = "KH",
                    TaskOwner = "KH",
                    TaskProductCode = dto.ProductCode,
                    Creater = "KH"
                };
@@ -122,5 +125,38 @@
            }
            return Task.FromResult(response);
        }
        /// <summary>
        /// è¾“送线回流
        /// </summary>
        /// <param name="saveModel"></param>
        /// <returns></returns>
        public Task<WebResponseContent> EmptyTask(SaveModel saveModel)
        {
            WebResponseContent webResponseContent = new WebResponseContent();
            try
            {
                string Saddress = saveModel.MainData["sourceAddress"].ToString();
                string Taddress = saveModel.MainData["targetAddress"].ToString();
                Dt_Task task = _taskRepository.QueryFirst(x => x.SourceAddress == Saddress && x.TaskState == (int)TaskInStatusEnum.InPending && x.TargetAddress == "WaitBind");
                if (task == null)
                {
                    webResponseContent.Error("任务不存在!");
                    return Task.FromResult(webResponseContent);
                }
                task.TargetAddress = Taddress;
                task.TaskState = (int)TaskInStatusEnum.InNew;
                var isTrue = _taskRepository.UpdateData(task);
                if (isTrue)
                {
                    webResponseContent.OK("任务下发成功!");
                }
            }
            catch (Exception ex)
            {
                webResponseContent.Error(ex.Message);
            }
            return Task.FromResult(webResponseContent);
        }
    }
}
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -148,7 +148,7 @@
                }
                string fromAdd = request.Value;
                string taskType = request.Value.Contains("ZJXL") ? "正极" : "负极";
                string taskType = "负极"; //request.Value.Contains("ZJXL") ? "正极" :
                // æ ¹æ®ä»»åŠ¡ç±»åž‹ç¡®å®šè¯·æ±‚åœ°å€
                (string upRequest, string gmRequest, string gmState) = GetRequestAddresses(taskType);
@@ -193,6 +193,11 @@
        // è¾…助方法:创建任务对象
        private Dt_Task CreateTask(string currentAddress, string targetAddress, string remark, string palletCode, string taskType)
        {
            Dt_Task dt_Task = _taskRepository.QueryFirst(x => x.SourceAddress == currentAddress);
            if (dt_Task != null)
            {
                return null;
            }
            return new Dt_Task
            {
                TaskNum = _taskService.GetTaskNum(),
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/ElevatorJob.cs
@@ -14,37 +14,46 @@
        public Task Execute(IJobExecutionContext context)
        {
            // ä»Žä¸Šä¸‹æ–‡ä¸­èŽ·å– JobParams å¹¶è½¬æ¢ä¸º Roast ç±»åž‹
            //CommonElevator elevator = (CommonElevator)context.JobDetail.JobDataMap.Get("JobParams");
            CommonRoast elevator = (CommonRoast)context.JobDetail.JobDataMap.Get("JobParams");
            // åˆå§‹åŒ– AGV å˜é‡
            AGV agv = null;
            if (elevator == null)
            try
            {
                throw new Exception("未找到提升机设备参数。");
                // ä»Žä¸Šä¸‹æ–‡ä¸­èŽ·å– JobParams å¹¶è½¬æ¢ä¸º Roast ç±»åž‹
                //CommonElevator elevator = (CommonElevator)context.JobDetail.JobDataMap.Get("JobParams");
                CommonRoast elevator = (CommonRoast)context.JobDetail.JobDataMap.Get("JobParams");
                // åˆå§‹åŒ– AGV å˜é‡
                AGV agv = null;
                if (elevator == null)
                {
                    throw new Exception("未找到提升机设备参数。");
                }
                // è¿žæŽ¥ AGV
                // æ ¹æ®è®¾å¤‡åç§°å†³å®šæ˜¯æ­£æžè¿˜æ˜¯è´Ÿæž AGV
                List<string> agvNames = new List<string>() { "正极AGV", "负极AGV" }; //"正极AGV",
                foreach (var agvName in agvNames)
                {
                    // ä»Žå­˜å‚¨ä¸­æŸ¥æ‰¾æŒ‡å®šåç§°çš„设备
                    IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceName == agvName);
                    if (device != null)
                    {
                        agv = (AGV)device;
                    }
                    else
                    {
                        ConsoleHelper.WriteErrorLine($"未找到{agvName}设备参数。");
                        continue;
                    }
                    var elevatorNamesValues = GetDBElevatorNamesValues(agvName);
                    var agvNamesValues = GetDBAGVNamesValues(agvName);
                    DeviceInteraction(elevator, agv, elevatorNamesValues, agvNamesValues);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            // è¿žæŽ¥ AGV
            // æ ¹æ®è®¾å¤‡åç§°å†³å®šæ˜¯æ­£æžè¿˜æ˜¯è´Ÿæž AGV
            List<string> agvNames = new List<string>() {  "负极AGV" }; //"正极AGV",
            foreach (var agvName in agvNames)
            {
                // ä»Žå­˜å‚¨ä¸­æŸ¥æ‰¾æŒ‡å®šåç§°çš„设备
                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceName == agvName);
                if (device != null)
                {
                    agv = (AGV)device;
                }
                else
                {
                    ConsoleHelper.WriteErrorLine($"未找到{agvName}设备参数。");
                    continue;
                }
                var elevatorNamesValues = GetDBElevatorNamesValues(agvName);
                var agvNamesValues = GetDBAGVNamesValues(agvName);
                DeviceInteraction(elevator, agv, elevatorNamesValues, agvNamesValues);
            }
            return Task.CompletedTask;
        }
@@ -68,7 +77,7 @@
            var agvSignal = agv.Communicator.Read(agvNames[1], 100);
            agv.Communicator.Write(agvNames[0], elevatorSignal);
            elevator.Communicator.Write(agvNames[1], agvSignal);
            elevator.Communicator.Write(elevatorNames[1], agvSignal);
            ConsoleHelper.WriteInfoLine($"正极AGV交互: å†™å…¥ç”µæ¢¯ä¿¡å·[{elevatorSignal}]到{agvNames[0]}," +
                                       $"写入AGV信号[{agvSignal}]到{agvNames[1]}");
@@ -261,10 +270,10 @@
                    "DB1002.18600",
                    "DB1002.18500",
                    "DB1002.18700",
                    "DB1002.18000",
                    "DB1002.18800",
                    "DB1002.19000",
                    "DB1002.18200",
                    "DB1002.18000",
                    "DB1002.18900",
                    "DB1002.19100"
                };
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RoastJob/CommonRoastJob.cs
@@ -15,116 +15,6 @@
            GC.SuppressFinalize(this);
        }
        public Task Execute1(IJobExecutionContext context)
        {
            CommonRoast roast = (CommonRoast)context.JobDetail.JobDataMap.Get("JobParams");
            AGV agv = null;
            if (roast.DeviceName.Contains("正极"))
            {
                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceName == "正极AGV");
                if (device != null)
                {
                    agv = (AGV)device;
                }
                else
                    throw new Exception("No such device found.");
                MatchCollection matches = Regex.Matches(roast.DeviceName, @"\d+");
                int number = int.Parse(matches[0].Value);
                // åˆ›å»ºä¸€ä¸ªåŒ…含所有 double å€¼çš„集合
                List<double> doubleValues = new List<double>();
                if (number < 3)
                {
                    doubleValues = new List<double>
                    {
                        8093.6, 8093.7, 3493.6, 3493.7, 8094.0, 8095.0, 8096.0, 8097.0, 8098.0,
                        8194.0, 8195.0, 8196.0, 8197.0, 3494.0, 3495.0, 3496.0, 3594.0, 3595.0,
                        3596.0, 3597.0, 3598.0, 3599.0, 8192.2, 3592.2
                    };
                }
                else
                {
                    doubleValues = new List<double>
                    {
                        1693.6, 1693.7, 293.6, 293.6, 1694.0, 1695.0, 1696.0, 1697.0, 1698.0,
                        1794.0, 1795.0, 1796.0, 1797.0, 294.0, 295.0, 296.0, 394.0, 395.0, 396.0,
                        397.0,398.0,399.0,1792.2,392.2
                    };
                }
                if (number < 3)
                {
                    // æ ¹æ® number çš„值调整集合中的每个元素
                    for (int i = 0; i < doubleValues.Count; i++)
                    {
                        doubleValues[i] += (number - 1) * 400;
                    }
                }
                else
                {// æ ¹æ® number çš„值调整集合中的每个元素
                    for (int i = 0; i < doubleValues.Count; i++)
                    {
                        doubleValues[i] += (number - 3) * 400;
                    }
                }
            }
            else if (roast.DeviceName.Contains("负极"))
            {
                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceName == "负极AGV");
                if (device != null)
                {
                    agv = (AGV)device;
                }
                else
                    throw new Exception("No such device found.");
                MatchCollection matches = Regex.Matches(roast.DeviceName, @"\d+");
                int number = int.Parse(matches[0].Value);
                List<double> doubleValues = new List<double>();
                if (number < 3)
                {
                    doubleValues = new List<double>
                    {
                        8893.6, 8893.7, 9093.6, 9093.7, 8894.0, 8895.0, 8896.0, 8897.0, 8898.0,
                        8994.0, 8995.0, 8996.0, 8997.0, 9094.0, 9095.0, 9096.0, 9194.0, 9195.0,
                        9196.0, 9197.0, 9198.0, 9199.0, 8992.2, 9192.2
                    };
                }
                else
                {
                    doubleValues = new List<double>
                    {
                        4893.6, 4893.7, 5093.6, 5093.6, 4894.0, 4895.0, 4896.0, 4897.0, 4898.0,
                        4994.0, 4995.0, 4996.0, 4997.0, 5094.0, 5095.0, 5096.0, 5194.0, 5195.0,
                        5196.0, 5197.0, 5198.0, 5199.0, 4992.2, 5192.2
                    };
                }
                if (number < 3)
                {
                    // æ ¹æ® number çš„值调整集合中的每个元素
                    for (int i = 0; i < doubleValues.Count; i++)
                    {
                        doubleValues[i] += (number - 1) * 400;
                    }
                }
                else
                {
                    // æ ¹æ® number çš„值调整集合中的每个元素
                    for (int i = 0; i < doubleValues.Count; i++)
                    {
                        doubleValues[i] += (number - 3) * 400;
                    }
                }
            }
            else
                throw new Exception("No such device found.");
            throw new NotImplementedException();
        }
        public Task Execute(IJobExecutionContext context)
        {
            try
@@ -140,7 +30,7 @@
                }
                // æ ¹æ®è®¾å¤‡åç§°å†³å®šæ˜¯æ­£æžè¿˜æ˜¯è´Ÿæž AGV
                string devicePrefix = roast.DeviceName.Contains("正极") ? "正极" : "负极";
                string devicePrefix = roast.DeviceCode.Contains("FJ") ? "负极" : "正极";
                string agvName = $"{devicePrefix}AGV";
                // ä»Žå­˜å‚¨ä¸­æŸ¥æ‰¾æŒ‡å®šåç§°çš„设备
@@ -280,22 +170,25 @@
            }
            // è¯»AGV入料
            byte[] RFAGVup = new byte[]
            {
                agv.Communicator.Read<byte>($"DB1002.{doubleValues[9]}"),
                agv.Communicator.Read<byte>($"DB1002.{doubleValues[10]}"),
                agv.Communicator.Read<byte>($"DB1002.{doubleValues[11]}"),
                agv.Communicator.Read<byte>($"DB1002.{doubleValues[12]}"),
                agv.Communicator.Read<byte>($"DB1002.{doubleValues[22]}")
            };
            short RFAGVa = agv.Communicator.Read<byte>($"DB1002.{doubleValues[9]}");
            short RFAGVb = agv.Communicator.Read<byte>($"DB1002.{doubleValues[10]}");
            short RFAGVc = agv.Communicator.Read<byte>($"DB1002.{doubleValues[11]}");
            short RFAGVd = agv.Communicator.Read<byte>($"DB1002.{doubleValues[12]}");
            bool RFAGVe = agv.Communicator.Read<bool>($"DB1002.{doubleValues[22]}");
            // å†™çƒ˜çƒ¤å…¥æ–™
            string[] writeAddressesUp = new string[] { "D1940", "D1941", "D1955", "D1956", "M691" };
            for (int i = 0; i < RFAGVup.Length; i++)
            {
                roast.Communicator.Write(writeAddressesUp[i], RFAGVup[i]);
            }
            //string[] writeAddressesUp = new string[] { "D1940", "D1941", "D1955", "D1956", "M691" };
            //for (int i = 0; i < RFAGVup.Length; i++)
            //{
            //    roast.Communicator.Write(writeAddressesUp[i], RFAGVup[i]);
            //}
            roast.Communicator.Write("D1940", RFAGVa);
            roast.Communicator.Write("D1941", RFAGVb);
            roast.Communicator.Write("D1955", RFAGVc);
            roast.Communicator.Write("D1956", RFAGVd);
            roast.Communicator.Write("M691", RFAGVe);
            // è¯»çƒ˜çƒ¤å‡ºæ–™
            short[] RFHKdown = new short[]
            {
@@ -311,24 +204,23 @@
            }
            // è¯»AGV出料
            byte[] RFAGVdown = new byte[]
            {
                agv.Communicator.Read<byte>($"DB1002.{doubleValues[16]}"),
                agv.Communicator.Read<byte>($"DB1002.{doubleValues[17]}"),
                agv.Communicator.Read<byte>($"DB1002.{doubleValues[18]}"),
                agv.Communicator.Read<byte>($"DB1002.{doubleValues[19]}"),
                agv.Communicator.Read<byte>($"DB1002.{doubleValues[20]}"),
                agv.Communicator.Read<byte>($"DB1002.{doubleValues[21]}")
            };
            short RFAGVdowna = agv.Communicator.Read<byte>($"DB1002.{doubleValues[16]}");
            short RFAGVdownb = agv.Communicator.Read<byte>($"DB1002.{doubleValues[17]}");
            short RFAGVdownc = agv.Communicator.Read<byte>($"DB1002.{doubleValues[18]}");
            short RFAGVdownd = agv.Communicator.Read<byte>($"DB1002.{doubleValues[19]}");
            short RFAGVdowne = agv.Communicator.Read<byte>($"DB1002.{doubleValues[20]}");
            short RFAGVdownf = agv.Communicator.Read<byte>($"DB1002.{doubleValues[21]}");
            bool RFAGVdowng = agv.Communicator.Read<bool>($"DB1002.{doubleValues[23]}");
            // å†™çƒ˜çƒ¤å‡ºæ–™
            string[] writeAddressesDown = new string[] { "D1940", "D1941", "D1957", "D1952", "D1953", "D1958", "M692" };
            for (int i = 0; i < RFAGVdown.Length; i++)
            {
                roast.Communicator.Write(writeAddressesDown[i], RFAGVdown[i]);
            }
            roast.Communicator.Write(writeAddressesDown[6], RFAGVdowng);
            //string[] writeAddressesDown = new string[] { "D1940", "D1941", "D1957", "D1952", "D1953", "D1958", "M692" };
            roast.Communicator.Write("D1940", RFAGVdowna);
            roast.Communicator.Write("D1941", RFAGVdownb);
            roast.Communicator.Write("D1957", RFAGVdownc);
            roast.Communicator.Write("D1952", RFAGVdownd);
            roast.Communicator.Write("D1953", RFAGVdowne);
            roast.Communicator.Write("D1958", RFAGVdownf);
            roast.Communicator.Write("M692", RFAGVdowng);
        }
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RoastZJob/CommonRoastZJob.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,251 @@
using Quartz;
using System.Text.RegularExpressions;
using WIDESEAWCS_QuartzJob;
namespace WIDESEAWCS_Tasks
{
    internal class CommonRoastZJob : JobBase, IJob, IDisposable
    {
        public CommonRoastZJob()
        {
        }
        public void Dispose()
        {
            GC.SuppressFinalize(this);
        }
        public Task Execute(IJobExecutionContext context)
        {
            try
            {
                // ä»Žä¸Šä¸‹æ–‡ä¸­èŽ·å– JobParams å¹¶è½¬æ¢ä¸º Roast ç±»åž‹
                CommonRoastZ roast = (CommonRoastZ)context.JobDetail.JobDataMap.Get("JobParams");
                // åˆå§‹åŒ– AGV å˜é‡
                AGV agv = null;
                if (roast == null)
                {
                    throw new Exception("未找到烘烤设备参数。");
                }
                // æ ¹æ®è®¾å¤‡åç§°å†³å®šæ˜¯æ­£æžè¿˜æ˜¯è´Ÿæž AGV
                string devicePrefix = roast.DeviceCode.Contains("FJ") ? "负极" : "正极";
                string agvName = $"{devicePrefix}AGV";
                // ä»Žå­˜å‚¨ä¸­æŸ¥æ‰¾æŒ‡å®šåç§°çš„设备
                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceName == agvName);
                if (device != null)
                {
                    agv = (AGV)device;
                }
                else
                {
                    throw new Exception("未找到AGV设备参数。");
                }
                // ä½¿ç”¨æ­£åˆ™è¡¨è¾¾å¼ä»Žè®¾å¤‡åç§°ä¸­æå–æ•°å­—
                MatchCollection matches = Regex.Matches(roast.DeviceName, @"\d+");
                if (matches.Count == 0)
                {
                    throw new Exception("No number found in device name.");
                }
                int number = int.Parse(matches[0].Value);
                // æ ¹æ®number的值选择相应的double集合并调整值
                List<double> doubleValues = GetDoubleValues(roast.DeviceName.Contains("正极"), number);
                DeviceInteraction(roast, agv, doubleValues);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            return Task.CompletedTask;
        }
        public static void DeviceInteraction(CommonRoastZ roast, AGV agv, List<double> doubleValues)
        {
            #region
            ////读烘烤滚筒是否转动
            //bool RHKupFGTZ1 = roast.Communicator.Read<bool>("YC");
            //bool RHKupFGTZ2 = roast.Communicator.Read<bool>("YD");
            //bool RHKupFGTZ3 = roast.Communicator.Read<bool>("YE");
            //bool RHKupFGTZ4 = roast.Communicator.Read<bool>("YF");
            ////写AGV滚筒转动
            //agv.Communicator.Write("DB1002." + doubleValues[0], RHKupFGTZ1);
            //agv.Communicator.Write("DB1002." + doubleValues[1], RHKupFGTZ2);
            //agv.Communicator.Write("DB1002." + doubleValues[2], RHKupFGTZ3);
            //agv.Communicator.Write("DB1002." + doubleValues[3], RHKupFGTZ4);
            ////读烘烤入料
            //var RFHKupa = roast.Communicator.Read<short>("D1960");
            //var RFHKupb = roast.Communicator.Read<short>("D15");
            //var RFHKupc = roast.Communicator.Read<short>("D1961");
            //var RFHKupd = roast.Communicator.Read<short>("D1950");
            //var RFHKupe = roast.Communicator.Read<short>("D1951");
            ////写AGV入料
            //agv.Communicator.Write("DB1002." + doubleValues[4], byte.Parse(RFHKupa.ToString()));
            //agv.Communicator.Write("DB1002." + doubleValues[5], byte.Parse(RFHKupb.ToString()));
            //agv.Communicator.Write("DB1002." + doubleValues[6], byte.Parse(RFHKupc.ToString()));
            //agv.Communicator.Write("DB1002." + doubleValues[7], byte.Parse(RFHKupd.ToString()));
            //agv.Communicator.Write("DB1002." + doubleValues[8], byte.Parse(RFHKupe.ToString()));
            ////读AGV入料
            //var RFAGVa = agv.Communicator.Read<byte>("DB1002." + doubleValues[9]);
            //var RFAGVb = agv.Communicator.Read<byte>("DB1002." + doubleValues[10]);
            //var RFAGVc = agv.Communicator.Read<byte>("DB1002." + doubleValues[11]);
            //var RFAGVd = agv.Communicator.Read<byte>("DB1002." + doubleValues[12]);
            //var RFAGVe = agv.Communicator.Read<byte>("DB1002." + doubleValues[22]);
            ////写烘烤入料
            //roast.Communicator.Write("D1940", RFAGVa);
            //roast.Communicator.Write("D1941", RFAGVb);
            //roast.Communicator.Write("D1955", RFAGVc);
            //roast.Communicator.Write("D1956", RFAGVd);
            //roast.Communicator.Write("M691", RFAGVe);
            ////读烘烤出料
            //var RFHKdowna = roast.Communicator.Read<short>("D1960");
            //var RFHKdownb = roast.Communicator.Read<short>("D35");
            //var RFHKdownc = roast.Communicator.Read<short>("D1962");
            ////写AGV出料
            //agv.Communicator.Write("DB1002." + doubleValues[13], byte.Parse(RFHKdowna.ToString()));
            //agv.Communicator.Write("DB1002." + doubleValues[14], byte.Parse(RFHKdownb.ToString()));
            //agv.Communicator.Write("DB1002." + doubleValues[15], byte.Parse(RFHKdownc.ToString()));
            ////读AGV出料
            //var RFAGVdowna = agv.Communicator.Read<byte>("DB1002." + doubleValues[16]);
            //var RFAGVdownb = agv.Communicator.Read<byte>("DB1002." + doubleValues[17]);
            //var RFAGVdownc = agv.Communicator.Read<byte>("DB1002." + doubleValues[18]);
            //var RFAGVdownd = agv.Communicator.Read<byte>("DB1002." + doubleValues[19]);
            //var RFAGVdowne = agv.Communicator.Read<byte>("DB1002." + doubleValues[20]);
            //var RFAGVdownf = agv.Communicator.Read<byte>("DB1002." + doubleValues[21]);
            //var RFAGVdowng = agv.Communicator.Read<bool>("DB1002." + doubleValues[23]);
            ////写烘烤出料
            //roast.Communicator.Write("D1940", RFAGVdowna);
            //roast.Communicator.Write("D1941", RFAGVdownb);
            //roast.Communicator.Write("D1957", RFAGVdownc);
            //roast.Communicator.Write("D1952", RFAGVdownd);
            //roast.Communicator.Write("D1953", RFAGVdowne);
            //roast.Communicator.Write("D1958", RFAGVdownf);
            //roast.Communicator.Write("M692", RFAGVdowng);
            #endregion
            // è¯»çƒ˜çƒ¤æ»šç­’是否转动
            bool[] RHKupFGTZ = new bool[]
            {
                roast.Communicator.Read<bool>("YC"),
                roast.Communicator.Read<bool>("YD"),
                roast.Communicator.Read<bool>("YE"),
                roast.Communicator.Read<bool>("YF")
            };
            // å†™AGV滚筒转动
            for (int i = 0; i < RHKupFGTZ.Length; i++)
            {
                agv.Communicator.Write($"DB1002.{doubleValues[i]}", RHKupFGTZ[i]);
            }
            // è¯»çƒ˜çƒ¤å…¥æ–™
            short[] RFHKup = new short[]
            {
                roast.Communicator.Read<short>("D1960"),
                roast.Communicator.Read<short>("D15"),
                roast.Communicator.Read<short>("D1961"),
                roast.Communicator.Read<short>("D1950"),
                roast.Communicator.Read<short>("D1951")
            };
            // å†™AGV入料
            for (int i = 0; i < RFHKup.Length; i++)
            {
                agv.Communicator.Write($"DB1002.{doubleValues[i + 4]}", (byte)RFHKup[i]);
            }
            // è¯»AGV入料
            short RFAGVa = agv.Communicator.Read<byte>($"DB1002.{doubleValues[9]}");
            short RFAGVb = agv.Communicator.Read<byte>($"DB1002.{doubleValues[10]}");
            short RFAGVc = agv.Communicator.Read<byte>($"DB1002.{doubleValues[11]}");
            short RFAGVd = agv.Communicator.Read<byte>($"DB1002.{doubleValues[12]}");
            bool RFAGVe = agv.Communicator.Read<bool>($"DB1002.{doubleValues[22]}");
            // å†™çƒ˜çƒ¤å…¥æ–™
            //string[] writeAddressesUp = new string[] { "D1940", "D1941", "D1955", "D1956", "M691" };
            //for (int i = 0; i < RFAGVup.Length; i++)
            //{
            //    roast.Communicator.Write(writeAddressesUp[i], RFAGVup[i]);
            //}
            roast.Communicator.Write("D1940", RFAGVa);
            roast.Communicator.Write("D1941", RFAGVb);
            roast.Communicator.Write("D1955", RFAGVc);
            roast.Communicator.Write("D1956", RFAGVd);
            roast.Communicator.Write("M691", RFAGVe);
            // è¯»çƒ˜çƒ¤å‡ºæ–™
            short[] RFHKdown = new short[]
            {
                roast.Communicator.Read<short>("D1960"),
                roast.Communicator.Read<short>("D35"),
                roast.Communicator.Read<short>("D1962")
            };
            // å†™AGV出料
            for (int i = 0; i < RFHKdown.Length; i++)
            {
                agv.Communicator.Write($"DB1002.{doubleValues[i + 13]}", (byte)RFHKdown[i]);
            }
            // è¯»AGV出料
            short RFAGVdowna = agv.Communicator.Read<byte>($"DB1002.{doubleValues[16]}");
            short RFAGVdownb = agv.Communicator.Read<byte>($"DB1002.{doubleValues[17]}");
            short RFAGVdownc = agv.Communicator.Read<byte>($"DB1002.{doubleValues[18]}");
            short RFAGVdownd = agv.Communicator.Read<byte>($"DB1002.{doubleValues[19]}");
            short RFAGVdowne = agv.Communicator.Read<byte>($"DB1002.{doubleValues[20]}");
            short RFAGVdownf = agv.Communicator.Read<byte>($"DB1002.{doubleValues[21]}");
            bool RFAGVdowng = agv.Communicator.Read<bool>($"DB1002.{doubleValues[23]}");
            // å†™çƒ˜çƒ¤å‡ºæ–™
            //string[] writeAddressesDown = new string[] { "D1940", "D1941", "D1957", "D1952", "D1953", "D1958", "M692" };
            roast.Communicator.Write("D1940", RFAGVdowna);
            roast.Communicator.Write("D1941", RFAGVdownb);
            roast.Communicator.Write("D1957", RFAGVdownc);
            roast.Communicator.Write("D1952", RFAGVdownd);
            roast.Communicator.Write("D1953", RFAGVdowne);
            roast.Communicator.Write("D1958", RFAGVdownf);
            roast.Communicator.Write("M692", RFAGVdowng);
        }
        // æ ¹æ®è®¾å¤‡ç±»åž‹å’Œnumber的值获取并调整double值集合
        private List<double> GetDoubleValues(bool isPositivePole, int number)
        {
            List<double> doubleValues;
            if (isPositivePole)
            {
                doubleValues = number < 3
                    ? new List<double> { 8093.6, 8093.7, 3493.6, 3493.7, 8094.0, 8095.0, 8096.0, 8097.0, 8098.0, 8194.0, 8195.0, 8196.0, 8197.0, 3494.0, 3495.0, 3496.0, 3594.0, 3595.0, 3596.0, 3597.0, 3598.0, 3599.0, 8192.2, 3592.2 }
                    : new List<double> { 1693.6, 1693.7, 293.6, 293.6, 1694.0, 1695.0, 1696.0, 1697.0, 1698.0, 1794.0, 1795.0, 1796.0, 1797.0, 294.0, 295.0, 296.0, 394.0, 395.0, 396.0, 397.0, 398.0, 399.0, 1792.2, 392.2 };
            }
            else // è´Ÿæž
            {
                doubleValues = number < 3
                    ? new List<double> { 8893.6, 8893.7, 9093.6, 9093.7, 8894.0, 8895.0, 8896.0, 8897.0, 8898.0, 8994.0, 8995.0, 8996.0, 8997.0, 9094.0, 9095.0, 9096.0, 9194.0, 9195.0, 9196.0, 9197.0, 9198.0, 9199.0, 8992.2, 9192.2 }
                    : new List<double> { 4893.6, 4893.7, 5093.6, 5093.6, 4894.0, 4895.0, 4896.0, 4897.0, 4898.0, 4994.0, 4995.0, 4996.0, 4997.0, 5094.0, 5095.0, 5096.0, 5194.0, 5195.0, 5196.0, 5197.0, 5198.0, 5199.0, 4992.2, 5192.2 };
            }
            // è°ƒæ•´double集合中的每个元素
            int adjustmentFactor = (number < 3 ? (number - 1) : (number - 3)) * 400;
            return doubleValues.Select(val => val + adjustmentFactor).ToList();
        }
    }
}
´úÂë¹ÜÀí/WIDESEA_WCSServer/WIDESEA_WCS/SchedulerExecute/AGV/AgvAndEquiWorkF.cs
@@ -104,7 +104,7 @@
                    aa = tsjplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.11400", agvkpbdownmes.Content.ToArray());
                    //读agv
                    OperateResult<byte[]> agvkcpupmes = fagvthreeplc.SiemensPLCClient.SiemensS7NetClient.Read("DB1002.17900", 100);
                    OperateResult<byte[]> agvkcpupmes = fagvthreeplc.SiemensPLCClient.SiemensS7NetClient.Read("DB1002.17900", 100);   //负极线体
                    OperateResult<byte[]> agvkcpdownmes = fagvthreeplc.SiemensPLCClient.SiemensS7NetClient.Read("DB1002.18100", 100);
                    //写提升机
                    aa = tsjplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1002.1900", agvkcpupmes.Content.ToArray());
´úÂë¹ÜÀí/WIDESEA_WCSServer/WIDESEA_WCS/SchedulerExecute/AGV/AgvAndEquiWorkThree.cs
@@ -121,35 +121,35 @@
                OperateResult<byte> RAGVd = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbi + fornum));
                OperateResult<bool> RAGVe = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002." + (agvdby + fornum));
                //入料口写烘箱
                OperateResult Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1940", RAGVa.Content);
                Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1941", RAGVb.Content);
                Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1955", RAGVc.Content);
                Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1956", RAGVd.Content);
                Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("M691", RAGVe.Content);
                //下料口读烘箱
                OperateResult<short> RHKdowna = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1960");
                OperateResult<short> RHKdownb = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D35");
                OperateResult<short> RHKdownc = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1962");
                //下料口写AGV
                OperateResult Wdownresult = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvdbj + fornum), byte.Parse(RHKdowna.Content.ToString()));
                Wdownresult = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvdbk + fornum), byte.Parse(RHKdownb.Content.ToString()));
                Wdownresult = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvdbl + fornum), byte.Parse(RHKdownc.Content.ToString()));
                //OperateResult Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1940", RAGVa.Content);
                //Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1941", RAGVb.Content);
                //Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1955", RAGVc.Content);
                //Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1956", RAGVd.Content);
                //Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("M691", RAGVe.Content);
                ////下料口读烘箱
                //OperateResult<short> RHKdowna = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1960");
                //OperateResult<short> RHKdownb = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D35");
                //OperateResult<short> RHKdownc = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1962");
                ////下料口写AGV
                //OperateResult Wdownresult = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvdbj + fornum), byte.Parse(RHKdowna.Content.ToString()));
                //Wdownresult = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvdbk + fornum), byte.Parse(RHKdownb.Content.ToString()));
                //Wdownresult = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvdbl + fornum), byte.Parse(RHKdownc.Content.ToString()));
                //下料口读AGV
                OperateResult<byte> RAGVdowna = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbm + fornum));
                OperateResult<byte> RAGVdownb = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbq + fornum));
                OperateResult<byte> RAGVdownc = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbr + fornum));
                OperateResult<byte> RAGVdownd = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbs + fornum));
                OperateResult<byte> RAGVdowne = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbt + fornum));
                OperateResult<byte> RAGVdownf = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbx + fornum));
                OperateResult<bool> RAGVdowng = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002." + (agvdbz + fornum));
                //下料口写烘箱
                OperateResult Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1940", RAGVdowna.Content);
                Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1941", RAGVdownb.Content);
                Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1957", RAGVdownc.Content);
                Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1952", RAGVdownd.Content);
                Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1953", RAGVdowne.Content);
                Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1958", RAGVdownf.Content);
                Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("M692", RAGVdowng.Content);
                //OperateResult<byte> RAGVdowna = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbm + fornum));
                //OperateResult<byte> RAGVdownb = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbq + fornum));
                //OperateResult<byte> RAGVdownc = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbr + fornum));
                //OperateResult<byte> RAGVdownd = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbs + fornum));
                //OperateResult<byte> RAGVdowne = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbt + fornum));
                //OperateResult<byte> RAGVdownf = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvdbx + fornum));
                //OperateResult<bool> RAGVdowng = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002." + (agvdbz + fornum));
                ////下料口写烘箱
                //OperateResult Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1940", RAGVdowna.Content);
                //Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1941", RAGVdownb.Content);
                //Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1957", RAGVdownc.Content);
                //Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1952", RAGVdownd.Content);
                //Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1953", RAGVdowne.Content);
                //Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1958", RAGVdownf.Content);
                //Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("M692", RAGVdowng.Content);
                fornum += 400;
            }
@@ -199,9 +199,9 @@
                //写AGV滚筒转动
                OperateResult WupresultGTZ1 = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZGT1 + fornumthree), RHKupGTZ1.Content);
                WupresultGTZ1 = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZGT2 + fornumthree), RHKupGTZ2.Content);
                WupresultGTZ1 = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZGT3 + fornumthree), RHKupGTZ3.Content);
                WupresultGTZ1 = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZGT4 + fornumthree), RHKupGTZ4.Content);
                //WupresultGTZ1 = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZGT2 + fornumthree), RHKupGTZ2.Content);
                //WupresultGTZ1 = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZGT3 + fornumthree), RHKupGTZ3.Content);
                //WupresultGTZ1 = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZGT4 + fornumthree), RHKupGTZ4.Content);
                //入料口读烘箱
                OperateResult<short> RHKupa = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1960");
@@ -211,10 +211,10 @@
                OperateResult<short> RHKupe = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1951");
                //入料口写AGV
                OperateResult Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedba + fornumthree), byte.Parse(RHKupa.Content.ToString()));
                Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbb + fornumthree), byte.Parse(RHKupb.Content.ToString()));
                Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbc + fornumthree), byte.Parse(RHKupc.Content.ToString()));
                Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbd + fornumthree), byte.Parse(RHKupd.Content.ToString()));
                Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbe + fornumthree), byte.Parse(RHKupe.Content.ToString()));
                //Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbb + fornumthree), byte.Parse(RHKupb.Content.ToString()));
                //Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbc + fornumthree), byte.Parse(RHKupc.Content.ToString()));
                //Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbd + fornumthree), byte.Parse(RHKupd.Content.ToString()));
                //Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbe + fornumthree), byte.Parse(RHKupe.Content.ToString()));
                //入料口读agv
                OperateResult<byte> RAGVa = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbf + fornumthree));
                OperateResult<byte> RAGVb = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbg + fornumthree));
@@ -222,36 +222,36 @@
                OperateResult<byte> RAGVd = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbi + fornumthree));
                OperateResult<bool> RAGVe = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002." + (agvthreedby + fornumthree));
                //入料口写烘箱
                OperateResult Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1940", RAGVa.Content);
                Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1941", RAGVb.Content);
                Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1955", RAGVc.Content);
                Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1956", RAGVd.Content);
                Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("M691", RAGVe.Content);
                //下料口读烘箱
                OperateResult<short> RHKdowna = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1960");
                OperateResult<short> RHKdownb = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D35");
                OperateResult<short> RHKdownc = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1962");
                //下料口写AGV
                OperateResult Wdownresult = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbj + fornumthree), byte.Parse(RHKdowna.Content.ToString()));
                //OperateResult Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1940", RAGVa.Content);
                //Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1941", RAGVb.Content);
                //Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1955", RAGVc.Content);
                //Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1956", RAGVd.Content);
                //Whkresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("M691", RAGVe.Content);
                ////下料口读烘箱
                //OperateResult<short> RHKdowna = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1960");
                //OperateResult<short> RHKdownb = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D35");
                //OperateResult<short> RHKdownc = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1962");
                ////下料口写AGV
                //OperateResult Wdownresult = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbj + fornumthree), byte.Parse(RHKdowna.Content.ToString()));
                
                Wdownresult = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbk + fornumthree), byte.Parse(RHKdownb.Content.ToString()));
                Wdownresult = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbl + fornumthree), byte.Parse(RHKdownc.Content.ToString()));
                //下料口读AGV
                OperateResult<byte> RAGVdowna = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbm + fornumthree));
                OperateResult<byte> RAGVdownb = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbq + fornumthree));
                OperateResult<byte> RAGVdownc = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbr + fornumthree));
                OperateResult<byte> RAGVdownd = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbs + fornumthree));
                OperateResult<byte> RAGVdowne = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbt + fornumthree));
                OperateResult<byte> RAGVdownf = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbx + fornumthree));
                OperateResult<bool> RAGVdowng = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002." + (agvthreedbz + fornumthree));
                //下料口写烘箱
                OperateResult Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1940", RAGVdowna.Content);
                Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1941", RAGVdownb.Content);
                Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1957", RAGVdownc.Content);
                Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1952", RAGVdownd.Content);
                Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1953", RAGVdowne.Content);
                Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1958", RAGVdownf.Content);
                Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("M692", RAGVdowng.Content);
                //Wdownresult = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbk + fornumthree), byte.Parse(RHKdownb.Content.ToString()));
                //Wdownresult = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbl + fornumthree), byte.Parse(RHKdownc.Content.ToString()));
                ////下料口读AGV
                //OperateResult<byte> RAGVdowna = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbm + fornumthree));
                //OperateResult<byte> RAGVdownb = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbq + fornumthree));
                //OperateResult<byte> RAGVdownc = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbr + fornumthree));
                //OperateResult<byte> RAGVdownd = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbs + fornumthree));
                //OperateResult<byte> RAGVdowne = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbt + fornumthree));
                //OperateResult<byte> RAGVdownf = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbx + fornumthree));
                //OperateResult<bool> RAGVdowng = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002." + (agvthreedbz + fornumthree));
                ////下料口写烘箱
                //OperateResult Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1940", RAGVdowna.Content);
                //Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1941", RAGVdownb.Content);
                //Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1957", RAGVdownc.Content);
                //Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1952", RAGVdownd.Content);
                //Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1953", RAGVdowne.Content);
                //Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("D1958", RAGVdownf.Content);
                //Whkdownresult = ZHSSBone.MelsecPLCClient.readWriteNet.Write("M692", RAGVdowng.Content);
                fornumthree += 400;
            }
´úÂë¹ÜÀí/WIDESEA_WCSServer/WIDESEA_WCS/SchedulerExecute/AGV/AgvAndEquiWorkThreeHKFJ.cs
@@ -44,7 +44,7 @@
            double agvthreedbFx = 5199.0;
            double agvthreedbFy = 4992.2;
            double agvthreedbFz = 5192.2;
            List<string> FHKFQSBMegthree = new List<string> {  "负极6号烘烤机","负极7号烘烤机", "负极8号烘烤机", "负极9号烘烤机", "负极10号烘烤机" };
            List<string> FHKFQSBMegthree = new List<string> {  "负极7号烘烤机"};
            foreach (var FHKSBthree in FHKFQSBMegthree)
            {
                if (fagvthreeplchk == null)
´úÂë¹ÜÀí/WIDESEA_WCSServer/WIDESEA_WCS/SchedulerExecute/AGV/ToMesggeThreeHKZJ.cs
@@ -30,8 +30,8 @@
            double agvthreedbc = 1696.0;
            double agvthreedbd = 1697.0;
            double agvthreedbe = 1698.0;
            double agvthreedbf = 1794.0;
            double agvthreedbg = 1795.0;
            double agvthreedbf = 1794.0;
            double agvthreedbg = 1795.0;
            double agvthreedbh = 1796.0;
            double agvthreedbi = 1797.0;
            double agvthreedbj = 294.0;
@@ -64,9 +64,9 @@
                //写AGV滚筒转动
                OperateResult WupresultGTZ1 = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZGT1 + fornumthree), RHKupGTZ1.Content);
                WupresultGTZ1 = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZGT2 + fornumthree), RHKupGTZ2.Content);
                WupresultGTZ1 = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZGT3 + fornumthree), RHKupGTZ3.Content);
                WupresultGTZ1 = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZGT4 + fornumthree), RHKupGTZ4.Content);
                //WupresultGTZ1 = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZGT2 + fornumthree), RHKupGTZ2.Content);
                //WupresultGTZ1 = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZGT3 + fornumthree), RHKupGTZ3.Content);
                //WupresultGTZ1 = agvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbaZGT4 + fornumthree), RHKupGTZ4.Content);
                //入料口读烘箱
                OperateResult<short> RHKupa = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1960");
@@ -76,14 +76,14 @@
                OperateResult<short> RHKupe = ZHSSBone.MelsecPLCClient.readWriteNet.ReadInt16("D1951");
                //入料口写AGV
                OperateResult Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedba + fornumthree), byte.Parse(RHKupa.Content.ToString()));
                Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbb + fornumthree), byte.Parse(RHKupb.Content.ToString()));
                Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbc + fornumthree), byte.Parse(RHKupc.Content.ToString()));
                Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbd + fornumthree), byte.Parse(RHKupd.Content.ToString()));
                Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbe + fornumthree), byte.Parse(RHKupe.Content.ToString()));
                //Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbb + fornumthree), byte.Parse(RHKupb.Content.ToString()));
                //Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbc + fornumthree), byte.Parse(RHKupc.Content.ToString()));
                //Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbd + fornumthree), byte.Parse(RHKupd.Content.ToString()));
                //Wupresult = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.Write("DB1002." + (agvthreedbe + fornumthree), byte.Parse(RHKupe.Content.ToString()));
                //入料口读agv
                OperateResult<byte> RAGVa = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbf + fornumthree));
                OperateResult<byte> RAGVb = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbg + fornumthree));
                OperateResult<byte> RAGVc = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbh + fornumthree));
                OperateResult<byte> RAGVa = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbf + fornumthree));//3394
                OperateResult<byte> RAGVb = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbg + fornumthree));//3395
                OperateResult<byte> RAGVc = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbh + fornumthree));//3396 1792.2+1600
                OperateResult<byte> RAGVd = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadByte("DB1002." + (agvthreedbi + fornumthree));
                OperateResult<bool> RAGVe = fagvthreeplcthree.SiemensPLCClient.SiemensS7NetClient.ReadBool("DB1002." + (agvthreedby + fornumthree));
                //入料口写烘箱
´úÂë¹ÜÀí/WIDESEA_WCSServer/WIDESEA_WCSServer/Download/Logger/Queue/WriteError/20250411.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Cannot access destination table 'Sys_Log'.   at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalRestAsync(CancellationToken cts, TaskCompletionSource`1 source)
   at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalAsync(CancellationToken ctoken)
   at System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServerAsync(Int32 columnCount, CancellationToken ctoken)
   at System.Data.SqlClient.SqlBulkCopy.WriteToServer(DataTable table, DataRowState rowState)
   at System.Data.SqlClient.SqlBulkCopy.WriteToServer(DataTable table)
   at WIDESEA_Core.Dapper.SqlDapper.MSSqlBulkInsert(DataTable table, String tableName, SqlBulkCopyOptions sqlBulkCopyOptions, String dbKeyName) in E:\KHGITHUB\GanFengLiYeNew\代码管理\WIDESEA_WCSServer\WIDESEA_Core\Dapper\SqlDapper.cs:line 391
   at WIDESEA_Core.Dapper.SqlDapper.BulkInsert(DataTable table, String tableName, Nullable`1 sqlBulkCopyOptions, String fileName, String tmpPath) in E:\KHGITHUB\GanFengLiYeNew\代码管理\WIDESEA_WCSServer\WIDESEA_Core\Dapper\SqlDapper.cs:line 416
   at WIDESEA_Core.Services.Logger.Start() in E:\KHGITHUB\GanFengLiYeNew\代码管理\WIDESEA_WCSServer\WIDESEA_Core\Services\Logger.cs:line 143System.Data.SqlClient
´úÂë¹ÜÀí/WIDESEA_WCSServer/WIDESEA_WCSServer/Download/Logger/Queue/WriteError/20250412.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Cannot access destination table 'Sys_Log'.   at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalRestAsync(CancellationToken cts, TaskCompletionSource`1 source)
   at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalAsync(CancellationToken ctoken)
   at System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServerAsync(Int32 columnCount, CancellationToken ctoken)
   at System.Data.SqlClient.SqlBulkCopy.WriteToServer(DataTable table, DataRowState rowState)
   at System.Data.SqlClient.SqlBulkCopy.WriteToServer(DataTable table)
   at WIDESEA_Core.Dapper.SqlDapper.MSSqlBulkInsert(DataTable table, String tableName, SqlBulkCopyOptions sqlBulkCopyOptions, String dbKeyName) in E:\KHGITHUB\GanFengLiYeNew\代码管理\WIDESEA_WCSServer\WIDESEA_Core\Dapper\SqlDapper.cs:line 391
   at WIDESEA_Core.Dapper.SqlDapper.BulkInsert(DataTable table, String tableName, Nullable`1 sqlBulkCopyOptions, String fileName, String tmpPath) in E:\KHGITHUB\GanFengLiYeNew\代码管理\WIDESEA_WCSServer\WIDESEA_Core\Dapper\SqlDapper.cs:line 416
   at WIDESEA_Core.Services.Logger.Start() in E:\KHGITHUB\GanFengLiYeNew\代码管理\WIDESEA_WCSServer\WIDESEA_Core\Services\Logger.cs:line 143System.Data.SqlClient
´úÂë¹ÜÀí/WIDESEA_WCSServer/WIDESEA_WCSServer/Download/Logger/Queue/WriteError/20250413.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Cannot access destination table 'Sys_Log'.   at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalRestAsync(CancellationToken cts, TaskCompletionSource`1 source)
   at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalAsync(CancellationToken ctoken)
   at System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServerAsync(Int32 columnCount, CancellationToken ctoken)
   at System.Data.SqlClient.SqlBulkCopy.WriteToServer(DataTable table, DataRowState rowState)
   at System.Data.SqlClient.SqlBulkCopy.WriteToServer(DataTable table)
   at WIDESEA_Core.Dapper.SqlDapper.MSSqlBulkInsert(DataTable table, String tableName, SqlBulkCopyOptions sqlBulkCopyOptions, String dbKeyName) in E:\KHGITHUB\GanFengLiYeNew\代码管理\WIDESEA_WCSServer\WIDESEA_Core\Dapper\SqlDapper.cs:line 391
   at WIDESEA_Core.Dapper.SqlDapper.BulkInsert(DataTable table, String tableName, Nullable`1 sqlBulkCopyOptions, String fileName, String tmpPath) in E:\KHGITHUB\GanFengLiYeNew\代码管理\WIDESEA_WCSServer\WIDESEA_Core\Dapper\SqlDapper.cs:line 416
   at WIDESEA_Core.Services.Logger.Start() in E:\KHGITHUB\GanFengLiYeNew\代码管理\WIDESEA_WCSServer\WIDESEA_Core\Services\Logger.cs:line 143System.Data.SqlClient