C语言浅学-数组和指针
在结束了关于函数的学习之后并且对于指针有了初步的了解了之后,这一篇就来进一步学习数组和指针的相关知识。
数组在之前已经对数组有过介绍,数组是由数据类型相同的一系列元素组成,需要使用数组的时候,通过声明数组告诉编译器数组中内含多少元素和元素的类型。编译器可以根据这些创建数组,普通变量可以使用的类型,数组都可以使用。
123456int main(void){ float candy[365]; //内含365个float类型的元素的数组 char code[12]; //内含12个char类型的元素的数组 int states[50]; //内含50个int类型的元素的数组}
上述中的方括号([])表明candy、code、states都是数组,方括号中的数字表明了数组中的元素个数。若是要访问数组的元素,通过数组下标数(索引)表示数组的各元素,下标从0 开始,这些是比较熟悉的。
初始化数组数组一般是被用来储存程序所需要的数据。例如,一个内含12个整数元素的数组就可以储存12个月的天数。这种情况下,在一开始就初始化比较好。
只储存单个值的变量有时也称 ...
C#初学
本篇博客主要记录C#上位机开发的相关内容。
在公司的实践项目为橡胶缠绕机控制系统的设计与开发,下位机主要采用的是Rockwell的PLC和三个伺服电机以及海康威视的3D线激光扫描仪。
基于OPC服务器通信C#开发主要是用于检测使用OPC服务器对PLC进行数据读写的时间差方便与基于Ethernet/IP协议自主编写的通信库读取PLC数据进行比较。
开发平台:Visual Studio
语言:C#
以下是OPC客户端的源代码:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913 ...
Alist挂载
在github上下载压缩包,进行解压,然后在该路径下进入命令行输入:
alist server
在启动了alist之后会得到一串密码,然后在浏览器中输入127.0.0.1:5244进入alist的网站,进行登录,一开始的初始名是admin 和默认密码。
登录之后可以进行更改名字和密码。
然后就是按照alist文档中进行网盘的添加,添加完成之后加上自启动的vbs脚本:
这是最后自启动的命令:
Set ws = Createobject(“Wscript.Shell”)ws.run “E:\Alist\alist.exe server”,vbhide
再将vbs脚本的快捷方式放入启动项中即可,win + R后输入:
shell: startup 进入文件夹。
在完成这些步骤之后,搭配Raidrive一起使用就可以了。
C语言浅学-函数
上篇我们结束了关于字符输入/输出和输入验证的学习,接下来我们就将展开关于函数的学习,主要学习关键字return 和 一元运算符* 、& 以及函数的定义方式,包括使用参数和返回值、将指针变量用作函数参数、函数类型、递归。
C语言的设计思想是把函数用作构件块,我们已经使用过C标准库的函数,现在来学习一下怎么创建自己的函数。
复习函数函数是完成特定任务的独立代码程序代码单元,语法规则定义函数的结构和使用方式,虽然C中的函数和其他语言中的函数、子程序作用相同,细节略有不同。一些函数执行某些动作;一些函数找出一个值给程序使用,一般来说,函数可以同时具备以上的两种功能。
函数的使用可以省去重复编写代码的苦差,若是程序需要多次完成某项任务,只需要编写一个合适的函数,就可以在需要这个函数时,或者是在不同程序使用该函数;其次,即使程序只完成一次任务,也值得使用函数。这样的函数可以让程序的模块化,提高代码的可读性,方便后期修改完善。
下面来完成一个实例:
代码如下:
1234567891011#include <stdio.h>#define SIZE 50int main ...
C语言浅学-字符输入/输出和输入验证
我们在上一篇的博客中结束了对于控制语句的分支和跳转的学习,这一篇我们将开始学习字符输入/输出和输入验证,更加详尽的介绍输入、输出以及缓冲输入和无缓冲输入的区别。
在涉及计算机的话题中,我们经常会讨论输入和输出,我们这一篇主要介绍的是输入和输出的函数(简称I/O函数)。
I/O函数:如printf()、scanf()、getchar()以及putchar()。这些函数负责把信息传送到程序中,前面已经介绍过这些函数的用法了,这一篇将详细介绍它们的基本概念。
单字符I/O:getchar()和putchar()在上面那一篇我们说过,getchar()和putchar()每次都只能处理一个字符。虽然我们人认为这样的方式有点死板,但是毕竟电脑和人还是存在一定的差距的。这样的方式很适合计算机的,而且这也是绝大多数文本处理程序的核心方法。
实例:
12345678#include <stdio.h>int main(void){ char ch; while ((ch = getchar()) != '#' ...
企业实践-OPC初识
博主这个暑假因为校企联培项目跟随企业导师开始实习,主要的目标是需要我们做一个可以对故障进行报警和预测的web或者应用。
给我们发了一些资料,需要我们先了解OPC DA 协议、Rockwell控制器和西门子s7-1500和TIA博途软件等资料进行学习。会在这篇进行学习记录。
经过B站的短暂学习之后:
上位机通信之OPC底层原理-1_哔哩哔哩_bilibili
对于OPC和PLC有了一定的基本的了解,OPC创立的初衷是因为PLC设备的多样化导致驱动、通信协议的多样化,这样的情况下导致不同的设备协同出现了很大的问题,所以在几个自动化的巨头牵头下,成立了OPC基金会来对协议进行一个整合和管理,对于软件工程师来说,通过OPC软件就可以不用去了解具体的PLC硬件的通信协议,只需要对OPC变量进行操作即可,大大减少了开发软件的难度和时间。
OPC变量在软件层面反映出来的是那些,具体来说是 设备 -> 组 -> 变量;属于是节点式的结构,这些变量通过OPC软件(KEPserver,西门子,NI),对Modbus、AB、ABB、三菱、西门子和Codesys等PLC硬件进行控制。
主要是使用C ...
Linux命令行-文件权限
缺乏安全性的系统就不是完整的系统,系统里必须有一套能够保护文件遭非授权用户浏览和修改的机制。Linux沿用了Unix文件权限的办法,就是允许用户和组根据每个文件和目录的安全性设置来访问文件。
Linux的安全性Linux安全系统的核心是用户账户,每一个能进入Linux系统的用户都会被分配唯一的用户账户,这也是决定我们对各种对象访问权限的关键因素。用户权限是通过创建用户时分配的用户ID来跟踪的,Linux系统使用特定的文件和工具来跟踪和管理用户账户。在学习文件权限之前,需要先知道Linux怎么处理用户账户。
/etc/passwd 文件Linux系统使用一个专门的文件将用户的登录名匹配到对应的UID上,这个文件就是/etc/passwd,主要包含了用户有关的信息,下面是对这个文件的查看:
root用户账户是Linux系统的管理员,固定分配的UID是0,Linux系统会给各种各样的功能创建不同的用户账户,但是这些账户不是真的用户,这些账户叫做系统账户,是在系统上运行的各种服务进程访问资源的特殊账户,所有运行在后台的服务都要用一个系统用户账户登录到L ...
C语言浅学-控制语句 分支和跳转
在经过了循环的学习之后,对C语言的熟悉更进一步了,为了更好的使用C程序来解决复杂的问题,就需要一些方法来控制和组织程序了。除了循环之外,我们还有分支结构(if 和 switch)让程序根据测试条件去执行相应的行为。
if 语句先从一个简单的例子来进行学习if 语句:
12345678910111213141516171819202122232425#include <stdio.h>int main(void){ const int FREEZING = 0; float temperature; int cold_days = 0; int all_days = 0; printf("Enter the list of daily low temperature.\n"); printf("Use Celsius, and enter q to quit.\n"); while (scanf("%f", &temperature) == 1) ...
Linux命令行-环境变量
在上一篇关于shell,子shell,进程相关介绍结束之后,接下来将要学习Linux中的环境变量。
环境变量bash shell 会用一个叫作环境变量的特性来存储shell会话和工作环境的信息,这项特性允许我在内存中存储数据,这也是存储持久数据的方法。
一般来说,环境变量分为两类:全局变量和局部变量
虽然bash中会有使用一致的专用环境变量,但是不同的版本Linux经常会添加自有的环境变量。
全局环境变量全局环境变量顾名思义就是对于shell和子shell都是可见的,而局部变量则只是对创建它们的shell可见。系统环境变量基本上都是大写的。
查看全局变量命令:env 或者 printenv
如下图:
这里只是其中一部分的全局环境变量,其中有很多都是在登录过程中设置的,另外,我们的登录方式也会影响到所设置的环境变量。
若是需要显示个别环境变量的值,使用printenv命令,但是不要使用env命令。
实例:
当然我们也可以使用echo来显示变量的值,不过在这种情况下使用某个环境变量时,必须要在变量前加上 $ 。
实例:
Tip:在echo命令中,在变量名前加上$ 可不仅仅是要显示变量 ...
C语言浅学-C控制语句:循环
此篇我们将对循环进行更加深入的学习,while、for以及do while三种。
深入while循环在上篇中我们已经初步接触过了这个循环,主要是对条件语句进行判断,接下来通过一个程序来进一步了解。
12345678910111213141516171819202122#include <stdio.h>int main(void){ long num; long sum = 0L; int status; printf("Please enter an integer to be sunmmed "); printf("(q to quit): "); status = scanf("%ld", &num); while (status == 1) { sum = sum + num; printf("Please enter next integer (q to quit): &quo ...