![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
上位机
文章平均质量分 70
zxy2847225301
毕业于广东工业大学,多年C#一线开发经验,熟悉常用数据库
展开
-
利用C#和Snap7工具模拟S7通信(包含DB地址讲解)
但KepServerEx是收费的,而且模拟的DB块超过64就不行了,当然Snap7在本文中也是只能模拟DB1、DB2和DB3的数据,但Snap7提供了C#版的运行程序,完全可以根据需要修改源码完成要模拟的DB块(由于有一个项目需要,我已经尝试过修改源码成功模拟DB100、DB101、DB102和DB103的数据,后面有空在把代码分享出来)上图中第1个红色方框的十六进制地址为0000,第2个红色方框十六进制的地址为000F,第3个红色方框十六进制的地址为0012,地址排布相信你能看得懂。原创 2024-06-18 21:25:52 · 1385 阅读 · 0 评论 -
利用Winform实现电压表或电流表
本文的内容是搬运而来,还是国外的资源容易获取,不像国内的,遮遮掩掩,各种想让你掏钱。1 新建名为WinformDemo1的winform项目,.net framework选择4.0。2 新建名为AnalogMeterControl的类,并编辑如下。3 生成项目,在工具箱中就可以看到该自定义控件了,如下图。MaxValue是刻度最大值。MinValue是刻度最小值。Value是设置指针的值。好了,本文到此结束。转载 2024-04-03 16:26:19 · 213 阅读 · 0 评论 -
利用Winform实现简陋版的温度计(仅供参考)
本人水平有限,如有写得不对的地方,望指正。为了简单化,做了一个简陋版的温度计控件,有点丑哈。1 新建名为WinformDemo1的winform项目,.net framework选择4.0。设置属性值时同时调用Validate()方法,会触发OnPaint方法进行重新绘制控件。2 新建名为ThermometerControl的类,并编辑如下。3 可以设置它的属性值,Temperature属性是温度值。3 生成项目,在工具箱中就可以看到该自定义控件了,如下图。好了,本文到此结束。原创 2024-04-03 16:08:19 · 403 阅读 · 0 评论 -
利用Winform实现文字滚动(仅供参考)
Label的位置在最右边时,位置的坐标为(自定义控件的Width,Label的y值);Label的位置在最左边时,位置坐标为(0,Label的y值),所以Label在X方向上的值只能在0到Width之间变化。1 先自定义一个继承UserControl的控件,再放置一个Label控件,加一个定时器定时更新Label的x轴的位置即可。Speed是滚动的速度,1到100,如果设置的值小于1,则会自动重置为1,如果设置的值大于100时,会自动重置为100。本人水平有限,如有写得不对的地方,望指正。原创 2024-04-03 15:52:34 · 475 阅读 · 0 评论 -
通过C#和KepServer完成模拟S7协议通信
通过关键词KepServer、C#搜索,发现出来的文章都是关于OPC的,好奇怪,在搜索资料的过程中,了解到了软件博图(不好装,PLC编程的,要求电脑性能高,对操作系统有要求,动不动装不成功,直接劝退了我)、PLC仿真软件。本文作者水平有限,如有写得不对的地方望指正,我以前是做his开发的,没有上位机开发的工作经验,以下内容仅供学习参考使用,趁着有时间就学习一下,没有硬件PLC,只能用KepServer来造数据了。1.5 打开visual studio 2019。好了,本文的内容到此结束。原创 2024-03-17 18:14:20 · 894 阅读 · 0 评论 -
Modbus相关知识点及问题总结
应用类似于温度或者湿度传感器的值,但我在淘宝中搜索了多个使用modbus协议的传感器设备,它们都是使用保持性寄存器,其实是并不严谨的,从这个知乎链接。:读输入寄存器,所谓输入寄存器是指寄存器数值只能由传感器输入的模拟量来驱动更新数值,数值是只读的;:读保持寄存器,可读写,可读多个或者单个寄存器内容,所谓保持寄存器是指寄存器数值可以读写,该寄存器数值用于输出模拟量;线圈和离散输入寄存器的状态可以使用一个比特位来表示,其他的一个寄存器的值需要用两个字节来表示(数据高位、数据低位):读取线圈寄存器的值,可读写。原创 2023-03-26 20:22:07 · 1937 阅读 · 0 评论 -
Modbus协议初探(C#实现)
从上面的图3可以看出,配置的从站的起始地址为十进制的9,小于256,所以起始地址的高位位0,即十六进制的00,如果从站配置的起始地址为十进制的257,则起始地址的高位为1,十六进制为01,起始地址 的低位为十进制的1,即十六进制的01 ,即257=256*1+1。从上面的图3可以看出,线圈数配置为十进制的10,小于256,可以这样写10=256*0+10,所以这里线圈数的高位为十进制的0,即十六进制的00。表明是从站的地址,从上面的图3可以看到下位机从站的地址为十进制的1,所以这里为01。原创 2023-03-04 19:13:09 · 6192 阅读 · 4 评论