自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 上位机通过ModbusRTU读取FX3U数据

D8400:设置Modbus的数据长度为8、校验为无校验、停止位为1位、波特率为9600。控制Y1接通:01 05 33 00 FF 00 83 7E。控制Y1断开:01 05 33 00 00 00 C2 8E。位元件通过读取通过功能01 Read Coils读取状态。读取D0寄存器的数据。写入数据到D0寄存器。

2025-08-18 13:39:26 173

原创 结构化文本(ST) EXTRACT位提取指令

将输入X的DWORD数据的 第N位 的二进制输出,如果为0输出FALSE,为1输出TRUE。

2025-08-12 09:32:08 126

原创 结构化文本(ST)ALT交替输出

ALT交替指令:当xExecute 检测到上升沿时,xOut将反转其状态。

2025-08-12 09:13:22 199

原创 结构化文本(ST)PLS上升沿输出、PLF下降沿输出

PLS上升沿输出,xExecute检测到上升沿时,xOut将置为TRUE状态维持一个扫描周期。PLF下降沿输出,xExecute检测到下降沿时,xOut将置为TRUE状态维持一个扫描周期。

2025-08-12 09:07:18 134

原创 结构化文本(ST)数组

创建一维数组,元素个数是10个,开始下标是0.结束下标是9,数据类型是INT。如果初始化的值的数量大于数组创建的数量,编译时报错数组初始化值太多。将数组下标1中的值赋值给V1。数组创建并对其初始化。计算数组中所有值的和。找出数组中最大的值。找出数组中最小的值。

2025-08-11 15:57:41 117

原创 结构化文本(ST)循环语句

使用FOR循环计算0到100的偶数和,可以将步长设置为2,FOR每次循环i的值加2,i增加到102的时候条件不满足就会退出循环。语句重复执行其后的语句块,直到其循环条件为FALSE。如果一开始该循环条件就为FALSE,则根本不执行语句块。当IF判断 i 的当前值 MOD 2 等于0,表示当前 i 的值是偶数。计算0到100之间所有偶数和,其实值为0,结束值为100,步长为1。利用CONTINUE,判断i的当前值为奇数的时候跳过本次循环。循环,语句一直执行,直到循环结束条件为 TRUE。,则循环只执行一次。

2025-08-11 15:22:48 151

原创 结构化文本(ST)CASE语句

当整型数据Select的值为1的时候,执行V1赋值100操作,当Select的值为2的时候,执行V1赋值200操作,Select的值为3的时候,执行V1赋值300操作,当Select的值不符合任一选择值,就会执行ELSE中的V1赋值400的操作。一个整型数据或枚举数据的控制变量。如果控制变量与其中一个选择值相等,则执行该组语句块。否则,执行 ELSE。当select中的值为7到10的时候执行V1 := 100;当select中的值为1或5的时候执行V1 := 100;

2025-08-11 14:10:15 170

原创 结构化文本(ST)IF语句

当IN1为TRUE时执行V1赋值100,当IN2为TRUE时执行V1赋值200,当IN3为TRUE时执行V1赋值300。上图中的代码相当于置位复位SR指令,当IN1为TRUE时,OUT为TRUE,当IN2为TRUE时,OUT为FALSE,当IN1和IN2同时为TRUE时,OUT为TRUE。使用IF-ELSE完成点动控制,当IN为TRUE,OUT就为TRUE,IN为FALSE,OUT就为FALSE。当 IN1 为TRUE时,执行V1赋值0语句,当 IN2 为TRUE时,执行V1赋值100语句。

2025-08-11 13:53:48 243

原创 结构化文本(ST)边沿检测、上升沿和下降沿

当IN1从ON变成OFF,F_TRIG_1才会输出一个脉冲,当IN2由OFF变成ON,R_TRIG_1会输出一个脉冲。当IN1从TRUE编程FALSE时,F_TRIG_1.Q会输出一个脉冲,此时置位复位指令SR1输出置位。当IN2从FALSE变成TRUE时,R_TRIG_1.Q会输出一个脉冲,此时置位复位指令SR1输出复位。当IN1输入信号只有从OFF变成ON时,会产生一个脉冲信号,IN1一直保持ON也不会在产生信号。当IN1为TRUE时,F_TRIG_1.Q没有输出。

2025-08-11 11:09:12 195

原创 结构化文本(ST)置位复位

当IN1和IN2同时为TRUE时,置位优先SR会保持输出为ON,复位优先RS会保持输出为OFF。当SET输入ON上升沿信号时,输出Q为TRUE,当SET信号为OFF时,输出保持TRUE。只有RESET为ON上升沿信号时,输出Q为FALSE。1 时,触发器最终为置位状态。1 时,触发器最终为复位状态。

2025-08-11 10:40:25 149

原创 结构化文本(ST)定时器

当V1变量输入T#10S, 定时器IN信号为TRUE后,当前计时时间ET等于PT后,输出Q为TRUE。代码编辑区输入TON1,按TAB补全代码,输入信号IN,定时时间PT,输出Q,当前计时时间ET。也可以只给定时器输入信号和定时时间,通过定时器.Q给输出变量赋值。创建定时器,定时名称TON1,定时器类型TON通电延时定时器。

2025-08-11 10:27:33 172

原创 结构化文本(ST)计数器

为当CU接收到一个计数信号的上升沿,计数器加1,当CV的值大于等于PV的值,Q输出TRUE。在使用的时候,在代码编辑区输入计数器名称后,按TAB键补全代码。创建计数器,左键点住要创建的计数器,拖动到代码编辑区。在变量声明区域写入, 计数器名称 : CTU;当RESET输入信号为TRUE时,计数器清零。

2025-08-11 10:10:07 99

原创 结构化文本(ST)比较运算和逻辑运算

当OR前后有一个为TRUE的时候,结果为TRUE,只有OR前后都为FALSE,结果为FALSE。当XOR前后为一真一假的时候结果为TRUE,当前后后为真或假的时候结果为FALSE。当 value1 大于等于 value2为TRUE,否则为FALSE。当NOT后为假的时候结果为TRUE,当NOT后为真结果为FALSE。当 value1 等于 value2为TRUE,否则为FALSE。当AND前后都为TRUE的时候,结果为TRUE,否则为FALSE。

2025-08-11 09:49:05 187

原创 结构化文本(ST)程序组织单元POU

CODESYS创建功能块FB,创建函数FC

2025-08-09 16:54:14 172

原创 结构化文本(ST)创建和使用结构体

结构体是由一系列相同或者不同类型的数据构成的数据集合,是一种用户自定义数据类型。可以在数据类型中直接输入结构体名称或者通过输入助手找到结构体;在STRUCT和END_STRUCT内定义结构体的元素;右键Application——添加对象——DUT。类型选择结构体,名称任意;创建完成结构体变量后,通过。TYPE:结构体的名称;

2025-08-09 15:50:53 190

原创 结构化文本(ST)数据类型和全局变量

当POU1和POU2对全局变量GVL.Value1赋值,这里两个POU操作的同一个变量,如果同时对一个全局变量赋值,这个变量里的值会按照程序扫描周期内最后一个对它进行赋值操作的值。全局变量 :在 POU 之外定义的变量为全局变量。全局变量可以被工程中所有POU共用,全局变量可以实现两个不同程序或功能块之间的数据交换。POU 内有效,每个POU中创建同名的局部变量,它们之间没任何关系,互不影响。创建全局变量,红色箭头切换方式,蓝色箭头创建新变量;内定义的变量为内部变量。输入全局变量列表的名称;

2025-08-09 15:27:59 212

原创 结构化文本(ST)数据类型和局部变量

本文介绍了常见数据类型的内存占用和取值范围,包括位、布尔、整型、实数和时间等类型。同时详细说明了两种创建变量的方法:在VAR和END_VAR间直接声明变量,或通过界面按钮新建变量。文章还强调了变量赋值时需确保数值在相应数据类型的取值范围内,否则会报错并提示修改数据类型。

2025-08-09 14:59:52 163

原创 WPF—布局面板

WPF常用面板的使用

2025-07-02 10:00:15 271

原创 STM32F103C8T6—按钮控制LED

PC13对应开发板上的绿色LED,将PC13设置为output,将PC15设置为Input。在main.c中的main函数加入代码,读取C15的电平,根据读取电平改变C13的输出状态。在main.c中GPIO_Init对GPIO的初始化代码。C15通过杜邦线与3.3V连接时,绿色灯亮。C15通过杜邦线与GND连接时,绿色灯灭。在杜邦线中间加入一个。

2025-06-26 11:27:53 169

原创 STM32F103C8T6—点亮LED

在main方法中的while循环里添加led闪烁代码,切换高低电平,切换状态后延时1S,实现LED闪烁。在初始化中通过修改HAL_GPIO_WritePin第三个参数来改变默认状态。点击运行下拉框,找到Run Configurations。在调试器中的调试探头,选择使用的烧录器。选择对应的芯片型号后,点击NEXT。GPIO_PIN_RESET:低电平。输入工程名称后,点击Finish。新建Stm32 Project。点击红色框中的按钮,编译代码。点击Apply——在点击Run。函数,GPIO的初始化函数。

2025-06-26 10:35:11 352

原创 C#.NET Framewrok使用IronPython执行Py程序,实现serial收发

C# 使用 IronPython 调用Python脚本,执行Python脚本中的串口功能,发送数据。

2024-11-12 11:22:55 312 1

原创 C#—DataGridView绑定List集合

将list作为控件的数据源;创建一个Student类,包含三个属性Name,Age,Gender;DataPropetyName中填写对应的类的属性名;

2023-03-07 20:45:49 2942

原创 C#类与对象

class Student:创建一个学生类,通过抽取学生的相同特征和动作,创建一个模型,在 通过这个模型创建一个或多个对象;每个new的新对象在内存中存放在不同的位置,互相之间各自独立;

2023-03-05 19:42:54 367

原创 C#枚举Enum

通过枚举限定选项,Today(DayOfWeek dayOfWeek)的参数是一个枚举,那么传递过去的参数也要是定义的枚举中的变量。枚举要定义在类的外面。

2023-03-05 19:25:18 408

原创 C#数组Array

数组:存储相同数据类型的数据。根据元素个数自动分配空间。确定数组元素的数量。

2023-03-05 19:13:48 143

原创 C#条件判断

if适用于判断区间是否满足的情况,switch适用于判断与条件相同的情况。当switch的条件与case中完成相同时,执行对应的case中的代码。

2023-03-05 18:11:24 734

原创 C#循环的应用

而do-while,先执行循环体的代码,在判断while的条件是否满足,所以至少执行一次。continue:跳过本次循环,不向下执行,重新执行下一次循环;while先判断条件是否满足,满足则执行循环体里的代码,break:中止循环,当执行到break跳出当前循环体;循环次数不固定时,选择while或dowhile循环。循环次数可以确定时,选择for循环。

2023-03-05 17:49:31 129

原创 C#字符串方法

email.IndexOf("@"), 参数字符串中 @在字符串email中出现的位置为6,字符串和数组一样,都是从0开始,所以@出现在字符串中第7个字符的位置。IndexOf:获取符合参数的字符串条件的第一个索引位置。Length:获取字符串的长度。如果没有找到会返回-1。

2023-03-05 17:15:07 84

原创 C#控制台输入输出

Console.WriteLine("欢迎" + name + "!" + gender + "宾一位!Console.WriteLine("欢迎{0}!Console.WriteLine($"欢迎{name}!{gender}宾一位!Console.WriteLine():输出字符串,并自动换行;在字符串前加 $符号,字符串里用{}扩起变量名来实现格式化。通过占位符,将变量的值替换到占位符的位置,占位符从0开始。Console.Write():直接输出字符串,不换行;

2023-03-05 16:50:28 1528

原创 台达DVP50MC和台达DOP-110WS通信设置

或者在PLC软件中,将PLC的地址设置设置同PC一个网段,192.168.2.X,最后一位不可重复;弹出的通信设置对话框,点击广播搜索;如果知道IP,就输入IP地址,点击搜索;弹出的密码框,默认密码0000,输入后点击确定;在PLC编写一段梯形图,并将PLC和人机界面的Ethercat用网线连接;在网络连接中,将本地IP修改和PLC同一网段,不重复的IP地址;通信连接失败,一般都是PC和PLC的IP网段不一致;弹出的对话框,选择正确的人机型号,点击下一步;测试点击人机界面的按钮,PLC接收到正确信息;

2023-01-04 21:14:44 3382

原创 C语言—文件操作

关闭文件:fclose函数,参数是fopen返回的文件指针;调用关闭函数后,系统才会将缓冲区的数据写入文件中,并释放相关资源,关闭成功返回0,关闭失败返回EOF,关闭后文件指针就无效了。打开文件:fopen_s函数,第一个参数是FILE类型数据的指针变量的地址,第二个参数是文件路径及文件名,第三个参数是打开模式;打开文件成功返回0,失败返回非0。在解决方案里,右键点击项目,在文件资源管理器中打开文件夹,并建立一个a.txt文件;如果当前目录下不存在a.txt文件,就会提示“文件打开失败”;

2022-12-28 21:18:13 277 1

原创 C语言—typedef与结构体

正常每次使用结构体的时候都需要使用 struct **** ***** 的方式,但是struct是多余的,但是不加struct编译器就会报错;还可以定义一个指针别名*PtrPerosn;在需要使用struct Person * 的结构体指针的时候,直接使用PtrPerosn这个名称;在定义结构体的时候,在前面加上typedef,就可以在使用的时候不用加struct了;

2022-12-28 06:00:00 416

原创 C语言—typedef

int类型的指针数组,别名PTR_INT_ARR,指向一个拥有3个整型数据的数组;给数据类型int起了一个别名叫做INTEGER,int和INTEGER就是相同的数据类型;无参无返回值的函数指针,别名为PTR_TO_FUC;typedef用来给变量起一个更容易记住的或意义明确的别名;的时候,等价与 int* b = &a;

2022-12-27 22:47:53 400

原创 C语言—动态申请结构体

使用malloc申请一个sizeof(struct Person)大小的内存空间,并将malloc返回的指针地址强转为(struct Person *)类型;定义结构体Person类型的指针struct Person *person;

2022-12-27 21:44:58 888

原创 C语言—结构体指针做为函数的参数

【代码】C语言—结构体指针做为函数的参数。

2022-12-27 21:36:44 279

原创 C语言—结构体做为函数的参数

将结构体变量person作为参数传递给inputPerson,在用结构体变量person接收inputPerson的返回值;将结构体变量person作为实参传递给printPerson函数的形参p,在printPerson函数内打印形参p的内容;将结构体类型struct Person 作为函数的返回值类型,将inputPerson的形参p的值作为返回值,返回给调用者;将定义的结构体变量person传递给inputPerson,相当于把实参赋值给形参,实参是不会被修改的;

2022-12-27 21:10:29 1380

原创 C语言—结构体

结构体指针,将结构体的地址赋值给结构体指针,通过(*结构体指针变量名) (.)点号 成员 的方式进行访问;因为 (.)点号 的优先级比 (*)型号 高,所以要用(*结构体指针变量名)进行解引用,让它变成结构体变量,在用 点号 访问其成员;结构体变量名 (.)点号 结构体变量名 (.)点号 结构体成员,如果多层嵌套就需要一级一级的向下找。结构体数组,当需要定义多个人的数据的时候,就可以定义成结构体数组,和普通数组一样的使用方式;访问结构体成员时,通过定义的结构体变量 加 点号,访问其中结构体的成员;

2022-12-25 20:23:09 435

原创 C语言—预处理运算符#和##

在带参的宏定义中,#运算符后面应该跟一个参数,预处理会把这个参数转换成一个字符串;如果参数有双引号,会被替换成/“。#号会把传递的参数转换成字符串;##记号连接运算符,连接两个参数;

2022-12-25 19:27:55 208

原创 C语言—宏定义

宏定义的作用范围从定义的位置开始,到整个程序结束。也可以用#undef终止宏定义的作用域;带参的宏定义,宏定义中的参数是形参,宏调用时的参数是实参,和函数类似;宏定义的作用是替换,再复杂也只能替换,不能用做计算;把程序中出现的PI在预处理时全部替换成3.14;宏的名字用大写字母组成,宏定义末尾不需要加分号;一个源文件将另一个源文件的全部内容包含进来;宏定义的嵌套,一个宏中使用另外一个宏;在宏定义时,加上小括号就不容易出错;尽量不要用宏定义代替函数或表达式;宏定义只能做简单的替换;

2022-12-25 19:06:54 482

原创 C语言—malloc动态内存管理

mallcon:申请动态内存空间,(int *)malloc(100)申请100个字节的int类型的空间;函数调用成功会返回一个(void *)类型的指针,它可以被转换成任何类型的数据,所以要用(int *)强制类型转换。free:当不需要这块内存的时候,要手动释放,不然可能会造成内存泄漏。malloc不会初始化申请的内存空间,需要手动初始化;

2022-12-25 17:49:45 1054

空空如也

空空如也

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

TA关注的人

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