自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 DataGridView取消默认选中行

DataGridView在添加数据后会默认选中第 一个单元格或者第一行,我就想取消它的默认选中行。在DataGridView绑定数据之后加上了ClearSelection()。这样一来,不论是启动窗体之后还是重新更新数据,都不会有默认选中行了。//加载表格生成后,放在最后面。代码就是这几个,只要放对地方,其中任意一个都能实现取消选中的效果。

2023-02-11 13:30:25 2478

原创 winform程序窗体设计器隐藏问题

在删除项目工程无用的nuget组件时,系统提示丢失掉了某程序集的引用,删除时没有在意,一般删库的过程中,系统会自动编译把问题消除掉,但是发现窗体设计器没有了,C#窗体只显示类的标记。

2023-01-13 17:18:40 410

原创 西门子分布式IO的通道映射是怎么建立的

PLC变量是如何与地址映射起来的?我们在地址总览中可以看到系统默认分配的地址现在我们需要查看其中某一个分布IO模块的地址选择GoTo跳转到模块的组态画面图示可以看到输入输出地址,在这里可以自由编辑地址,输入输出不必相同,同时如果出现地址冲突的问题,系统会自动提示。模块的地址更改的时候,这里会产生一个问题,那就是已经和模块建立映射关系的变量是不是需要进行重新绑定呢?难道需要一个个绑定映射么?实际上,当进行更改的时候,系统会自动弹出提示! 选项1 如..

2022-05-25 15:19:53 4431

原创 Modbus字节序说明

最近做ModBus TCP方面的测试有点多,尽管对于ModBus协议算是比较了解了,也经常知道字节传输序列的不同对工程师带来了很多不必要的麻烦,这不是一个技术难题,仅仅只是过去各家各户开发遗留下来的标准统一问题,所以这里写下这篇文章作为备忘。在Modbus通信中,目前我们主要有16bit(AB)、32bit(AB CD)和最新的64bit(AB CD EF GH)三种数据长度。每个字母代表一个字节。针对16bit传输,只存在正序(AB)或反序(BA)两种方式,也就所谓的正序先传高位,以及反序先传低位,为

2021-09-16 22:04:42 7013

原创 Python: 如何判断Excel文件是否被人打开

Python: 如何判断远程服务器上Excel文件是否被人打开.这篇博文,提供了一个非常好的思路来判定一个Excel文件是否被打开,判断是否有“~$”开头的同名文件在同级目录下存在:比如test.xlsx被打开后会存在~$test.xlsx文件,如果没被打开则没有该文件。接下里我们只需要使用os.path.exists('xxx.xls‘)方法来判定其返回值即可。以下是代码实现:#判定文件是否打开 def fileIsOpen(self,filename): filepath

2021-09-16 10:32:30 1967 1

原创 解读PropertyHelper

解读PropertyHelper文章目录前文正文PropertyHelper代码作用详细解读后文前文最近感兴趣的一个项目中,需要通过C#来实现一个上位机,网上的参考资料中,有关于仓库温控系统这样的实例可以参考借鉴。虽然该实例教程号称从0开始,但实际来看,在前期交代项目中使用的公共类库上,对这些类库的解释与说明基本上回避了诸如反射,特性等C#中比较难理解,也是中高阶的语法。作为一个小白,我看到这觉得非常难受,因为不喜欢这种看不懂的感觉,而且后续的代码只要依赖了这些公共类库代码的部分都有可能看不懂,这实在

2021-08-15 19:20:16 512 1

转载 AttributeUsage特性和特性标识符

AttributeUsage特性除了可以定制自己的特性来注释常用的C#类型外,您可以用AttributeUsage特性来定义您想怎样使用这些特性。AttributeUsage特性采用如下的调用惯例:1 [AttributeUsage(2 3 Validon,4 5 AllowMultiple=allowmultiple,6 7 Inherited=inherited8 9 )] 您可以非常容易地区别出哪些是定位参数,哪些是命名参数。强烈建议您在记录您的特性时采用这种格式,以便不必通

2021-07-25 11:50:42 347

原创 社区版Pycharm如何使用Flask

社区版Pycharm如何使用Flask众所周知,社区版Pycharm不自带Flask项目,以下介绍如何建立一个Flask框架DemoPycharm版本如图操作1. 安装Flask解释器2. 新建默认文件夹新建一个pure python project,并添加两个默认文件夹PS:名字一定不要打错,我之前因为templates少写了一个后缀s,抛了异常其中Static是存储你的静态内容,templates是保存一些网页模板使用的3. 创建测试程序新建一个py,写入以下程序```p

2021-07-04 11:07:44 8999 1

原创 2021-06-20

Python中最常见括号()、[]、{}的区别https://www.cnblogs.com/wushujun/p/11328455.html

2021-06-20 11:14:38 83

原创 2021-06-20

pycharm怎么改快捷键1.在pycharm中选择File–>Settings。2.在弹出的对话框左侧选择keymap,选择后在右侧就可以设置对应类型的快捷键。3.点开右侧中的一个选项,可以看到原有的快捷键。4.如果想添加快捷键,则在相应的选择项右键,选择Add Keyboard Shortcut。5.然后在弹出的对话框输入你想设置的快捷键。由于一般是英文的,要快速检索的话,尝试用英文检索,这样效率高一点,比如我习惯使用F5进行运行测试。直接输入Run进行检索就好了。...

2021-06-20 11:01:27 88

原创 S7-PLCSIM Advanced V3.0下载仿真失败

解决了S7-PLCSIM Advanced V3.0无法启动虚拟网口的问题后,新建一个虚拟PLC实例,实例状态为黄色打开博图,新建项目进行下载,发现报错在网上查阅相关问题后,有人勾选以下图中两项来解决不能仿真的问题。按照上图所示,尝试后还是无法下载成功,并且下载失败后,虚拟的PLC直接断开了无法搜索到...

2021-03-30 10:56:12 8356 5

原创 S7-PLCSIM Advanced V3.0无法启动虚拟网口的问题

点击切换虚拟网口,PC会跳出网卡无法驱动的提示,提示采用cmd指令“net start npf”来启动网口。显示该项服务无效,尝试启用帮助,仍然显示服务名无效。于是乎,在网上搜索相关的问题,在基于PLCSIM-Advanced搭建ModbusTCP通信仿真环境一文中提到了安装需要先安装WinPcap。想到自己自己对于安装WinPcap没有印象,于是猜测很有可能没有安装该项程序。(事实是安装S7-PLCSIM Advanced V3.0是并没有提示我安装WinPcap)那么重新安装即可。但是没有想.

2021-03-28 21:29:48 21117 2

原创 解决添加图片资源无法在Resource引用问题

Resource添加图片资源,在代码引用时发现property下无该图片资源,可以通过image下的import重新导入即可。image属性可为任一控件属性来添加图片。

2021-03-21 11:13:07 632

原创 添加MetroFrameWork后工具框无框架控件

添加引用后,如需要使用控件还需要在Toolbox中添加对应的dll方可显示。

2021-03-17 12:00:13 454

原创 上位机UI设计——嵌入式窗口切换

前文做过HMI的人都习惯了系统自带了窗口或者画面切换,C#中需要开发者自己去写这样一个逻辑,本文大致介绍一种思路来实现这种功能。分析所谓窗口切换其实就是将当前画面清空,然后重新绘制一幅实现好的窗口,那么要首先实现的就是原有窗体的擦除,然后重新导入绘制好的新窗体。实现首先我们新建一个panel用来加载新窗体,进行窗体的切换然后根据该panel大小建立两个同等大小的窗体form2与form3窗体切换的功能由按钮button2与button3来实现,首先我们需要写好切换窗体额方法 void

2021-03-16 16:07:41 1457 1

原创 如何给上位机设计好看的ICON

前文上位机软件,一般需要一个简单清晰好看的icon来方便使用者使用,今天这里说下怎么来实现。正文首先我们先建立一个winform程序这里不用和我一样哈,只需要你添加一个button就行了。打开阿里巴巴矢量图库输入你想实现的功能描述,例如输入“”登录“”出现如图的icon选择你喜欢的icon,进行下载或者你也可以收藏保存下载的时候呢,我们需要选择颜色和对应的图片大小,方便插入,图片大小呢基本你看到有多大那么插到你的winform窗体里也差不多多大。下载

2021-03-16 11:11:23 2121

原创 聊聊竞业协议

聊聊竞业协议都说金三银四,年前虽然提出了离职,磨磨蹭蹭终于是在最近离职了。和一般人一样,咱也是骑驴找马,不出三天去新单位报道,登记表填到一半,发现一份竞业协议。细读之下,最后决定不签合同了。说下理由哈,虽然以前也签过,但是这家公司补偿属实有点低,前12个月的平均工资的30%,这个虽然是一个一般标准,但是以前基本都是不低于50%的比例支付的,而且关于工资的问题,并没有说明实际是按基本工资发放还是按实际工资发放,当时问了这点,但是HR回避了这个问题,并且把我单独请到了隔壁的办公室详谈。HR和我讲,这份协议一

2021-03-16 10:33:38 604 2

原创 从0开始C#操作MySQL数据库

前文本文旨在展现如何通过C#来操作MySQL数据库,本文通过一个简单范例展示了如何实现这一功能。准备MySQL WorkBench8.0 CE VS2013正文1.两种连接方式根据操作数据库时是否需要一直连接的特点,将行为分为两种:第一种是对数据库始终保持连接状态;第二种是先将数据暂存于内存中,操作是对内存的数据,操作完成后,更新数据库,如图1所示。2.长连接1.新建需要测试的Table:test1.首先我们建立好如图的winform窗体这里我们希

2021-03-03 13:34:02 514

原创 ModBus那些傻傻分不清

你是否听说232,485串口通讯,ModBus RTU,ModBus TCP通讯,是不是傻傻分不清呢?在翻阅了有关文档后,特总结一文,希望能帮助到有同样疑惑的人。在通信上,有的时候我们说的XX通讯,有的时候指的是通过某种传输介质,例如通过以太网通讯,有的时候指的是通过某中传输协议通讯,例如我们这里提到的ModBus通讯。这些说法约定俗成,要理解它就要在特定的场景里去理解。但是这样的说法同样带来了一些问题,在对概念不清楚的情况下,虽然能做应用,但是心里总是有一种说不清道不明的感觉。为了更好的说明这些易混淆

2021-02-25 10:20:39 396

原创 C#异常引发的思考

以前多接触下位机,现在学习上位机,写的代码时常会报异常,于是少不了缝缝补补,也感觉debug的必要。同时也越发感觉到,思考问题,要具备两面性的观点,不能只看正面,不看反面,两边都思考了,再做取舍,代码也有可能更优雅。...

2021-02-22 15:23:51 86

原创 C#中推荐使用Environment.NewLine

使用textBox添加文本时,考虑到多平台的迁移的可能,使用Environment.NewLine来避免代码改动。TextBox1.Text="测试换行"+Environment.NewLine;

2021-02-22 15:19:19 2304

原创 S7200-SMART系统手册笔记(1)

5 编程概念5.1 设计 PLC 系统的指南单一职责原则,模块话,功能独立化程序必须清晰表述IO功能操作功能描述执行前提条件HMI交互描述与其它设备交互描述安全电路设计?规划组态图,可以从全局看到PLC每个部门的功能,在规划上避免重叠,不独立符号名称列表,建议标签表示,方便阅读5.2 编程元素POUCode主程序子程序减少程序大小减少扫描时间可移植(避免使用全局变量V存储器地址)中断程序中断程序必要要与一个中断事件关联中断在最开始是被禁止的

2021-01-28 13:47:34 1326

原创 怎么找西门子的资料

自从大学之后,就再也没接触过西门子,大学时做的PLC设计用到了S7-200,从那时算起,到现在已经有四五年没用过了。所以觉得很生疏。现在重新捡起来,发现软件版本换了又换,资料还是相对不好找的。不过一番周折之后还是发现了一个靠谱的路径。打开西门子官网https://new.siemens.com/cn/zh.html如果你想学什么,那就搜对应产品就好了,例如我想学S7-200S7-200这东西听说2025年就停产了,官网的确已经看不到老版的MicroWin了。这里查询到了S7-200 SMART

2021-01-26 16:32:02 1230

原创 汇川冷复位,热复位,初始值复位

热复位:属于在线命令,在线模式下有效。热复位后,除了保持型量(retain和persistent变量)外,其它当前活动应用的变量都被重新初始化。如果设置了初始值的变量,热复位后变量值为设定的初始值,其它变量都设置为标准初始值(例如:设置为0)。冷复位:属于在线命令,只在线模式下有效。跟热复位命令不同的是,冷复位命令不但将普通变量的值设置为当前活动应用程序的初始值,而且将保持型变量( retain和persistent变量)的值也设置为初始值。冷复位发生在程序下载到PLC之后,运行之前(冷启动)。一般在总线

2021-01-21 14:36:30 5594

原创 ST语言数组声明

ST语言作为PLC编程的标准语言,软PLC的使用越来越多,也逐渐受到了更多的工程师的喜爱,这里我们探讨这里的问题。数组声明我们很多工程师这么声明数组HMI_bWholeHmi AT%MW14380 :ARRAY[1..20] OF WORD; 熟悉高级语言编程的朋友,肯定知道一般数组引用从0开始,但是作为PLC的工程师,多数喜欢1对1的命名方式,错位会让大家很不舒服。但是值得说明的是,这种命名是存在风险的,有可能在引用时指向一个空指针,从而导致程序死机。举个例子int i

2021-01-19 10:39:51 4033

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除