最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

梯形图转单片机PMW2HEX Plus用户手册

IT圈 admin 30浏览 0评论

2024年2月15日发(作者:战兰娜)

PMW2HEX软件用户手册

版本:V5.6.0

一、软件简介

本软件是将三菱FX1N PLC PMW梯形图转换为51单片机HEX文件的转换工具,该软件可以让你快速、简单、高效的应用单片机开发自动化控制程序,让不精通单片机的工程师也可以像“玩”PLC一样“玩转”51单片机。

二、特色功能

1、模拟量功能

【1】支持最多12路12Bit精度模拟量输入;

【2】支持最多8路15Bit精度模拟量(PWM)输出;

2、数码管驱动

【1】MAX7219数码管显示驱动;

【2】TM1638数码管显示驱动,支持亮度参数控制;

【3】TM1638数码管显示驱动以及菜单控制功能;

3、温湿度传感器驱动

【1】SHT2x(如SHT20、SHT21)温度和相对湿度采集;

【2】SHT3x(如SHT30、SHT31)温度和相对湿度采集;

【3】单总线8路DS18B20温度采集;

4、双串口通讯

【1】COM1 – FX1N通讯协议;

【2】COM1 – ModBus RTU从站协议;

【3】COM1 – ModBus RTU主站协议;

【4】COM1 – 基于ModBus RTU的TCP/IP协议;

【5】COM2 - ModBus RTU从站协议;

【6】COM2 – ModBus RTU主站协议;

【7】COM2 – 基于ModBus RTU的TCP/IP协议;

【8】COM2 – 基于ESP8266标准AT指令AP模式的ModBus RTU TCP/IP协议;

【9】COM2 – 基于ESP8266标准AT指令STA模式的ModBus RTU TCP/IP协议;

5、数据掉电存储

【1】基于STC单片机片上Flash EEPROM的数据存储,支持D,C,M元件;

【2】基于AT24Cxx/FM24Cxx系列EEPROM芯片的数据存储;

6、其他功能

【1】STC单片机免断电下载,下载时再无需手动断电,方便调试程序;

【2】PID运算,内置位置式PID算法,可轻松实现恒温,恒湿,恒压等PID控制;

注意:

【1】以上部分功能需要对应的软件版本支持;

【2】以上部分功能可能需要付费开通,请以实际为准;

【3】以上部分功能需要芯片和硬件支持,请根据需要的功能选择合适型号的单片机;

三、系统要求

【1】单片机基本选型:RAM(内存)>=1024B,ROM(程序空间)>=5KB;

【2】单片机推荐选型:RAM>=1280,ROM>=48KB,表1列出了推荐的单片机型号;

【3】晶振选型:建议选择11.0592M,12M,22.1184M,推荐使用22.1184M的晶振;

【4】掉电检测:如使用STC片上EEPROM保存数据,可能需要硬件检测电路支持;

STC8系列

STC8A8K64S4A12

STC8A8K60S4A12

STC8A8K32S4A12

STC8A4K64S2A12

STC8A4K60S2A12

STC8A4K32S2A12

STC8F8K64S4A12

STC8F8K32S4A12

STC8F2K64S4

STC8F2K60S4

STC8F2K32S4

STC15W系列

IRC15W4K63S4

IAP15W4K61S4

IAP15W4K58S4

STC15W4K56S4

STC15W4K48S4

STC15W4K40S4

STC15W4K32S4

IAP15W1K29S

IRC15W1K31S

STC15F系列

IRC15F2K63S2

IRC15F2K61S2

STC15F2K60S2

STC15F2K56S2

STC15F2K48S2

STC15F2K40S2

STC15F2K32S2

[表1]

注意:

【1】表1所列出的单片机只是推荐型号,不代表本软件只支持这些型号的单片机;

【2】未确认的型号在不使用模拟量、COM2、内部EEPROM等功能时基本兼容,但

是不做保证;

【3】关于掉电检测请参考后续相关章节的详细介绍,此处暂略;

STC12C系列

STC12C5A60S2

STC12C5A56S2

STC12C5A52S2

STC12C5A48S2

STC12C5A40S2

STC12C5A32S2

STC8H1K64S2A10

STC8H1K32S2A10

四、指令系统

【1】基本指令:LD LDI AND ANI OR ORI LDP LDF ANDP ANDF ORP ORF SET

RST MPS MPP MRD ANB ORB OUT INV PLS PLF MC MCR NOP END

【2】功能指令:ALT ZRST [D]PLSY [D]PLSR [D]MOV[P] [D]INC[P] [D]DEC[P]

[D]ADD[P] [D]SUB[P] [D]MUL[P] [D]DIV[P] LD[D]= LD[D]> FROM[P] TO[P]

AND= AND> OR= OR>

【3】指令格式:KnMn、KnSn、KnXn、KnYn(建议元件连续个数不要超过16个)

注意:

【1】以上指令带[D]或[P]参数表示:对应的指令支持D(32位指令)或P指令;

【2】P指令有次数限制,建议不要超过40次,请节制使用;

五、元件范围

【1】可用软元件范围受单片机RAM大小的约束,具体请参考表2、表3;

RAM

元件

X-输入点

Y-输出点

M-继电器

S-继电器

T-定时器

C-计数器

D-寄存器

8192B 4096B 2048B

X0~X47最多可设置40点,具体可用点数受限于所选芯片IO点数

Y0~Y47最多可设置40点,具体可用点数受限于所选芯片IO点数

M0~M695

保持用M96~M223

S0~S495

10mS定时器T0~T19

100mS定时器T20~T255

C0~C255

保持用C32~C95

D0~D1496

保持用D72~D199

M0~M695

保持用M96~M223

S0~S495

10mS定时器T0~T19

100mS定时器T20~T207

C0~C255

保持用C32~C95

D0~D1055

保持用D72~D199

[表2]

M0~M511

保持用M96~M223

S0~S87

10mS定时器T0~T19

100mS定时器T20~T127

C0~127

保持用C32~C95

D0~D335

保持用D72~D135

RAM

元件

X-输入点

Y-输出点

M-继电器

S-继电器

T-定时器

C-计数器

D-寄存器

1024B 备用 备用

X0~X47最多可设置40点,具体可用点数受限于所选芯片IO点数

Y0~Y47最多可设置40点,具体可用点数受限于所选芯片IO点数

M0~M255

保持用M96~M159

S0~S87

10mS定时器T0~T19

100mS定时器T20~T95

C0~C47

保持用C32~C47

D0~D95

保持用D72~D95

[表3]

注意:

【1】特殊用M8000,M8001,M8011(10mS时钟),M8012(100mS时钟),M8013

(1S时钟),M8014(1min时钟);

【2】根据用户的设置实际上可使用的软元件数量会实时变化,具体请以日志信息窗口

中的可使用软元件范围为准;

【2】未使用的S可当M使用,未使用的C可当D使用;

【3】以上保持用软元件需要勾选“使用STC内部EEPROM”选项;

【4】T定时器精度会不同程度的受到程序扫描周期和通讯速率的影响,故定时精度不可过于依赖;

【5】外置数据存储器D4000~D8000最多3999点,受限于所选用的外置AT24Cxx存储芯片容量;

【6】特殊用软元件请参阅各个功能模块介绍,此处暂略;

六、转换流程

【1】打开三菱编程软件GX Developer,创建新工程,PLC系列选择FXCPU,PLC类

型选择FX1N,其他保持默认设,然后进行梯形图编程,最后将梯形图写出为

FXGP(WIN)格式,输出.PMW文件;

【2】打开PMW2HEX软件,设置参数(X/Y映射、MCU参数、晶振参数等),也可

执行“设置”>>“导入”操作,选择CFG文件快速导入设置;

【3】执行“打开”命令,打开步骤1中保存的.PMW文件,耐心等待转换结束;

【4】转换结束后软件弹出转换结果窗口,查看日志信息输出框中的提示信息,确认转

换是否成功;

【5】执行“下载”命令,打开单片机HEX烧录工具STC-ISP,进行下载,观察运行

结果是否正确;

七、功能说明

1、掉电保持

【1】如果需要掉电保持功能,则在“掉电存储方式”选项卡选择“使用STC内部

EEPROM”选项;

【2】类似于STC12C5xx系列使用外部掉电检测引脚LVD触发掉电中断的单片机,必

须设计掉电检测电路拉高LVD管脚,掉电一瞬间拉低LVD进行存储数据,掉电检测电路参考图1;

【3】类似于STC8xx,IAP15W系列自带内部低压检测中断的单片机,无需设计掉电

检测电路,但是在使用STC-ISP烧录HEX时请一定取消【允许低压复位(禁止

低压中断)】选框,同时取消【低压时禁止EEPROM操作】选框,低压检测电

压选项选择最邻近电源的那一个电压等级,以提升掉电检测灵敏度,并保证储能

电容>1000uF;

【4】对于EEPROM和程序存储区复用的单片机(如IAP系列)还需要设置合适的

EEPROM偏移地址,即在“EEPROM Addr”选项设置未使用的Flash起始地址用于掉电存储,该地址确认方式如图2所示;

[图1]掉电检测电路参考

[图2] EEPROM Addr地址的确认

2、EEPROM存储器

【1】在软件“掉电存储方式”选项卡选择“外置AT/FM24Cxx数据存储器”选项,并正确设置SCL和SDA对应的管脚后,在梯形图中访问D4000~D8000即可对外置存储器进行读写操作,但是请注意,读写操作会导致扫描周期变长,串口通讯受阻,而且AT系列也有写操作寿命,所以应避免在梯形图中频繁的对这些寄存器进行读写操作;

【2】AT24Cxx接口电路参考图3;

[图3]AT24Cxx接口电路参考

3、模拟量采集ADC

【1】在PMW2HEX软件“模拟量功能设置”选项卡勾选要使用的ADC通道以激活

相应的模拟量采集功能,在梯形图中将对应ADC通道的采集使能位S置ON,

则该ADC通道的模拟量采集被开启,结果被存放在指定的D寄存器中;

【2】各个ADC通道对应的使能位S和D寄存器关系参考表4;

【3】模拟量输入接口电路参考图4;

模拟量通道

ADC0

ADC1

ADC2

ADC3

ADC4

ADC5

寄存器

D0

D1

D2

D3

D4

D5

采集使能位 模拟量通道

S0

S1

S2

S3

S4

S5

ADC6

ADC7

ADC8

ADC9

ADC10

ADC11

[表4]

寄存器

D6

D7

D8

D9

D10

D11

采集使能位

S6

S7

S8

S9

S10

S11

[图4] 模拟量输入接口电路参考

注意:

【1】ADC采样精度和通道数取决于单片机型号,具体请参考相应的单片机手册;

【2】ADC使用了“均值滤波”算法,所以ADC采集时会延长扫描周期和T定时器【 】精度;

【3】ADC通道会占用相应的I/O管脚,设计硬件时应避免管脚复用冲突;

4、模拟量输出DAC

【1】在PMW2HEX软件“模拟量功能设置”选项卡勾选要使用的DAC通道以激活【 】相应的模拟量输出功能,在梯形图中通过MOV等指令对相应的D寄存器赋值

【 】则相应的DAC通道就会按照特定的比率输出对应的电压;

【2】各个DAC通道与对应的D寄存器关系参考表5;

【3】模拟量输出接口电路参考图5;

模拟量通道

DAC0

DAC1

DAC2

DAC3

DAC4

DAC5

寄存器

D20

D21

D22

D23

D24

D25

备用

模拟量通道

DAC6

DAC7

寄存器

D26

D27

备用

[表5]

[图5] 模拟量输出接口电路参考

注意:

【1】DAC的精度和通道数取决于单片机的型号,具体请参考相应的单片机手册;

【2】DAC通道会占用相应的IO管脚,设计硬件时应避免管脚复用冲突;

5、串口通讯

【1】COM1支持ModBus RTU主站或从站协议,三菱FX1N编程口协议;

【2】COM2支持ModBus RTU主站或从站协议,基于ESP8266 AT指令集的ModBus

RTU从站协议;

【3】FX1N协议通讯参数:7 个数据位,1 个停止位,偶校验,最大连续地址 16

个,最高波特率 14400Bps,仅支持RS232或者RS422接口;

【4】ModBus RTU从站协议通讯参数:8个数据位,1 个停止位,无校验,最大连续地址12 个,最高波特率 57600Bps,支持RS232或者RS422以及RS485接口

【5】COM1和COM2(使用ESP8266时无效)波特率参数可以由D寄存器来配置,具体用法是在波特率设置输入框中直接输入用来配置波特率的D寄存器,比如D80,然后在梯形图中对D80赋值即可配置波特率参数。设定的数值与波特率对应关系见表6;

【6】ModBus RTU从站内存地址参考表7;

【7】ModBus RTU主站以及ESP8266通讯后续单独介绍此处暂略;

寄存器值

波特率

位元件

X0

X1

X2

X3

X4

X5

X6

X7

位元件

Y0

Y1

Y2

Y3

Y4

Y5

Y6

Y7

地址

0

1

2

3

4

5

6

7

地址

100

101

102

103

104

105

106

107

位元件

X10

X11

X12

X13

X14

X15

X16

X17

位元件

Y10

Y11

Y12

Y13

Y14

Y15

Y16

Y17

地址

8

9

10

11

12

13

14

15

地址

108

109

110

111

112

113

114

115

位元件

X20

X21

X22

X23

X24

X25

X26

X27

位元件

Y20

Y21

Y22

Y23

Y24

Y25

Y26

Y27

地址

16

17

18

19

20

21

22

23

地址

116

117

118

119

120

121

122

123

位元件

X30

X31

X32

X33

X34

X35

X36

X37

位元件

Y30

Y31

Y32

Y33

Y34

Y35

Y36

Y37

地址

24

25

26

27

28

29

30

31

地址

124

125

126

127

128

129

130

131

位元件

X40

X41

X42

X43

X44

X45

X46

X47

位元件

Y40

Y41

Y42

Y43

Y44

Y45

Y46

Y47

地址

32

33

34

35

36

37

38

39

地址

132

133

134

135

136

137

138

139

480

4800

960

9600

1920

19200

3840

38400

[表6]

5760

57600

11520

115200

其他(默认)

9600

位元件

M0~M696

S0~S495

C0~C255

T0~T255

地址

200~896

1000~1495

2000~2255

3000~3255

寄存器

D0~D1495

C0~C255

T0~T255

D4000~D8000

[表7]

地址

0~1495

2000~2255

3000~3255

4000~8000

注意:

【1】以上地址为10进制地址,位地址寻址用0x或1x,寄存器地址寻址用3x或4x;

【2】ModBus从站支持功能码:01H,02H,03H,04H,05H,06H,10H,0FH;

【3】ModBus从站时,广播站号为“255”此时单片机只接收命令并执行,但是不返

回数据;

【4】通讯命令帧间隔时间建议大于60mS,推荐为100mS,太快会导致MCU效率降低,亦会导致通讯不稳定;

【5】注意软件中“晶体频率”设置要与实际硬件中的晶振频率参数一致,否则将无法正常通讯;

【5】COM1占用单片机P3.0,P3.1管脚,COM2管脚参考设置软件,使用时请避免管脚冲突,通讯接口电路参考图6、图7;

[图6]RS485接口原理图参考

[图7]RS232接口原理图参考

6、高速脉冲输出

【1】PLSY/DPLSY不带加减速的脉冲输出指令,指令格式请参考FX1N编程手册;

【2】PLSR/DPLSR附带加减速功能的脉冲输出指令,加减速时间不得低于10mS,否

【 】则按照内部默认100mS加减速发送脉冲,发送过程中若中断发送指令,则减速【 】停机,指令格式请参考FX1N编程手册;

【3】脉冲发送只对Y0、Y1有效,最高可发送脉冲频率5KHz;

【4】Y0脉冲发送标志位S20(发送中ON,结束后OFF),已发送脉冲累计计数器

【 】C20(32位),使用指令【DMOV K0 C20】即可清空;

【5】Y1脉冲发送标志位S21(发送中ON,结束后OFF),已发送脉冲累计计数器

C22(32位),使用指令【DMOV K0 C22】即可清空;

7、高速脉冲输入

【1】当梯形图中出现【OUT C32 Kxx】指令形式时即开启高速计数功能,同时占用

C33、C34;

【2】脉冲输入管脚必须是单片机的P3.2/INT0管脚;

【3】计数模式:计数值存储于C32(32位),计数到达时C32(位元件)置ON,此

时计数停止,使用指令【ZRST C32 C33】即可复位并清零计数器,C32置ON

后要想重新计数必须先复位C32;

【4】测速模式:计数时输入脉冲的频率存储于C34中,而C34/10即为实际频率;

注意:

【1】计数时输入频率最高5KHz,超过5KHz可能丢失部分脉冲,测速时输入频率在

500Hz以内时精度较好;

8、SHT2x/3x温湿度传感器

【1】在PMW2HEX软件“温湿度传感器”选项卡型号栏选择SHT2x或者SHT3x,

设置传感器的SCL和SDA对应的I/O即可开启温度和空气相对湿度采集功能;

【2】温度值存储于D28,湿度值存储于D29,采样频率为2~4Hz,实际温度值为

D28/100,实际湿度值为D29/100;

【3】当传感器读取失败(如断线,损坏等)则对应的寄存器被写入数值20480;

【4】硬件接口请参考图8,相关技术文档和参数请参考SHT2x/3x官方PDF手册;

[图8]SHT2x/3x典型应用电路

9、DS18B20温度传感器

【1】在PMW2HEX软件“温湿度传感器”DS18B20选项卡DIO输入对应的I/O,即

可开启DS18B20温度采集功能;

【2】支持一个I/O最多同时驱动8路DS18B20,上电后所有的DS18B20将被初始

化,线上有效的DS18B20的数量被写入寄存器D30中,置ON S30亦可启动搜

索线上所有DS18B20(最多8个)搜索完毕后S30自动复位;

【3】置ON 一次S31则转换一次温度,转换完成后S31自动复位,8路DS18B20所

测得的温度被存放在寄存器D31~D38中,对应D寄存器值/10即为实际温度;

【4】硬件接口请参考图8,相关技术文档和参数请参考DS18B20官方PDF手册;

[图8] DS18B20接线参考

注意:

【1】过于频繁转换温度会明显影响定时器精度,建议通过M8013上升沿来驱动S31;

【2】更换DS18B20后,需要重新搜索线上的DS18B20,此时DS18B20对应的D寄存

】器位置可能发生变化,需要重新调整;

【3】尽管软件支持最多8路DS18B20,但是总线传感器数量越多线路的寄生电容就越

】大,容易导致传感器连接失败;

10、PID调节器

【1】在PMW2HEX软件勾选“启用PID功能”选项则启用PID算法;

【2】特殊位元件:S50置ON,则启动PID运算,S51置ON,则对积分结果上下限

】进行限制,S52为PID运算投入标志位,当SV-PV >= D58时S52置OFF,SV-

】PV <= D59时S52置ON;

【3】特殊寄存器:D50为SV设定值,D51为PV测量值/反馈值,D52为PID运算输

】出值,D53~D56分别为比例系数Kp、积分系数Ki、微分系数Kd、PID运算周

】期(单位为10mS),D57为PID输出上限,如12Bit的DAC输出上限应该为

】4095,又如变频器上限频率是50.00,则这里设置为5000,D58、D59分别为偏

】差最大值和最小值,在偏差范围内PID才会介入工作,否则按照D57或者0限

】制值进行输出;

注意:

【1】该算法为标准位置式PID,具体控制效果受限于诸多因素,故此不对控制效果做

】任何保证;

11、数码管驱动

【1】MAX7219驱动(共阴极数码管)

1有三种显示模式:I.六位一屏,II.八位一屏,III.四位两屏(规定低四位为第一□屏,高四位为第二屏);

2数值显示寄存器:D40,D41分别为第一屏和第二屏的显示数值,仅在六位/八□位一屏的模式时D40以32位模式(占用D41)控制数码管显示数值,均支持负数显示;

3模式控制寄存器:D42,0-八位一屏,1-六位一屏,2-四位两屏;

□4数点控制寄存器:D43,个位-第一屏,十位-第二屏;

□5修饰控制寄存器:D44(16进制)第一屏修饰符控制,D45(16进制)第二

□屏修饰符控制,高八位控制最高位数码管修饰符显示,低八位控制最低位的数码

管修饰符显示,超过18则显示“-”,可显示的修饰符请参考表8;

6屏幕显示控制位:S40第一屏显示控制,S41第二屏显示控制,置ON时熄

□灭,置OFF时点亮;

7MAX7219与单片机接口电路请参考图9,技术当请参考官方PDF文档;

【2】TM1638驱动(共阳极数码管)

1显示驱动兼容上述MAX7219全部功能;

□2亮度控制寄存器:D46,1~7级可调,数值越大,亮度越强,默认为4;

□3客制控制寄存器:D47-第一屏,D48第二屏,在对应的显示模式下当D47,□D48被设置为以下对应的数值时数码管将显示用户自定义的画面,8001-八位一屏,6001-六位一屏,2001-四位两屏第一屏,2002-四位两屏第二屏,客制控制在监控状态具有最高优先级,方便显示各类报警信息;

4客制画面寄存器:第一屏D63~D66,第二屏D67~D70,依次对应每一个数码□管,每个数码管显的内容都可以通过检索表9,将代码设置到对应数码管的D寄存器中进行控制,超过28则以28对应的显示符显示;

5位指示灯扩展:LED1~LED16分别对应S寄存器S32~S39,S56~S63,上电初始□化时这些LED将被全部点亮2~3秒以自检,LED和S寄存器的对应关系请对应图10并检索表10;

6按键输入扩展:KEY1~KEY24分别对应S寄存器S64~S71,S72~S79,□S80~S87,KEY和S寄存器的对应关系请对应图10并检索表11;

7TM1638与单片机接口电路请参考图10,相关参数请参考官方PDF文档;

【3】TM1638菜单功能

1菜单功能只在“LED数码管驱动”选项卡“模式”设置为“TM1638+MENU”□时生效;

3特殊寄存器:

□菜单名称控制寄存器:D71,D72,从菜单项序号有效数字位左起分别对应D72低八位,D72高八位,D71低八位,D71高八位,具体显示内容请检索表9,

将代码设置到对应的D寄存器中进行控制,数码管显示模式以及菜单长度会截取最终显示效果;

例如:数码管模式为III四位两屏时,第二屏不受菜单功能影响,第一屏在按下菜单键后进入菜单模式,假设菜单长度设定为9,D71=1011H,D72=1213H,此时第一屏数码管显示的菜单内容理论上是“AbCd00”,但是由于第一屏数码管在此模式下最多只能显示四位字符,所以实际显示的菜单内容是“Cd00”,又比如此时若菜单长度是100,那只能显示“d000”,“AbC”被舍弃。

菜单长度控制寄存器:D73,用于设置菜单数量,最多支持1000个菜单,菜单项000~999,在选定菜单项按下确认键进入菜单子级时如果菜单项超过了D73则数码管会显示最大菜单项,并产生整体闪烁效果予以警示;

菜单密码区控制寄存器:D74,高八位和低八位可以设置两个密码区寄存器,当用户访问的寄存器处在密码区时数码管会显示“----”以取代明文,通常用于密码输入的情景;

菜单地址监视寄存器:D75,本菜单功能操作的寄存器区是从D80开始的,即D75=80+菜单项序号,例如菜单显示“Pr01”时对应的D75应该是“81”,退出菜单状态时D75被清零;

2按键规划:

□菜单键S64,用于进入菜单和返回,按下时S42复位;

移位键S67,用于移动数码管闪烁光标以选择要更改的数码管;

上翻键S70,用于递加更改数码管显示数值,0~9循环,用于更改菜单项时D75相应改变;

下翻键S73,用于递减更改数码管显示数值,9~0循环,用于更改菜单项时D75相应改变;

确认键S76,用于使参数生效,按下确认键后如果设定值在当前输入上限D76设定以内时数据则生效,输入标志位S42置ON,D76,D77清零,同时跳转到下一个菜单项,如果超过上限则显示最大有效值,并产生整体闪烁效果予以警告,此时S42不会置ON,D76,D77不会清零,也不会自动跳入下一个菜单项;

子菜单输入值上限值:D76,子菜单允许输入的上限值,子菜单状态下按下设子菜单小数位数控制:D77,进入子菜单时显示数值的小数点位数,子菜单状置键时如果输入值未超过上限值,则D76被清零;

态下按下设置键时如果输入值未超过上限值,则D77被清零;

代码

00H

01H

02H

03H

04H

05H

代码

0

1

2

3

4

5

6

7

修饰符

A

b

C

d

E

代码

06H

07H

08H

09H

0AH

0BH

修饰符

F

H

L

n

N

o

代码

0CH

0DH

0EH

0FH

10H

11H

[表8]

修饰符

P

r

t

U

v

y

代码

12H

修饰符

-

显示符

0

1

2

3

4

5

6

7

代码

8

9

10

11

12

13

14

15

显示符

8

9

A

b

C

d

E

F

代码

16

17

18

19

20

21

22

23

[表9]

显示符

H

L

n

N

o

P

r

t

代码

24

25

26

27

28

显示符

U

u

y

-

null

LED序号

1

2

3

4

5

6

KEY序号

1

2

3

4

5

6

7

8

S寄存器

S32

S33

S34

S35

S36

S37

LED序号

7

8

9

10

11

12

S寄存器

S38

S39

S56

S57

S58

S59

[表10]

LED序号

13

14

15

16

S寄存器

S60

S61

S62

S63

S寄存器

S64

S65

S66

S67

S68

S69

S70

S71

KEY序号

9

10

11

12

13

14

15

16

S寄存器

S72

S73

S74

S75

S76

S77

S78

S79

[表11]

KEY序号

17

18

19

20

21

22

23

24

S寄存器

S80

S81

S82

S83

S84

S85

S86

S87

[图9] MAX7219数码管驱动接口电路参考

12、ESP8266(WIFI)驱动

【1】在PMW2HEX软件“COM2通讯设置”选项卡,将通讯方式设置为“ESP8266

【 】AP模式”或者“ESP8266 ST模式”即开启了ESP8266 WIFI功能;

【2】在单片机上电或S60置OFF的情况下,ESP8266模块被初始化,初始化完成后

【 】S60置ON,初始化成功后D60被写入“8808”,如果初始化失败,则D60为错误

【 】代码,初始化过程需要10~30秒的时间;

【3】ESP8266 AP模式为路由模式,此时模块对外发射WIFI热点信号,手机和平板可

【 】以通过无线网络接入连接,然后可以通过Tesla ModBus SCADA等其他手机组态

【 】进行联网控制;

【4】ESP8266 ST模式时模块将连接到已知的无线网络,比如家里的路由器,此时可通

【 】过同样连接在该网络的手机或平板对模块进行访问和联网控制,该模式时若模块

【 】的ID设置为0~4时,远程服务器和远程端口将被允许设置,如不需要连接远端

【 】服务器则将模块ID设置为“Null”即可;

注意:

【1】ESP8266模块启动须要3.3V/200mA以上的电流,请确保供电电源能够提供至少【 】500mA的供电电流,请注意普通USB-TTL转换线的电流是不够的,硬件电路请【 】参考图11;

【2】ESP8266模块建议选用安信可(AI-THINK)或者乐鑫官方原装ESP-01模块,固【 】件版本须兼容乐鑫标准AT指令;

【3】建议使用ESP8266透传模块+ModBus RTU TCP来实现组网通讯,如需ESP8266

【 】透传模块可到网店选购,本模块支持Web配网功能

【 】使用比较灵活方便;

【4】通讯命令帧间隔时间建议大于60mS,推荐设定为100mS,太快易导致通讯不稳定;

[图11] ESP8266接口电路参考

13、ModBus RTU主站

【1】读从站指令格式:【FROM M N P Q】

】参数M:高八位设置通讯端口,1-COM1,2-COM2,默认为COM1,低八位】 【 】为从机站号;

】参数N:读从机寄存器地址;

】参数P:读回数据存储装置;

】参数Q:高八位仅为0xFF时,读取从机寄存器的地址为D[N]的内容(即变址),】 低八位为连续读取从机寄存器的数量,默认为1,最多2个;

【2】写从站指令格式:【TO M N P Q】

】参数M:高八位设置通讯端口,1-COM1,2-COM2,默认为COM1,低八位】 为从机站号;

】参数N:写从机寄存器地址;

】参数P:写出数据存储装置;

】参数Q:高八位仅为0xFF时,写入从机寄存器的地址为D[N]的内容(即变址),】 低八位为连续写入从机寄存器的数量,默认为1,最多2个;

【3】ModBus主站通讯无需客户用梯形图写“轮询”程序只需将要执行的FROM/TO】指令从上至下依次编写在梯形图,单片机内部会自动根据情况进行轮流执行。轮】询间隔时间由D61设置,单位10mS,推荐设置为10,即100mS,D62会依次将】通讯响应超时的FROM/TO指令行号显示出来;

14、其他事项

【1】晶体频率:推荐22.1184MHz,如果使用单片机内置的IRC振荡器则下载软件的】IRC频率一定要与转换软件的晶体频率参数保持一致,否则可能导致通讯失败;

【2】时间修正:用来校准T20以后的100mS定时器定时精度,数值越大定时长度越滞】后,因为通讯,ADC,DS18B20等都会导致定时器滞后,所以在程序编制好后如】果时间“精度”不能满足要求可适当进行设置,一般推荐400~2400之间。该参数】不会影响T0~T19 10mS定时器工作;

【3】滤波系数:可设置为0~7,为X输入的滤波参数,数值越大,滤波特性越好,抗】干扰能力也越好,但X输入响应速度会变慢。该参数对高速脉冲输入不起作用;

【4】Yn输出高电平有效:用于需要高电平输出驱动的场合,此时单片机对应的I/O

】需要上拉电阻,为了提高驱动能力还需要设计缓冲器,所以不推荐使用该选项;

【5】STC免断电下载:该选项用于在使用ISP软件下载程序时自动冷启动单片机,以

免手动重新给单片机上电导致下载过程繁琐。对于新单片机,必须先使用本功能手动下载一次程序后该功能才会生效,如果冷启动总是不成功请尝试降低下载软件的“最高波特率”,另外由于软件内部使用的看门狗定时技术,在免断电下载程序后单片机内存中的数据会依然存在,这可能会导致运行异常,此时请给单片机彻底断电并重新上电;

【6】工程备份:该选项被勾选时,当成功转换一次PMW,软件都会自动将PMW和对应的HEX加以时间标志备份至软件目录下的Project目录中;

【7】信息输出框:通过该输出框可以获取软件版本号、支持软元件、支持指令、转换结果输出等信息,这里主要介绍下转换结果输出如图12所示:

[图12]信息输出窗口

其中DATA与XDATA之和(单位Byte)是指当前占用单片机的SRAM(内存)大小,CODE是指当前程序消耗单片机FLASH的空间大小(单位Byte),以上两个参数都必须在单片机硬件参数指标以内,否则可能出现意外情况;

WARNING(S)、ERROR(S)分别是警告信息和错误信息,一般警告信息可以忽略,但是错误信息说明转换不成功,此时请检查梯形图编程和软件参数设置是否符合约定,必要时请将该窗口信息截图发给我以排查Bug;

七、写在最后

该手册作者花了很多精力和时间去编写和完善,虽然很想做到尽善尽美但却无奈精力和时间有限,错误和Bug总是再所难免,也或许更是有些内容讲的不清不楚,但是有参考总比没有参考好吧!同时烦请各位用户使用软件时有不明白的地方尽可能多看看手册,遇到问题搞不明白时,请先把手册仔细看2~3遍,还是搞不定那你再给我旺旺上留言我尽快回复,谢谢合作!

八、软件购买

【1】淘宝店:

【2】微信号:524783742

2024年2月15日发(作者:战兰娜)

PMW2HEX软件用户手册

版本:V5.6.0

一、软件简介

本软件是将三菱FX1N PLC PMW梯形图转换为51单片机HEX文件的转换工具,该软件可以让你快速、简单、高效的应用单片机开发自动化控制程序,让不精通单片机的工程师也可以像“玩”PLC一样“玩转”51单片机。

二、特色功能

1、模拟量功能

【1】支持最多12路12Bit精度模拟量输入;

【2】支持最多8路15Bit精度模拟量(PWM)输出;

2、数码管驱动

【1】MAX7219数码管显示驱动;

【2】TM1638数码管显示驱动,支持亮度参数控制;

【3】TM1638数码管显示驱动以及菜单控制功能;

3、温湿度传感器驱动

【1】SHT2x(如SHT20、SHT21)温度和相对湿度采集;

【2】SHT3x(如SHT30、SHT31)温度和相对湿度采集;

【3】单总线8路DS18B20温度采集;

4、双串口通讯

【1】COM1 – FX1N通讯协议;

【2】COM1 – ModBus RTU从站协议;

【3】COM1 – ModBus RTU主站协议;

【4】COM1 – 基于ModBus RTU的TCP/IP协议;

【5】COM2 - ModBus RTU从站协议;

【6】COM2 – ModBus RTU主站协议;

【7】COM2 – 基于ModBus RTU的TCP/IP协议;

【8】COM2 – 基于ESP8266标准AT指令AP模式的ModBus RTU TCP/IP协议;

【9】COM2 – 基于ESP8266标准AT指令STA模式的ModBus RTU TCP/IP协议;

5、数据掉电存储

【1】基于STC单片机片上Flash EEPROM的数据存储,支持D,C,M元件;

【2】基于AT24Cxx/FM24Cxx系列EEPROM芯片的数据存储;

6、其他功能

【1】STC单片机免断电下载,下载时再无需手动断电,方便调试程序;

【2】PID运算,内置位置式PID算法,可轻松实现恒温,恒湿,恒压等PID控制;

注意:

【1】以上部分功能需要对应的软件版本支持;

【2】以上部分功能可能需要付费开通,请以实际为准;

【3】以上部分功能需要芯片和硬件支持,请根据需要的功能选择合适型号的单片机;

三、系统要求

【1】单片机基本选型:RAM(内存)>=1024B,ROM(程序空间)>=5KB;

【2】单片机推荐选型:RAM>=1280,ROM>=48KB,表1列出了推荐的单片机型号;

【3】晶振选型:建议选择11.0592M,12M,22.1184M,推荐使用22.1184M的晶振;

【4】掉电检测:如使用STC片上EEPROM保存数据,可能需要硬件检测电路支持;

STC8系列

STC8A8K64S4A12

STC8A8K60S4A12

STC8A8K32S4A12

STC8A4K64S2A12

STC8A4K60S2A12

STC8A4K32S2A12

STC8F8K64S4A12

STC8F8K32S4A12

STC8F2K64S4

STC8F2K60S4

STC8F2K32S4

STC15W系列

IRC15W4K63S4

IAP15W4K61S4

IAP15W4K58S4

STC15W4K56S4

STC15W4K48S4

STC15W4K40S4

STC15W4K32S4

IAP15W1K29S

IRC15W1K31S

STC15F系列

IRC15F2K63S2

IRC15F2K61S2

STC15F2K60S2

STC15F2K56S2

STC15F2K48S2

STC15F2K40S2

STC15F2K32S2

[表1]

注意:

【1】表1所列出的单片机只是推荐型号,不代表本软件只支持这些型号的单片机;

【2】未确认的型号在不使用模拟量、COM2、内部EEPROM等功能时基本兼容,但

是不做保证;

【3】关于掉电检测请参考后续相关章节的详细介绍,此处暂略;

STC12C系列

STC12C5A60S2

STC12C5A56S2

STC12C5A52S2

STC12C5A48S2

STC12C5A40S2

STC12C5A32S2

STC8H1K64S2A10

STC8H1K32S2A10

四、指令系统

【1】基本指令:LD LDI AND ANI OR ORI LDP LDF ANDP ANDF ORP ORF SET

RST MPS MPP MRD ANB ORB OUT INV PLS PLF MC MCR NOP END

【2】功能指令:ALT ZRST [D]PLSY [D]PLSR [D]MOV[P] [D]INC[P] [D]DEC[P]

[D]ADD[P] [D]SUB[P] [D]MUL[P] [D]DIV[P] LD[D]= LD[D]> FROM[P] TO[P]

AND= AND> OR= OR>

【3】指令格式:KnMn、KnSn、KnXn、KnYn(建议元件连续个数不要超过16个)

注意:

【1】以上指令带[D]或[P]参数表示:对应的指令支持D(32位指令)或P指令;

【2】P指令有次数限制,建议不要超过40次,请节制使用;

五、元件范围

【1】可用软元件范围受单片机RAM大小的约束,具体请参考表2、表3;

RAM

元件

X-输入点

Y-输出点

M-继电器

S-继电器

T-定时器

C-计数器

D-寄存器

8192B 4096B 2048B

X0~X47最多可设置40点,具体可用点数受限于所选芯片IO点数

Y0~Y47最多可设置40点,具体可用点数受限于所选芯片IO点数

M0~M695

保持用M96~M223

S0~S495

10mS定时器T0~T19

100mS定时器T20~T255

C0~C255

保持用C32~C95

D0~D1496

保持用D72~D199

M0~M695

保持用M96~M223

S0~S495

10mS定时器T0~T19

100mS定时器T20~T207

C0~C255

保持用C32~C95

D0~D1055

保持用D72~D199

[表2]

M0~M511

保持用M96~M223

S0~S87

10mS定时器T0~T19

100mS定时器T20~T127

C0~127

保持用C32~C95

D0~D335

保持用D72~D135

RAM

元件

X-输入点

Y-输出点

M-继电器

S-继电器

T-定时器

C-计数器

D-寄存器

1024B 备用 备用

X0~X47最多可设置40点,具体可用点数受限于所选芯片IO点数

Y0~Y47最多可设置40点,具体可用点数受限于所选芯片IO点数

M0~M255

保持用M96~M159

S0~S87

10mS定时器T0~T19

100mS定时器T20~T95

C0~C47

保持用C32~C47

D0~D95

保持用D72~D95

[表3]

注意:

【1】特殊用M8000,M8001,M8011(10mS时钟),M8012(100mS时钟),M8013

(1S时钟),M8014(1min时钟);

【2】根据用户的设置实际上可使用的软元件数量会实时变化,具体请以日志信息窗口

中的可使用软元件范围为准;

【2】未使用的S可当M使用,未使用的C可当D使用;

【3】以上保持用软元件需要勾选“使用STC内部EEPROM”选项;

【4】T定时器精度会不同程度的受到程序扫描周期和通讯速率的影响,故定时精度不可过于依赖;

【5】外置数据存储器D4000~D8000最多3999点,受限于所选用的外置AT24Cxx存储芯片容量;

【6】特殊用软元件请参阅各个功能模块介绍,此处暂略;

六、转换流程

【1】打开三菱编程软件GX Developer,创建新工程,PLC系列选择FXCPU,PLC类

型选择FX1N,其他保持默认设,然后进行梯形图编程,最后将梯形图写出为

FXGP(WIN)格式,输出.PMW文件;

【2】打开PMW2HEX软件,设置参数(X/Y映射、MCU参数、晶振参数等),也可

执行“设置”>>“导入”操作,选择CFG文件快速导入设置;

【3】执行“打开”命令,打开步骤1中保存的.PMW文件,耐心等待转换结束;

【4】转换结束后软件弹出转换结果窗口,查看日志信息输出框中的提示信息,确认转

换是否成功;

【5】执行“下载”命令,打开单片机HEX烧录工具STC-ISP,进行下载,观察运行

结果是否正确;

七、功能说明

1、掉电保持

【1】如果需要掉电保持功能,则在“掉电存储方式”选项卡选择“使用STC内部

EEPROM”选项;

【2】类似于STC12C5xx系列使用外部掉电检测引脚LVD触发掉电中断的单片机,必

须设计掉电检测电路拉高LVD管脚,掉电一瞬间拉低LVD进行存储数据,掉电检测电路参考图1;

【3】类似于STC8xx,IAP15W系列自带内部低压检测中断的单片机,无需设计掉电

检测电路,但是在使用STC-ISP烧录HEX时请一定取消【允许低压复位(禁止

低压中断)】选框,同时取消【低压时禁止EEPROM操作】选框,低压检测电

压选项选择最邻近电源的那一个电压等级,以提升掉电检测灵敏度,并保证储能

电容>1000uF;

【4】对于EEPROM和程序存储区复用的单片机(如IAP系列)还需要设置合适的

EEPROM偏移地址,即在“EEPROM Addr”选项设置未使用的Flash起始地址用于掉电存储,该地址确认方式如图2所示;

[图1]掉电检测电路参考

[图2] EEPROM Addr地址的确认

2、EEPROM存储器

【1】在软件“掉电存储方式”选项卡选择“外置AT/FM24Cxx数据存储器”选项,并正确设置SCL和SDA对应的管脚后,在梯形图中访问D4000~D8000即可对外置存储器进行读写操作,但是请注意,读写操作会导致扫描周期变长,串口通讯受阻,而且AT系列也有写操作寿命,所以应避免在梯形图中频繁的对这些寄存器进行读写操作;

【2】AT24Cxx接口电路参考图3;

[图3]AT24Cxx接口电路参考

3、模拟量采集ADC

【1】在PMW2HEX软件“模拟量功能设置”选项卡勾选要使用的ADC通道以激活

相应的模拟量采集功能,在梯形图中将对应ADC通道的采集使能位S置ON,

则该ADC通道的模拟量采集被开启,结果被存放在指定的D寄存器中;

【2】各个ADC通道对应的使能位S和D寄存器关系参考表4;

【3】模拟量输入接口电路参考图4;

模拟量通道

ADC0

ADC1

ADC2

ADC3

ADC4

ADC5

寄存器

D0

D1

D2

D3

D4

D5

采集使能位 模拟量通道

S0

S1

S2

S3

S4

S5

ADC6

ADC7

ADC8

ADC9

ADC10

ADC11

[表4]

寄存器

D6

D7

D8

D9

D10

D11

采集使能位

S6

S7

S8

S9

S10

S11

[图4] 模拟量输入接口电路参考

注意:

【1】ADC采样精度和通道数取决于单片机型号,具体请参考相应的单片机手册;

【2】ADC使用了“均值滤波”算法,所以ADC采集时会延长扫描周期和T定时器【 】精度;

【3】ADC通道会占用相应的I/O管脚,设计硬件时应避免管脚复用冲突;

4、模拟量输出DAC

【1】在PMW2HEX软件“模拟量功能设置”选项卡勾选要使用的DAC通道以激活【 】相应的模拟量输出功能,在梯形图中通过MOV等指令对相应的D寄存器赋值

【 】则相应的DAC通道就会按照特定的比率输出对应的电压;

【2】各个DAC通道与对应的D寄存器关系参考表5;

【3】模拟量输出接口电路参考图5;

模拟量通道

DAC0

DAC1

DAC2

DAC3

DAC4

DAC5

寄存器

D20

D21

D22

D23

D24

D25

备用

模拟量通道

DAC6

DAC7

寄存器

D26

D27

备用

[表5]

[图5] 模拟量输出接口电路参考

注意:

【1】DAC的精度和通道数取决于单片机的型号,具体请参考相应的单片机手册;

【2】DAC通道会占用相应的IO管脚,设计硬件时应避免管脚复用冲突;

5、串口通讯

【1】COM1支持ModBus RTU主站或从站协议,三菱FX1N编程口协议;

【2】COM2支持ModBus RTU主站或从站协议,基于ESP8266 AT指令集的ModBus

RTU从站协议;

【3】FX1N协议通讯参数:7 个数据位,1 个停止位,偶校验,最大连续地址 16

个,最高波特率 14400Bps,仅支持RS232或者RS422接口;

【4】ModBus RTU从站协议通讯参数:8个数据位,1 个停止位,无校验,最大连续地址12 个,最高波特率 57600Bps,支持RS232或者RS422以及RS485接口

【5】COM1和COM2(使用ESP8266时无效)波特率参数可以由D寄存器来配置,具体用法是在波特率设置输入框中直接输入用来配置波特率的D寄存器,比如D80,然后在梯形图中对D80赋值即可配置波特率参数。设定的数值与波特率对应关系见表6;

【6】ModBus RTU从站内存地址参考表7;

【7】ModBus RTU主站以及ESP8266通讯后续单独介绍此处暂略;

寄存器值

波特率

位元件

X0

X1

X2

X3

X4

X5

X6

X7

位元件

Y0

Y1

Y2

Y3

Y4

Y5

Y6

Y7

地址

0

1

2

3

4

5

6

7

地址

100

101

102

103

104

105

106

107

位元件

X10

X11

X12

X13

X14

X15

X16

X17

位元件

Y10

Y11

Y12

Y13

Y14

Y15

Y16

Y17

地址

8

9

10

11

12

13

14

15

地址

108

109

110

111

112

113

114

115

位元件

X20

X21

X22

X23

X24

X25

X26

X27

位元件

Y20

Y21

Y22

Y23

Y24

Y25

Y26

Y27

地址

16

17

18

19

20

21

22

23

地址

116

117

118

119

120

121

122

123

位元件

X30

X31

X32

X33

X34

X35

X36

X37

位元件

Y30

Y31

Y32

Y33

Y34

Y35

Y36

Y37

地址

24

25

26

27

28

29

30

31

地址

124

125

126

127

128

129

130

131

位元件

X40

X41

X42

X43

X44

X45

X46

X47

位元件

Y40

Y41

Y42

Y43

Y44

Y45

Y46

Y47

地址

32

33

34

35

36

37

38

39

地址

132

133

134

135

136

137

138

139

480

4800

960

9600

1920

19200

3840

38400

[表6]

5760

57600

11520

115200

其他(默认)

9600

位元件

M0~M696

S0~S495

C0~C255

T0~T255

地址

200~896

1000~1495

2000~2255

3000~3255

寄存器

D0~D1495

C0~C255

T0~T255

D4000~D8000

[表7]

地址

0~1495

2000~2255

3000~3255

4000~8000

注意:

【1】以上地址为10进制地址,位地址寻址用0x或1x,寄存器地址寻址用3x或4x;

【2】ModBus从站支持功能码:01H,02H,03H,04H,05H,06H,10H,0FH;

【3】ModBus从站时,广播站号为“255”此时单片机只接收命令并执行,但是不返

回数据;

【4】通讯命令帧间隔时间建议大于60mS,推荐为100mS,太快会导致MCU效率降低,亦会导致通讯不稳定;

【5】注意软件中“晶体频率”设置要与实际硬件中的晶振频率参数一致,否则将无法正常通讯;

【5】COM1占用单片机P3.0,P3.1管脚,COM2管脚参考设置软件,使用时请避免管脚冲突,通讯接口电路参考图6、图7;

[图6]RS485接口原理图参考

[图7]RS232接口原理图参考

6、高速脉冲输出

【1】PLSY/DPLSY不带加减速的脉冲输出指令,指令格式请参考FX1N编程手册;

【2】PLSR/DPLSR附带加减速功能的脉冲输出指令,加减速时间不得低于10mS,否

【 】则按照内部默认100mS加减速发送脉冲,发送过程中若中断发送指令,则减速【 】停机,指令格式请参考FX1N编程手册;

【3】脉冲发送只对Y0、Y1有效,最高可发送脉冲频率5KHz;

【4】Y0脉冲发送标志位S20(发送中ON,结束后OFF),已发送脉冲累计计数器

【 】C20(32位),使用指令【DMOV K0 C20】即可清空;

【5】Y1脉冲发送标志位S21(发送中ON,结束后OFF),已发送脉冲累计计数器

C22(32位),使用指令【DMOV K0 C22】即可清空;

7、高速脉冲输入

【1】当梯形图中出现【OUT C32 Kxx】指令形式时即开启高速计数功能,同时占用

C33、C34;

【2】脉冲输入管脚必须是单片机的P3.2/INT0管脚;

【3】计数模式:计数值存储于C32(32位),计数到达时C32(位元件)置ON,此

时计数停止,使用指令【ZRST C32 C33】即可复位并清零计数器,C32置ON

后要想重新计数必须先复位C32;

【4】测速模式:计数时输入脉冲的频率存储于C34中,而C34/10即为实际频率;

注意:

【1】计数时输入频率最高5KHz,超过5KHz可能丢失部分脉冲,测速时输入频率在

500Hz以内时精度较好;

8、SHT2x/3x温湿度传感器

【1】在PMW2HEX软件“温湿度传感器”选项卡型号栏选择SHT2x或者SHT3x,

设置传感器的SCL和SDA对应的I/O即可开启温度和空气相对湿度采集功能;

【2】温度值存储于D28,湿度值存储于D29,采样频率为2~4Hz,实际温度值为

D28/100,实际湿度值为D29/100;

【3】当传感器读取失败(如断线,损坏等)则对应的寄存器被写入数值20480;

【4】硬件接口请参考图8,相关技术文档和参数请参考SHT2x/3x官方PDF手册;

[图8]SHT2x/3x典型应用电路

9、DS18B20温度传感器

【1】在PMW2HEX软件“温湿度传感器”DS18B20选项卡DIO输入对应的I/O,即

可开启DS18B20温度采集功能;

【2】支持一个I/O最多同时驱动8路DS18B20,上电后所有的DS18B20将被初始

化,线上有效的DS18B20的数量被写入寄存器D30中,置ON S30亦可启动搜

索线上所有DS18B20(最多8个)搜索完毕后S30自动复位;

【3】置ON 一次S31则转换一次温度,转换完成后S31自动复位,8路DS18B20所

测得的温度被存放在寄存器D31~D38中,对应D寄存器值/10即为实际温度;

【4】硬件接口请参考图8,相关技术文档和参数请参考DS18B20官方PDF手册;

[图8] DS18B20接线参考

注意:

【1】过于频繁转换温度会明显影响定时器精度,建议通过M8013上升沿来驱动S31;

【2】更换DS18B20后,需要重新搜索线上的DS18B20,此时DS18B20对应的D寄存

】器位置可能发生变化,需要重新调整;

【3】尽管软件支持最多8路DS18B20,但是总线传感器数量越多线路的寄生电容就越

】大,容易导致传感器连接失败;

10、PID调节器

【1】在PMW2HEX软件勾选“启用PID功能”选项则启用PID算法;

【2】特殊位元件:S50置ON,则启动PID运算,S51置ON,则对积分结果上下限

】进行限制,S52为PID运算投入标志位,当SV-PV >= D58时S52置OFF,SV-

】PV <= D59时S52置ON;

【3】特殊寄存器:D50为SV设定值,D51为PV测量值/反馈值,D52为PID运算输

】出值,D53~D56分别为比例系数Kp、积分系数Ki、微分系数Kd、PID运算周

】期(单位为10mS),D57为PID输出上限,如12Bit的DAC输出上限应该为

】4095,又如变频器上限频率是50.00,则这里设置为5000,D58、D59分别为偏

】差最大值和最小值,在偏差范围内PID才会介入工作,否则按照D57或者0限

】制值进行输出;

注意:

【1】该算法为标准位置式PID,具体控制效果受限于诸多因素,故此不对控制效果做

】任何保证;

11、数码管驱动

【1】MAX7219驱动(共阴极数码管)

1有三种显示模式:I.六位一屏,II.八位一屏,III.四位两屏(规定低四位为第一□屏,高四位为第二屏);

2数值显示寄存器:D40,D41分别为第一屏和第二屏的显示数值,仅在六位/八□位一屏的模式时D40以32位模式(占用D41)控制数码管显示数值,均支持负数显示;

3模式控制寄存器:D42,0-八位一屏,1-六位一屏,2-四位两屏;

□4数点控制寄存器:D43,个位-第一屏,十位-第二屏;

□5修饰控制寄存器:D44(16进制)第一屏修饰符控制,D45(16进制)第二

□屏修饰符控制,高八位控制最高位数码管修饰符显示,低八位控制最低位的数码

管修饰符显示,超过18则显示“-”,可显示的修饰符请参考表8;

6屏幕显示控制位:S40第一屏显示控制,S41第二屏显示控制,置ON时熄

□灭,置OFF时点亮;

7MAX7219与单片机接口电路请参考图9,技术当请参考官方PDF文档;

【2】TM1638驱动(共阳极数码管)

1显示驱动兼容上述MAX7219全部功能;

□2亮度控制寄存器:D46,1~7级可调,数值越大,亮度越强,默认为4;

□3客制控制寄存器:D47-第一屏,D48第二屏,在对应的显示模式下当D47,□D48被设置为以下对应的数值时数码管将显示用户自定义的画面,8001-八位一屏,6001-六位一屏,2001-四位两屏第一屏,2002-四位两屏第二屏,客制控制在监控状态具有最高优先级,方便显示各类报警信息;

4客制画面寄存器:第一屏D63~D66,第二屏D67~D70,依次对应每一个数码□管,每个数码管显的内容都可以通过检索表9,将代码设置到对应数码管的D寄存器中进行控制,超过28则以28对应的显示符显示;

5位指示灯扩展:LED1~LED16分别对应S寄存器S32~S39,S56~S63,上电初始□化时这些LED将被全部点亮2~3秒以自检,LED和S寄存器的对应关系请对应图10并检索表10;

6按键输入扩展:KEY1~KEY24分别对应S寄存器S64~S71,S72~S79,□S80~S87,KEY和S寄存器的对应关系请对应图10并检索表11;

7TM1638与单片机接口电路请参考图10,相关参数请参考官方PDF文档;

【3】TM1638菜单功能

1菜单功能只在“LED数码管驱动”选项卡“模式”设置为“TM1638+MENU”□时生效;

3特殊寄存器:

□菜单名称控制寄存器:D71,D72,从菜单项序号有效数字位左起分别对应D72低八位,D72高八位,D71低八位,D71高八位,具体显示内容请检索表9,

将代码设置到对应的D寄存器中进行控制,数码管显示模式以及菜单长度会截取最终显示效果;

例如:数码管模式为III四位两屏时,第二屏不受菜单功能影响,第一屏在按下菜单键后进入菜单模式,假设菜单长度设定为9,D71=1011H,D72=1213H,此时第一屏数码管显示的菜单内容理论上是“AbCd00”,但是由于第一屏数码管在此模式下最多只能显示四位字符,所以实际显示的菜单内容是“Cd00”,又比如此时若菜单长度是100,那只能显示“d000”,“AbC”被舍弃。

菜单长度控制寄存器:D73,用于设置菜单数量,最多支持1000个菜单,菜单项000~999,在选定菜单项按下确认键进入菜单子级时如果菜单项超过了D73则数码管会显示最大菜单项,并产生整体闪烁效果予以警示;

菜单密码区控制寄存器:D74,高八位和低八位可以设置两个密码区寄存器,当用户访问的寄存器处在密码区时数码管会显示“----”以取代明文,通常用于密码输入的情景;

菜单地址监视寄存器:D75,本菜单功能操作的寄存器区是从D80开始的,即D75=80+菜单项序号,例如菜单显示“Pr01”时对应的D75应该是“81”,退出菜单状态时D75被清零;

2按键规划:

□菜单键S64,用于进入菜单和返回,按下时S42复位;

移位键S67,用于移动数码管闪烁光标以选择要更改的数码管;

上翻键S70,用于递加更改数码管显示数值,0~9循环,用于更改菜单项时D75相应改变;

下翻键S73,用于递减更改数码管显示数值,9~0循环,用于更改菜单项时D75相应改变;

确认键S76,用于使参数生效,按下确认键后如果设定值在当前输入上限D76设定以内时数据则生效,输入标志位S42置ON,D76,D77清零,同时跳转到下一个菜单项,如果超过上限则显示最大有效值,并产生整体闪烁效果予以警告,此时S42不会置ON,D76,D77不会清零,也不会自动跳入下一个菜单项;

子菜单输入值上限值:D76,子菜单允许输入的上限值,子菜单状态下按下设子菜单小数位数控制:D77,进入子菜单时显示数值的小数点位数,子菜单状置键时如果输入值未超过上限值,则D76被清零;

态下按下设置键时如果输入值未超过上限值,则D77被清零;

代码

00H

01H

02H

03H

04H

05H

代码

0

1

2

3

4

5

6

7

修饰符

A

b

C

d

E

代码

06H

07H

08H

09H

0AH

0BH

修饰符

F

H

L

n

N

o

代码

0CH

0DH

0EH

0FH

10H

11H

[表8]

修饰符

P

r

t

U

v

y

代码

12H

修饰符

-

显示符

0

1

2

3

4

5

6

7

代码

8

9

10

11

12

13

14

15

显示符

8

9

A

b

C

d

E

F

代码

16

17

18

19

20

21

22

23

[表9]

显示符

H

L

n

N

o

P

r

t

代码

24

25

26

27

28

显示符

U

u

y

-

null

LED序号

1

2

3

4

5

6

KEY序号

1

2

3

4

5

6

7

8

S寄存器

S32

S33

S34

S35

S36

S37

LED序号

7

8

9

10

11

12

S寄存器

S38

S39

S56

S57

S58

S59

[表10]

LED序号

13

14

15

16

S寄存器

S60

S61

S62

S63

S寄存器

S64

S65

S66

S67

S68

S69

S70

S71

KEY序号

9

10

11

12

13

14

15

16

S寄存器

S72

S73

S74

S75

S76

S77

S78

S79

[表11]

KEY序号

17

18

19

20

21

22

23

24

S寄存器

S80

S81

S82

S83

S84

S85

S86

S87

[图9] MAX7219数码管驱动接口电路参考

12、ESP8266(WIFI)驱动

【1】在PMW2HEX软件“COM2通讯设置”选项卡,将通讯方式设置为“ESP8266

【 】AP模式”或者“ESP8266 ST模式”即开启了ESP8266 WIFI功能;

【2】在单片机上电或S60置OFF的情况下,ESP8266模块被初始化,初始化完成后

【 】S60置ON,初始化成功后D60被写入“8808”,如果初始化失败,则D60为错误

【 】代码,初始化过程需要10~30秒的时间;

【3】ESP8266 AP模式为路由模式,此时模块对外发射WIFI热点信号,手机和平板可

【 】以通过无线网络接入连接,然后可以通过Tesla ModBus SCADA等其他手机组态

【 】进行联网控制;

【4】ESP8266 ST模式时模块将连接到已知的无线网络,比如家里的路由器,此时可通

【 】过同样连接在该网络的手机或平板对模块进行访问和联网控制,该模式时若模块

【 】的ID设置为0~4时,远程服务器和远程端口将被允许设置,如不需要连接远端

【 】服务器则将模块ID设置为“Null”即可;

注意:

【1】ESP8266模块启动须要3.3V/200mA以上的电流,请确保供电电源能够提供至少【 】500mA的供电电流,请注意普通USB-TTL转换线的电流是不够的,硬件电路请【 】参考图11;

【2】ESP8266模块建议选用安信可(AI-THINK)或者乐鑫官方原装ESP-01模块,固【 】件版本须兼容乐鑫标准AT指令;

【3】建议使用ESP8266透传模块+ModBus RTU TCP来实现组网通讯,如需ESP8266

【 】透传模块可到网店选购,本模块支持Web配网功能

【 】使用比较灵活方便;

【4】通讯命令帧间隔时间建议大于60mS,推荐设定为100mS,太快易导致通讯不稳定;

[图11] ESP8266接口电路参考

13、ModBus RTU主站

【1】读从站指令格式:【FROM M N P Q】

】参数M:高八位设置通讯端口,1-COM1,2-COM2,默认为COM1,低八位】 【 】为从机站号;

】参数N:读从机寄存器地址;

】参数P:读回数据存储装置;

】参数Q:高八位仅为0xFF时,读取从机寄存器的地址为D[N]的内容(即变址),】 低八位为连续读取从机寄存器的数量,默认为1,最多2个;

【2】写从站指令格式:【TO M N P Q】

】参数M:高八位设置通讯端口,1-COM1,2-COM2,默认为COM1,低八位】 为从机站号;

】参数N:写从机寄存器地址;

】参数P:写出数据存储装置;

】参数Q:高八位仅为0xFF时,写入从机寄存器的地址为D[N]的内容(即变址),】 低八位为连续写入从机寄存器的数量,默认为1,最多2个;

【3】ModBus主站通讯无需客户用梯形图写“轮询”程序只需将要执行的FROM/TO】指令从上至下依次编写在梯形图,单片机内部会自动根据情况进行轮流执行。轮】询间隔时间由D61设置,单位10mS,推荐设置为10,即100mS,D62会依次将】通讯响应超时的FROM/TO指令行号显示出来;

14、其他事项

【1】晶体频率:推荐22.1184MHz,如果使用单片机内置的IRC振荡器则下载软件的】IRC频率一定要与转换软件的晶体频率参数保持一致,否则可能导致通讯失败;

【2】时间修正:用来校准T20以后的100mS定时器定时精度,数值越大定时长度越滞】后,因为通讯,ADC,DS18B20等都会导致定时器滞后,所以在程序编制好后如】果时间“精度”不能满足要求可适当进行设置,一般推荐400~2400之间。该参数】不会影响T0~T19 10mS定时器工作;

【3】滤波系数:可设置为0~7,为X输入的滤波参数,数值越大,滤波特性越好,抗】干扰能力也越好,但X输入响应速度会变慢。该参数对高速脉冲输入不起作用;

【4】Yn输出高电平有效:用于需要高电平输出驱动的场合,此时单片机对应的I/O

】需要上拉电阻,为了提高驱动能力还需要设计缓冲器,所以不推荐使用该选项;

【5】STC免断电下载:该选项用于在使用ISP软件下载程序时自动冷启动单片机,以

免手动重新给单片机上电导致下载过程繁琐。对于新单片机,必须先使用本功能手动下载一次程序后该功能才会生效,如果冷启动总是不成功请尝试降低下载软件的“最高波特率”,另外由于软件内部使用的看门狗定时技术,在免断电下载程序后单片机内存中的数据会依然存在,这可能会导致运行异常,此时请给单片机彻底断电并重新上电;

【6】工程备份:该选项被勾选时,当成功转换一次PMW,软件都会自动将PMW和对应的HEX加以时间标志备份至软件目录下的Project目录中;

【7】信息输出框:通过该输出框可以获取软件版本号、支持软元件、支持指令、转换结果输出等信息,这里主要介绍下转换结果输出如图12所示:

[图12]信息输出窗口

其中DATA与XDATA之和(单位Byte)是指当前占用单片机的SRAM(内存)大小,CODE是指当前程序消耗单片机FLASH的空间大小(单位Byte),以上两个参数都必须在单片机硬件参数指标以内,否则可能出现意外情况;

WARNING(S)、ERROR(S)分别是警告信息和错误信息,一般警告信息可以忽略,但是错误信息说明转换不成功,此时请检查梯形图编程和软件参数设置是否符合约定,必要时请将该窗口信息截图发给我以排查Bug;

七、写在最后

该手册作者花了很多精力和时间去编写和完善,虽然很想做到尽善尽美但却无奈精力和时间有限,错误和Bug总是再所难免,也或许更是有些内容讲的不清不楚,但是有参考总比没有参考好吧!同时烦请各位用户使用软件时有不明白的地方尽可能多看看手册,遇到问题搞不明白时,请先把手册仔细看2~3遍,还是搞不定那你再给我旺旺上留言我尽快回复,谢谢合作!

八、软件购买

【1】淘宝店:

【2】微信号:524783742

发布评论

评论列表 (0)

  1. 暂无评论