2020年2月29日 | 分类: VB | 标签: ,

孩子荣升小学,数学题目也学习到20以内混合加减法,为了孩子能熟练掌握数学基础运算,给孩子每日练习100道算数题目。

网上有用 randbetween 函数来实现的,如下面的链接内的方法:
https://jingyan.baidu.com/article/f3ad7d0f5178bf09c3345b32.html

这个方法在OFFICE中好像有点问题,按F9无法刷新随机数据。因此为了更友好(家人对ECXEL并不熟悉)的实现功能,采用VBA的方式来实现。最终效果如下图所示。

阅读全文…
版权所有©转载必须以链接形式注明作者和原始出处:纪小年 » EXCEL通过VBA生成小学生混合加减法数学题
2020年2月27日 | 分类: 电子设计 | 标签: , ,

第零步,安装USBASP驱动和PROGISP

WIN10驱动下载
https://protostack.com.au/2015/01/usbasp-windows-driver-version-3-0-7/ ,下载地址 https://protostack.com.au/download/USBasp-win-driver-x86-x64-v3.0.7.zip

PROGISP 使用方法

打开软件后,先选择芯片型号,如AT89S52;

接着点击“调入Flash”,选择需要烧写的程序(.hex文件)

然后点击【自动】等待烧写完成。

阅读全文…
版权所有©转载必须以链接形式注明作者和原始出处:纪小年 » 用Visual Studio编写C51单片机程序
2019年1月19日 | 分类: C# | 标签:

一、简述

在做项目的过程中要用到 WindowsForm PropertyGrid 控件,不过控件显示出来的属性是英文,想要显示出来的是中文,那么在类的属性上面加上一个 DisplayName 特性就行了。但是,因为某种情况要动态的修改控件显示出来的中文,怎么办?

二、内容

首先先编写一个实验类

阅读全文…

版权所有©转载必须以链接形式注明作者和原始出处:纪小年 » C# 动态为类的属性添加或修改其特性值[转]
2019年1月8日 | 分类: C# | 标签: ,

原文链接 https://www.cnblogs.com/jayhust/p/5812747.html

1.我们先新建一个FreeSCADA的工程实例,看下实际的存储效果:

a) 建立几个数据通道作为数据源(Communication菜单编辑,Channels Tree下显示):

clip_image001

b) 建立一个数据库存档(工具栏的Archiver Settings):

clip_image003

c) 定义数据库连接属性(Project菜单下的Database settings子菜单):

clip_image005

d) 编译项目,并运行,查看数据库存储结果:

clip_image007

2.存储过程探究(FreeSCADA2解决方案下的Archiver工程):

我们主要分析Archiver工程下Archiver.cs文件内的的几个方法:

Start方法:

public bool Start()

{

dbWriter = new DbWriter();

if (dbWriter.Open() == false)

return false;

channelUpdaterThread = new Thread(new ParameterizedThreadStart(ChannelUpdaterThreadProc));

channelUpdaterThread.Start(this);

dbReader = new DbReader();

if (dbReader.Open() == false)

return false;

return IsRunning;

}

ChannelUpdaterThreadProc方法:

private static void ChannelUpdaterThreadProc(object obj)

{

ArchiverMain self = (ArchiverMain)obj;

try

{

for (; ; )

{

//System.Console.WriteLine("{0} ChannelUpdaterThreadProc: Start loop", System.DateTime.Now);

foreach (Rule rule in self.channelSettings.Rules)

{

if (rule.Enable)

{

foreach (BaseCondition cond in rule.Conditions)

cond.Process();

if (rule.Archive) // 判断是否需要将本规则下对应的各个数据通道数据存入数据库(通过判断是否使能了本项存储规则、并且存储规则对应的存储条件的参数:间隔时间是否已经到了)

self.dbWriter.WriteChannels(rule.Channels);

}

}

Thread.Sleep(100); // 线程休眠100ms。所以FreeSCADA的查询各个数据通道的间隔就是100ms。

}

}

catch (ThreadAbortException)

{

}

if (self.dbWriter != null)

self.dbWriter.Close();

}

Stop方法:

public void Stop()

{

if (channelUpdaterThread != null)

{

channelUpdaterThread.Abort();

channelUpdaterThread.Join();

channelUpdaterThread = null;

if (dbWriter != null)

dbWriter.Close();

}

if (dbReader != null)

dbReader.Close();

}

版权所有©转载必须以链接形式注明作者和原始出处:纪小年 » [转]FreeSCADA的数据库存储方式(Archiver)探究[MySQL为例]
2018年6月13日 | 分类: 电气设计 | 标签: , ,

鉴于我们大部分项目都采用PlantPAx工具来进行编程,往往调试过程中配置每个仪表和执行机构就成了一个很费时的步骤。附件是RA的PlantPAx的配置工具,能快速进行设备的配置。下面是一个简单的使用说明。

1.在RSLinx里面新建一个Topic

Catch(06-13-17-53-37)

2.指向CPU

Catch56FD(06-13-17-53-37)

阅读全文…

版权所有©转载必须以链接形式注明作者和原始出处:纪小年 » PlantPAx 在线配置工具
2018年3月30日 | 分类: 电气设计 | 标签: , , ,

介绍

报表作为一种信息组织和分析的有力手段,是工厂生产和管理的重要组成部分,本方案综合利用了 FactoryTalk View SE 组态软件的数据采集、SQL SERVER 数据库软件强大的数据组织处理能力以及 Excel 丰富灵活的数据表现形式,制作可靠美观的各种报表,解决 View SE 在实际应用中对复杂报表支持的不足。大体思路如下:

l 通过 View SE 组态软件将 PLC 中或通过 OPC 通讯而来的数据采集至上位画面。

l 利用 View SE 的 DataLog 文件将数据自动定时推送至 SQL SERVER 数据库。

l 在 SQL SERVER 中利用 VIEW 视图功能组织需要的数据。

l 通过 Excel 的数据表导入功能将 SQL SERVER 中的数据导入 Excel 生成报表,并可利用 Excel 数据透视表功能制作复杂格式的报表(建议 Excel 2007 以上版本)

clip_image002

阅读全文…

版权所有©转载必须以链接形式注明作者和原始出处:纪小年 » FT View SE 报表解决方案-SE 结合 SQL SERVER 和 Excel 实现报表功能