青穗三三 发表于 2026-3-4 08:06:11

高速输出/PWM控制高速输出有4种方法。分别为以下:以Y100为例。输出控制:PWM_OUT(Y100,频率,占空比)。频率范围为400Hz~100KHz,占空比范围为0-100,为整数,请勿使用小数。占空比0=无输出,100=持续高电平。获取输出频率:PWM_GetFre(Y100)。返回设置的频率,若未设置,返回0。获取输出占空比:PWM_GetDuty(Y100)。返回设置的占空比,若未设置,返回255。停止输出:PWM_STOP(Y100)。Y100将为0。注:若不进行高速输出,其默认将为一个通用输出。

青穗三三 发表于 2026-3-4 08:06:45

高速计数输入需要用到特殊辅助继电器、特殊数据寄存器,这里使用了一看就明白的变量值。使能高速计数输入X0,注意使能后,请勿将其用作通用输入接口:DX0_CNT=0;//设置起始计数值
MX0_OUT=0;//清除溢出标志
DX0_MAX=100;//定义设置上限
SET(MX0_EN);//启动停用高速计数输入X0,停用后,可用作通用输入接口:RST(MX0_EN);//清除使能。除非用户手动清除计数值DX0_CNT,否则启动后继续计数当起始计数值DX0_CNT达到设置上限DX0_MAX,溢出标志MX0_OUT会置1,并且DX0_CNT从0开始。需要用户手动清除溢出标志MX0_OUT。需要注意,受限于MCU的性能,若值范围为0~255,则计数的设置上限,以及起始计数值,设置时均不可超出此范围。若需要使用高速计数输入X3,将以上代码中的X0修改为X3使用即可。

cnos 发表于 2026-3-4 18:55:09

把FX2N兼容一下,能兼容FX3U更好

青穗三三 发表于 2026-3-5 13:45:21

日期和时间
dhms是一个集合了设备已运行时间的对象。包含天数、时、分、秒。
dhms.day,天,最大到32767。
dhms.hour,时。
dhms.min,分。
dhms.sec,秒。
用户可将其加载至通用数据寄存器。

青穗三三 发表于 2026-3-5 13:47:33

模拟量输入
直接读取值即可:
D0=AI0;
用起来超方便

常州工控-国光 发表于 2026-3-5 17:36:52

怎么把modbus的通讯速率改为9600?

青穗三三 发表于 2026-3-5 19:49:46

常州工控-国光 发表于 2026-3-5 17:36
怎么把modbus的通讯速率改为9600?

目前还修改不了,是固定的4800,也有仿真性能限制的原因,项目仍然在完善中

常州工控-国光 发表于 2026-3-5 21:48:40

目前已在开发板上实现了modbus 9600/8/n/1的通讯方式.

常州工控-国光 发表于 2026-3-5 21:50:47

另外实际PLC中XY是八进制的,没有此项目的X8、X9等!!

青穗三三 发表于 2026-3-5 22:00:51

常州工控-国光 发表于 2026-3-5 21:50
另外实际PLC中XY是八进制的,没有此项目的X8、X9等!!

搜索了下,确实是8进制,我修改一下
页: 1 [2] 3 4
查看完整版本: 用 51 做了个 PLC:X、Y、高速计数输入、高速输出、Modbus等直接用,超低学习成本