- 博客(76)
- 资源 (1)
- 收藏
- 关注
原创 Java【20】HashMap和File与IO
/- public boolean createNewFile()` :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。//- `public boolean mkdirs()` :创建由此File表示的目录,包括任何必需但不存在的父目录。//- `public boolean delete()` :删除由此File表示的文件或目录。// System.out.println("文件构造路径:"+file.getPath());
2025-06-19 11:09:57
882
原创 Java【19】集合(Collection和Map)
当使用foreach或Iterator迭代器遍历集合时,同时调用迭代器自身以外的方法修改了集合的结构,例如调用集合的add和remove方法时,就会报ConcurrentModificationException。System.out.println("coll集合元素的个数:" + coll.size());System.out.println("coll集合元素的个数:" + coll.size());System.out.println("集合中内容为:"+collection);
2025-06-17 18:43:05
691
原创 Java【18】多线程(等待唤醒 wait、notify) 和泛型
线程的生命周期有五种状态:新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)、死亡(Dead)。Student<String> student1 = new Student<String>("张无忌","优秀");* 当前线程在同步代码块、同步方法中执行了锁对象的wait()方法,当前线程被挂起,并释放锁。(3)所有数据存储在这个连续的空间中,数组中的每一个元素都是一个具体的数据(或对象 地址),
2025-06-17 18:39:09
452
原创 PLC入门【8】实战(筛选不同大小的部件)
如果我们正确装的话,如果我们在智能中装一条直线上是不怎么可取的,我们要把下, X2 装过来一点,中装这边来,上装这边,我们成一条斜线。这样写的话,很有可能是出错,感应的时候两个同时动了,它又感应到大的,又感应到小的。我们在编程前,要做好那种 I / O 点分析,比如说哪 X 点是什么东西,Y 点是什么东西,我们都要是搞清楚,用笔记把它记下来。看什么动作原理,比如说我这个动了之后,像这样,这里给我们提示啊,它哪里开始动,动了之后哪个在动,那是怎样动的话,这些我们都要记清楚。【上面那个感应到,我置位它。
2025-06-11 10:57:33
279
原创 PLC入门【7】基本指令的总结(MC、MCR)
串块就是这一块和一块之间,它扫描的时候是把它归为一块的,它也归为一块的,它一块和一块之间串起来,就相当于它把这个 X1、Y0 归为一块,就相当于,它是认为这样子的。同样这个点的话,它取栈,这就是出栈指令,就把它取出来,完全取出来了。因为我们下面下面没用到它,我们如果在这里再用的话,它这里就变成读栈了,这最后一个的话,它才是出栈。我看这个,X1,我进来了,在这个点我储存一下,我储存到那个 PLC,记住我这个点,这个点的话前面所有的东西我进栈,进进到这个框框里面来,这框框里面就是一个一个栈了。
2025-06-10 20:05:24
739
原创 PLC入门【6】计时器、计数器、存储器
好,我们记到一半的时候,我这个断电了,断电之后它会保存,下次再接通的时候它再继续记,就这个功能。同样,它这个(K30)在这个(T0)上面的话,它是跟 OUT 一样的双线圈, OUT 输出, OUT 这时间间隙的话就是 T 多少,这只是时间间隙的号码。现在我们是用这个 T0, T0 是普通的计时器,3秒,这就等于 K30,因为我们这个时间间隙, T0 是 100 毫秒的,100 毫秒,那么 1000 毫秒的话,就是 1 秒钟嘛,是吧。它一得电之后自锁,自锁之后它也开始变,它开始变,就是五秒之后我们就断开它。
2025-06-10 15:34:17
1040
原创 PLC入门【5】基本指令3(PLS PLF ZRST)
因为它实际上也是亮了,只是亮了一下而已,它这里导通了一下,当我们扭到这边的时候,那一瞬间,那个扫描机器它会得一次电,非常快。你看我们这里,这个按了这么长,按了这么久,我这闭合很久,他只是 M0, M0 是中间继电器,他只是导通,导通一瞬间,导通一下。当我们按下这 X20 的时候,这是 0,这是 1,你是没按下的时候,当你按下 X20 的时候是 1,你按下的时候,它的 M0 还是不得电,当它松开的时候,它就得电了,你看到没,它就这 1 是吧,它就马上得一次电。当按钮导通一次,它导通,按钮一直按着是吧?
2025-06-09 20:23:20
914
原创 PLC入门【4】基本指令2(SET RST)
04 基本指令2PLC编程第四课基本指令(2)1、运用上接课所学的基本指令完成个简单的实例编程。2、学习SET--置位指令3、RST--复位指令打开软件(FX-TRN-BEG-C),从 文件 - 主画面,“B: 让我们学习基本的”- “B-3.控制优先程序”。点击“梯形图编辑”,输入:ld x24输入:out y0输入:ld x25输入:out y1点击:转换,再点击“PLC写入”【注】按下 [F4] 按钮。如果程序的背景色会灰色转变到白色,表示此程序已经被转换了。如果输入的程序不正确,
2025-06-09 20:13:44
518
原创 PLC入门【3】基本指令1(LD LDI OUT 等)
它这样分的话,是为了它那个电脑运算,还有用指令编程,如果你用指令编程的话,你就不能这样写,你这里不能写 LD 了,你 LD 的话就很麻烦了,是吧?它与它就是它和它,它加它的意思,比如说这是我们输,输反的,是吧?好,我们试试效果,我们回车。我们照样可以在这中间输入,我在这里 LD 或 X1,它照样可以输入,它就是当然你在这输入的话,转换之后转换成那种别的形式的话,那就不同了。是 X1 加上前面的,前面也不不只是这个东西,假如我很多很多的话,它是它加上前面的所有加起来,结果,结果这里输出,好吧?
2025-06-09 20:08:49
643
原创 PLC入门【2】PLC的接线
02 PLC的接线PLC 的品牌介绍,PLC的接线1、PLC 大体分为欧式和日式2、只要学会三菱的,整个日式的也差不多会了。3、PLC 分为晶体管输出和继电器输出。4、PLC 接线都差不多的我们主要是讲这个三菱的 PLC, 三菱和台达的 PLC,也就是日式。这 PLC 分为这个欧式和日式,欧式的话就是德国的西门子那方面的啊,日式的话就是以三菱为主的这个仿日本的话。这 PLC 的话,不管什么 PLC,它分为那个。它输出分为继电器输出和晶体管输出。继电器输出有什么不同?晶体管输出有什么不同?以后我们给
2025-06-08 22:21:32
1016
原创 PLC入门【1】PLC的简单介绍(教学软件:FX-TRN-BEG-C)
你看这里,开关和按钮,控制面板这些东西,这也算,这些算是输入,你看这传感器这些东西,它经过输入点,输入点之后,我们在这个 PLC 里面写的程序。我们写好程序之后,这地方可以写程序的,写好之后,它这有按钮,有开关这些模拟的,模拟输入点,输入点我们就是这面板是吧?面板模拟这输入点,我们用这输入点控制这输出,这模拟动画怎么动,我们用这个软件写程序,想让它怎么动就怎么动。我们外部线它已经接好了,现在我们不改变外部线的情况下,怎么实现它控制,同样是这个按钮,我不让它亮(Y0),我要它亮(Y1),是吧?
2025-06-08 22:15:29
743
原创 电工基础【9】万用表使用、维修查找思路
啊,我们可以放在那个地上面,潮湿一点的地方也可以,也可以放在铁上面,铁上面的话,接地效果有点接地那种,放在机械上面的,机器上面的找个螺丝也可以啊,放那个螺丝上面也可以。利用了这现象,有些时候的话,你测零线的时候,它也有几伏的电,那是感应电啊,或者是别的。还有你先上电之后,你检查什么东西的话,最好是先检查急停,拍下急停之后的话,看其他动作有没有动作,因为急停很重要,如果我们出什么故障的时候啊,我们必须要按急停,你要确保你的急停是管用的,如果不管用的话那就很麻烦了啊,很容易出现安全事故,对不对?
2025-06-08 15:00:22
798
原创 电工基础【8】常用的电气元件符号
11 常用的电气元件详细介绍电气元件选型主要根据:工作的电压,电流,工作环境,工作要求等来选择一、断路器类 QS 1.空气开关 2.漏电保护开关二、变压类 1.变压器 T 2.开关电源盒 VC 三、按钮、开关类 1、普通按钮 SB2、急停按钮 SB 3、旋钮开关 SA 4、限位开关 SQ (行程开关) 5、接近开关 SQP四、继电器类 1、接触器 KM 主触
2025-06-06 18:47:02
995
原创 电工基础【7】往返运动控制、星三角形降压启动
如果我们有这个线序保护,热继电器的话,你太过热的话,过电流了,它这个热继电器就会跳闸。只能这样子,我们把它反过来吧,它不行了。,碰到这个行程开关(SQ1),它又正转,碰到这个行程开关,它又反转,跑来跑去。你调下面的话也是可以,但是麻烦,因为调下面的话,你要是经验不足的话,你只调到这里的话,或者只调到这一边的话,它会出现过载的情况,烧电机是不是?好,现在我们这里不行,不行的话我们把它删除,删除一下,我们重新接一下,把主电路重新接一下线。接完了我们调试一下,调试一下,打开,把电上上,按下启动,看看是不是新型。
2025-06-05 18:22:41
834
原创 电工基础【6】顺序、时间控制
嗯,还有 SB2 是一个启动按钮,当它SB2 一得电的话,我们看看啊,电从这边过来(SB1->SB2),是不是这个 KM1 就得电了?好自锁之后的话,我这(SB3)就可以按了,这 SB3 就可以闭合了,闭合之后这个 KM2 就得电, KM2 就自锁了,是不是?好,它跑了之后,再看看这个主电路,主电路你看这 2 号线,我们接线的时候要看下线号,我们这里标了线号的,要看线号啊。2 号线从这个 QF 出来之后,跑到停止开关来,你看,停止开关是常闭的一端,我们用小点的线,0.75 就可以了。就跑到这边来,是不是?
2025-06-04 17:10:50
946
原创 电工基础【5】简单的电路设计接线实操
闭合我们这个 SB3(常开) 呢, SB3(常开) 当我们按下去的时候,就点动了,我按下去的时候它(SB3)常闭,它本来是常闭嘛,常闭它要断开了?现在有三个可以停的了,一个是这边这个停止按钮,还有一个是那边那个停止按钮,还有就是行程开关停它,对不对。我们同样是把这个线,然后刚才是从这个大家看到没,从直接从这个开关出来,出来之后跑到这来,我们把这个线删掉(红线)?这个点断(SB3)我肯定要加的,在这个地方,这 KM1 的上面,我们加入 SB3 常闭,右边加入 SB3 常开,加常闭有什么作用呢。
2025-06-03 22:54:31
747
原创 电工基础【4】点动接线实操
这样子啊,我们连接线,这个从 L2 过来, L2 过来一条线。QS 就是这个电源开关,FU 是保险丝啊,当然我们这里没有体现保险丝啊,但是这里又用这个空气开关代替了这保险丝啊,它也有保险丝的作用,这东西,你短路了它也会跳闸。跑过保险丝,再跑过这个(KM),KM 这是接触器,好,跑接触器的主触头,再跑这个三相电机来,好,跑三相电机来,好,说明的话,主电路是这样接的。把这个 U ,也就刚才 L1 ,接到这个右边来,这个 L1 过来经过这个空气开关,再经过 SB 一个按钮,按钮是常开,大家看住啊,常开。
2025-06-03 18:25:43
954
原创 电工基础【3】星形(Y) 和 三角形(△) 电路切换
同理,让它这里闭合(SB2->KM1),KM1(触头) 得电,电往这边过来(KM1->KM2触头),是不是 KM2 是常闭的,这个是 KT 得电(最底下的时间继电器),KT 得电的话这 KM3 也得电,SB2 一按的话,它是这样子闭合的(KT->KM3),同样时间到了之后,它这断开(KT最右的),它这里闭合(KT同一水平),这 KT 这里闭合,闭合这 KM2(线圈) 得电,是不是?大家首先看电路图的话,先看它怎么得电,这一 KM1(线圈) 得电,找到它主触头和辅助触头啊,一得电,得电之后呢?
2025-06-01 10:48:12
1403
原创 电工基础【2】自锁、互锁、正反转电路
它没电了之后的话,主触头就会复原(左侧的KM1),也就是断开了,这个电就过不来了。当我们再次松开 SB1 的时候,虽然你这电又从那经过这里了,也是经过这里,但是你这边有座桥了(辅助触头KM1),也是过不来了,这边有座桥(SB2)也是过不来了,所以它就停止了(右侧的KM1线圈)。OK,这样的话就是正反转电路,我们按下 SB2,它 KM1(线圈) 得电,辅助触头 KM1 自锁,主触头 KM1 就闭合,闭合电机正转,正转的话它(SB3->KM1 辅助触头) 这里是断开的,你按下 SB3 也没用了。
2025-05-30 16:20:52
2049
原创 电工基础【1】直流电、交流电、变压器,看懂基本电路
常闭的话,只要我们这个一过载的话,它就常闭就变成常开,常开就变成常闭,就这种意思,它起个保护作用,在我们电机有问题的时候,它就会动作,一动作的话,你开就变成闭,闭就变成开。经过这个 3P 开关之后,再经过保险丝之后,你看,那下来这 KM 是接触器,这是主线圈(画了这个东西,再画一撇),KM 的主触头,经过主触头之后,然后再经过这个热继电器 FR,经过热继电器,电就可以过来了。因为这功率因数的话,它在正常情况下,是等于 0.98,它和 1 差不多了啊,所以我们就没讲它,正常算的话是等于 P = UI 是吧?
2025-05-30 15:32:44
869
原创 WPF【11_11】WPF实战-重构与美化(配置Material UI框架)-示例
Title="CMS客户管理系统" Height="600" Width="900" Background="Transparent" AllowsTransparency="True" WindowStyle="None" WindowStartupLocation="CenterScreen" FontFamily="Cambria"><Button Content="添加客户" Click="ClearSelectedCustomer_Click" Width="192" Margin="10"/>
2025-05-30 13:34:54
1013
原创 WPF【11_10】WPF实战-重构与美化(配置Material UI框架)
接下来删掉 DatePicker ,也删掉添加新预约的 Textbox ,最后进入这个 AddAppointment_Click ,首先咱们删掉 DateTime 的参数,因为这个参数将会来自视图模型,然后进入 AddAppointment 方法,同样因为 SelectedDate 来自 ViewModel ,所以我们把参数删掉而在创建新预约的过程中我们需要把视图模型的 ViewModel 传进来。因为我们已经使用了这样一个日历组件了,所以接下来我们就不再需要 DatePicker 了。
2025-05-29 21:42:57
1278
原创 WPF【11_9】WPF实战-重构与美化(UI 与视图模型的联动,实现INotifyPropertyChanged)-示例
Button Content="保存" Margin="10 10 10 30" VerticalAlignment="Bottom" HorizontalAlignment="Left" Click="SaveCustomer_Click" /><TextBlock Text="身份证" Margin="10 10 10 0"/><TextBlock Text="姓名" Margin="10 10 10 0"/><TextBlock Text="地址" Margin="10 10 10 0"/>
2025-05-27 17:41:53
930
原创 WPF【11_8】WPF实战-重构与美化(UI 与视图模型的联动,实现INotifyPropertyChanged)
可以的,不过这个 INotifyPropertyChanged 只能处理“非列表型的数据”,对于列表 WPF 有另一种处理方式,这种处理方式就是 Observable 观察者模式,虽然观察者模式听起来好像很高大上,不过 WPF 已经帮我们做了最顶层的封装了,我们直接使用就可以了,甚至感觉不到观察者模式的存在。否则我们就添加一个新的客户!运行一下代码试试看,程序跑起来选择一个客户,点击“添加客户”翻车了,即使我们在代码中把视图模型中的 _selectedCustomer 清空了,但是 UI 并没有发生改变。
2025-05-27 17:30:35
1240
原创 WPF【11_7】WPF实战-重构与美化(ViewModel的嵌套与分解、海量数据不要Join)
11-12 【重构】ViewModel的嵌套与分解目前我们的代码中有一个不易发现的致命问题,如果工作中这样写代码大概率会被打回去重做。那么这个问题是什么呢?--\ViewModels\MainViewModel.cs 视图模型中的 LoadCustomers() 方法,考虑一下在这里我们访问数据库的时候使用了 Include 语句,在访问数据库的时候会同时访问数据库的预约表和客户表,并且根据外键关系对这两张表做连表查询如果。Customers = db.Customers.Include(c => c.
2025-05-27 17:19:38
621
原创 WPF【11_6】WPF实战-重构与美化(MVVM 实战)-示例
Button Content="保存" Margin="10 10 10 30" VerticalAlignment="Bottom" HorizontalAlignment="Left" /><TextBlock Text="身份证" Margin="10 10 10 0"/><TextBlock Text="姓名" Margin="10 10 10 0"/><TextBlock Text="地址" Margin="10 10 10 0"/><TextBlock Text="添加新预约" />
2025-05-27 17:11:59
606
原创 WPF【11_5】WPF实战-重构与美化(MVVM 实战)
接下来,我们还需要选择客户,并且在客户的详情页面中显示,甚至更改当前的客户信息。对于选择客户的过程我们同样可以通过视图模型来完成,但这次我们不但需要显示当前的客户选择,还需要通过 UI 的变化来操纵选择数据。接下来我们需要从数据库中获得数据,创建方法, LoadCustomers,为了获取到更多的数据,我们可以使用一个 Include 语句,把预约列表也一起装进来。最后一步也是最重要的,我们需要把视图模型绑定在页面的数据上下文中,使用 DataContext, 让它等于 _viewModel。
2025-05-27 16:48:14
930
原创 WPF【11_4】WPF实战-重构与美化(MVVM 架构)
点击刷新, UI 则会通过发送事件的方式通知视图模型,而视图模型在收到刷新请求以后,就会去数据库提取数据,然后重新把数据提供给视图。最后,视图与模型之间由于加入了视图模型,所以产生了系统的分层,而数据也得到了有效的隔离,它们之间则是一个间接引用的关系。虽然对于一个 WPF 项目来说,仅仅使用 Model 和 View, 甚至只使用 View 也能完成各种各样复杂的功能,比如说上一章我们的实战项目只有 View, 同样也可以完成客户预约系统的开发。而视图模型作为业务逻辑的载体,也会承担与数数据库的沟通工作。
2025-05-27 16:27:35
1002
原创 WPF【11_3】WPF实战-重构与美化(可复用的UI组件)
TextBlock Text="WPF客户管理系统" FontSize="40" VerticalAlignment="Center" Foreground="#ffffff"/><TextBlock Text="WPF客户管理系统" FontSize="40" VerticalAlignment="Center" Foreground="#ffffff"/>--header--> 提取出来,通过 UserControl 封装为可复用的UI组件。<TextBlock Text="添加新预约" />
2025-05-27 16:23:37
732
原创 WPF【11_2】WPF实战-重构与美化(Entity Framework)-示例
示例:Entity Framework Core应用修改第10章(客户预约表例子)
2025-05-27 16:00:19
1081
原创 WPF【11_1】WPF实战-重构与美化(Entity Framework)
因为在开发使用 Entity Framework 的时候,我们大多数情况都要使用 Linq 进行查询或者操作,而 Entity Framework 底层实现使用的是 ADO.NET, 所以这两部分在 Entity Framework 中是尤为重要的。不管是增删改查还是数据库的迁移,不管是数据库的连接开启还是关闭,所有的数据库的相关操作已经被这个 DbContext 封装好了。我们可以更专心的关注于业务的实现,而把所有的底层数据库的操作全部托付出来,让 DbContext 接管所有的数据库相关的生命周期。
2025-05-27 15:56:13
859
原创 WPF【10_2】数据库与WPF实战-示例
Button Content="删除客户" HorizontalAlignment="Left" Margin="32,306,0,0" VerticalAlignment="Top" Width="249" Click="DeleteCustomer_Click"/><Label Content="客户列表" HorizontalAlignment="Left" Margin="32,22,0,0" VerticalAlignment="Top"/>MainWindow.xaml.cs 代码。
2025-05-27 15:37:08
720
原创 WPF【10_1】数据库与WPF实战
SQL Server安装成功后,打开 VS软件,左侧 Server Explorer中选中“Data Connection”右击 - Add Connection...,弹出界面中选择“Microsoft SQL Server”,点击“Continue”,弹出安装缺失组件,确定,安装一下。数据库的操作实际上是一个 IO读写操作,读写操作涉及到外部环境和外部系统的访问,对于访问外部资源的操作,最好使用 try ... catch ,这样就算数据库出问题了,也不会造成系统级别的崩溃。
2025-05-27 15:34:41
841
原创 WPF【09】WPF基础入门 (三层架构与MVC架构)
让我们更深入一点,进入ContentControl,再进入 Control,同样可以看到类似的属性依赖,可以看到刚刚使用过的 FontSizeProperty 字体大小、ForegroundProperty 前景,等各种各样其他的属性,对于WPF的UI控件来说,属性依赖是最基础的数据和最基础的事件传递机制。比如用户可以通过 Web应用,也可以通过手机App来订购某样产品,虽然订购的方式不一样,但处理订购产品的业务是一样的,由于模型访问数据并没有发生改变,所以同样的功能可以被不同的界面使用。
2025-05-27 14:49:40
1319
原创 Git切换历史版本及Gitee云绑定
东方不败”直接在云端上修改好代码(也可以clone到本地,改完push到云端),然后在“代码”标签页中点击“+” - 下拉中点击“新建 Pull Request”,备注一下,并写清你的思路,最后点击“创建 Pull Request”按钮。SVN是集中式版本控制系统(CVS,SVN,VSS),版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。所以,他写好代码以后,他发过来,你来审核。
2025-05-26 11:43:09
895
原创 GitHub创建代码仓库、分支、pull和push
我自己对这个副本进行修改,当修改完成之后,我想把我这个修改提交给项目的作者的时候,这时候,我就需要在这两个代码仓库之间,使用“Pull requests”,原作者看到“Pull requests”觉得改得还挺好,就可以把“Pull requests”合并。因为我们想要为开源项目做贡献,所以我们是贡献者,但是我们没有项目的push权限,我们想要进行更改,这时候可以创建一个“Fork”,可以获取代码仓库当前状态的一个副本,将项目移动到自己的代码仓库(我们所在的组织中),那么这个副本的应用权就是我自己了。
2025-05-21 21:08:43
889
原创 Java【15_2】枚举、注解、包装类-示例
System.out.println(person.getName()+"的性别是:"+person.getGender().getValue());//返回当前对象的位置(角标)public static final Season SPRING=new Season("春意盎然");
2025-05-18 12:07:25
791
原创 Java【15_1】枚举、注解、包装类
抑制警告(idea中还好) 警告黄线(无所谓),错误是红线(不允许出现)如果有基本数据类型参与对比,包装类类型就会自动拆箱,就变为了基本数据类型的对比。1. 定义季节的枚举类,然后并设置属性value(对季节的描述)!3. 手动输入一个星期的名称(常量名),返回星期的常量对象!② 直接写对象名即可(对象与对象之间采用逗号隔开,最后使用分号结束)!2. 定义星期的枚举类,然后并设置属性value(要做的事情)!main方法也是可以测试的,但是有一个弊端就是一个类允许存在一个main方法。
2025-05-18 09:31:02
684
Bluesoleil3.2破解版
2015-08-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人