c#调度采集逻辑1

一、调度过程

startFanuc1Task--->executeCollectFanucTaskWithLock--->executeCollectFanucTask,executeCollectFanucTask为执行业务的线程

二、机床采集

            if (no == 1)
            {
                string fanucServer = string.IsNullOrWhiteSpace(ConfigurationManager.AppSettings["fanucServer"]) ? "127.0.0.1" : ConfigurationManager.AppSettings["fanucServer"];
                string fanucPort = string.IsNullOrWhiteSpace(ConfigurationManager.AppSettings["fanucPort"]) ? "80" : ConfigurationManager.AppSettings["fanucPort"];
                DateTime? dateTime = await executeCollectFanucTask(fanucServer, fanucPort, "M0101", no, lastLife0, isFirstCollect, "isFirstCollect1", log1,lastTime1);
                lastTime1 = dateTime;
            }

private DateTime? lastTime1;

1、DeviceConfig 配置表

DeviceConfig config = db.Queryable<DeviceConfig>().Where("CONFIG_KEY = @key", new { @key = "schedulingCode" }).First();

 

SELECT * FROM `dev_config` where CONFIG_KEY ='schedulingCode'

 1900821599838212098

 

 

2、ProScheduling 工单排程表

                ProScheduling scheduling;
                if (config != null)
                {
                    scheduid = Convert.ToInt64(config.CONFIG_VALUE);
                    if (scheduid != 0)
                    {
                        scheduling = db.Queryable<ProScheduling>().Where(u => u.scheduling_id == scheduid).First();
                    }
                    else
                    {
                        scheduling = db.Queryable<ProScheduling>().Where(u => u.scheduling_execute != null).OrderByDescending(u => u.scheduling_id).First();
                    }
                }
                else
                {
                    scheduling = db.Queryable<ProScheduling>().Where(u => u.scheduling_execute != null).OrderByDescending(u => u.scheduling_id).First();
                }

 选中一条记录,点击右下角这个按钮

,可以切换显示格式,如下

long productId = scheduling.item_id;//获取产品id

1804379028940836865

 

3、ProRouteProduct 产品制程表

long productId = scheduling.item_id;//获取产品id

ProRouteProduct proRouteProducts = db.Queryable<ProRouteProduct>().Where(u => u.item_id == productId).First();

1804379028940836865

 取得route_id

1888769067312881665

 

4、ProRouteProcess   工艺组成表

ProRouteProcess proProcess = db.Queryable<ProRouteProcess>().Where(u => u.route_id == proRouteProducts.route_id && u.mark_process == 10).First();//取op10环节

 SELECT * FROM `pro_route_process` where mark_process =10 And route_id =1888769067312881665

 

 取得:

process_id

1888769938876669954

 

5、MdWorkstation 工作站表

 

                MdWorkstation workStation = db.Ado.SqlQuery<MdWorkstation>(@"select * from md_workstation where process_id= @process_id", new
                {
                    @process_id = proProcess.process_id
                }).FirstOrDefault();//获取工作站

 

6、DvMachinery 设备表

 

 

7、DvMachineryLog 设备状态记录表

 

8、机床链接

fanucServer :192.168.10.134

fanucPort :8193

timeout :10

short ret = Focas1.cnc_allclibhndl3(fanucServer, Convert.ToUInt16(fanucPort), Convert.ToInt32(timeout), out h);

 

标题中的“fanuc focas机床采集资料和demo”指的是Fanuc公司提供的Focas(Factory Automation Open Connectivity and Services)框架,这是一个用于数控机床(CNC)数据采集和监控的软件接口。Fanuc是全球知名的数控系统制造商,Focas允许开发者通过编程方式获取机床的状态、性能数据以及进行远程控制。

 ip和端口报错

 

posted on 2025-04-22 08:53  张彦山  阅读(23)  评论(0)    收藏  举报