📄 升级文档.txt
字号:
十二、改进型简易计算器 Comput2.pmw
X0 0
X1 1
X2 2
X3 3
X4 4
X5 5
X6 6
X7 7
X10 8
X11 9
X13 退一位
变频器扩展按钮
上箭头 +
下箭头 -
右移 乘
JOG 除
RUN =
RESET 清0
当前操作 + 显示 F/R(指示灯)
当前操作 - 显示 Hz(指示灯)
当前操作 乘 显示 V (指示灯)
当前操作 除 显示 A (指示灯)
显示:变频器面板4位十进制数
***************************************************************************************************
当前版本: V1.1.5
修改人: 许意义
修改时间: 2009.10.10
修改原因: 修改了网友 winmcu 查出的 BUG , PLS 和 PLF指令运行异常现象, 已修正。
***************************************************************************************************
过去版本: V1.1.4
修改人: 许意义
修改时间: 2009.10.9
修改原因: 修改了网友 oste 查出的 BUG , ALT指令运行异常现象, 已修正。
并增加了PLC程序缺少END指令及运行错误指令会马上停止报错。
***************************************************************************************************
过去版本: V1.1.3
修改人: 许意义
修改时间: 2009.10.9
修改原因: 修改了网友 oste 查出的 BUG , CMP指令,ZCP指令运行异常现象, 已修正。
***************************************************************************************************
过去版本: V1.1.2
修改人: 许意义
修改时间: 2009.10.8
修改原因: 修改了网友 oste 和 winmcu 查出的 BUG , KnMx类变量 x非4的倍数出错,M801x时钟变量脉冲类指令
出错,AND类指令出错,均已修正。
***************************************************************************************************
过去版本: V1.1.1
修改人: 许意义
修改时间: 2009.10.8
修改原因: 修改了网友 oste 查出的 BUG , 计数器在每次接通时的上升沿才应该计数(加1),已修正。
***************************************************************************************************
过去版本: V1.1.0
修改人: 许意义
修改时间: 2009.10.3
修改原因: 增加了对KnX,KnY,KnM,KnS变量的支持,增加了对CJ,CALL等指令的支持。
***************************************************************************************************
过去版本: V1.0.9
修改人: 许意义
修改时间: 2009.10.1
修改原因: 修改了网友 houjingqing 和 winmcu 查出的 BUG , 部分变量 初始化不正确,已修正。
***************************************************************************************************
过去版本: V1.0.8
修改人: 许意义
修改时间: 2009.09.30
修改原因: 修改了网友 oste 查出的 BUG , 下载完刚运行时,时间继电器的时基会变小,定时值很快就到了,已修正。
***************************************************************************************************
过去版本: V1.0.7
修改人: 许意义
修改时间: 2009.09.30
修改原因: 修改了网友 houjingqing 和 oste 查出的 BUG , 数据比较类 指令错误,已修正。
***************************************************************************************************
过去版本: V1.0.6
修改人: 许意义
修改时间: 2009.09.26
修改原因: 修改了网友 oste 查出的 BUG , OUT T0 D30 指令错误,已修正。
***************************************************************************************************
过去版本: V1.0.5
修改人: 许意义
修改时间: 2009.09.25
修改原因: 将“简易PLC 梯型图(指令编码)转 51 C 程序示范程序”和“仿三菱 FX1N PLC 下载通讯协议 C Code示范程序”
合并,使之真正成为直接兼容 三菱FXGPWIN 软件 的 开源PLC。
***************************************************************************************************
过去版本: V1.0.4
修改人: 卢明君
修改时间: 2009.09.22
修改原因:
(摘自【58楼】 xuyiyi 许意义)
三菱PLC一些主要的功能如下:
1. 传送--->读入(写出) 已完成,传送--->核对 功能.(完整实现) ................ ok!
2. 是否可加入 参数设置--->文件寄存器 选项。
即需加入 寄存器数据--->读入(写出,核对) 功能.(请问.寄存器的数据量很大.大概32K.存哪?如何处理.下载协议已经在侦听后分析出来了.只要有地方存取.即可实现.) ................ 文件寄存器 实际上是将部分多余的程序寄存器划出,如程序寄存器空间设定4K, 划出2K文件寄存器,则程序寄存器空间只有2K了。
3. PLC存储器清除 功能..(仅能实现[清除PLC存储空间].[清除数据元件存储空间和[清除位元件存储空间]本来就没有.^_^]) ................ 只要求实现[清除PLC存储空间]。
4. 还有 遥控运行/停止 功能,开始监控 功能. (侦听了很多数据.尚需要理论支撑.希望能够提供一些相关资料) ................ 可晚一步做。
以下蓝色文字由 xuyiyi 于:2009-09-17,06:32:38 加入。
--------------------------------------------------------------------------------
关于 第2条,你可分下面几步走:
1. 先在 参数设置--->文件寄存器 选项 中选择设置一小部分文件寄存器。
2. 调通 传送--->读入(写出,核对) 功能(和不划分文件寄存器时有点异同)。
3. 调通 寄存器数据--->读入(写出,核对) 功能。
--------------------------------------------------------------------------------
修改后:
[文件寄存器(r)]和[注释区(m)]都已经做到PLC当中.
(摘自【64楼】 oldtom )
重构的几个建议:
0. void FX1NProcessing(void) 这个函数也太庞大了。通信的过程应该是解码,处理,编码的过程,建议还是分开处理可能会好点。
1.检验校验判断单独做一个函数! 检验应该不是CRC校验吧?是和校验吧?
2. 像类似 else if((UartReceiveBuffer[1]==0x45)\
&(UartReceiveBuffer[2] ==0x31)\
&(UartReceiveBuffer[3] ==0x31))
我猜测着可能是功能码吧?建议用宏来定义实现.
--------------------------------------------------------------------------------
修改后:
0.FX1NProcessing是否有必要做成几个分立函数,和如何去做,有待于论证.待功能稳定后的版本问世后会调整这个函数模块.
1.是"和校验"已经将CRC字样改为SUM字样.
2.目前这个功能码究竟是何含义尚不明朗.不是所有的功能码我都能说出其含义.所以有待于最后敲定.敲定后就会在头文件中申明.
3.已经添加了"您在例子中对函数前面加入的函数说明".
4.在[IAP.C]中的IAPFlashProgremMode函数中,加入了.在写字节之前先读取字节.将读取的字节与带写入的字节进行判断,判断不相等后,再写入,相等就不必写入重新写入了.
5.去掉了调试函数FX1NDebug.即下载期间不会再有指示灯指示.
6.RAM控制在(xdata)238+(data)17.0 如果需要今后升级可考虑再节约.
实现节约RAM办法:
在IAP的过程中,原来用256个字节的RAM.现在改为用3个字节的RAM.一个整型循环变量i,一个倒数用的临时变量tempdata,再加一页IAP缓存备份空间.用暂存在IAP内的方法使得RAM的占用量大大减小.
***************************************************************************************************
过去版本: V1.0.3
修改人: 卢明君
修改时间: 2009.09.14
修改原因:(摘自【31楼】 xuyiyi 许意义)
1. 在原程序设置 8K容量下载时,如收到的程序大于 7K或(7.5K)后的程序请不要存储,作丢弃处理。在检验时,将大于 7K或(7.5K)后的程序以空操作指令(0xffff)发送。
2. 再将程序作进一步修改,将收到的ASCII码格式转换成标准HEX格式存储,并且不用一整页存储,每次只存储半页,IAP浪费掉半页,这样RAM 页写缓冲区只需要 256字节了。
修改后,RAM控制在500个字节以内.
***************************************************************************************************
过去版本: V1.0.2
修改人: 卢明君
修改时间: 2009.09.14
修改原因:
由于简易PLC发货时 MPC82G516A 的IAP 容量 我不是很清楚,给大家的前期测试带来不便,对此,深表歉意。
// 默认当前MPC82G516A的设置为
// 1K ISP Code
// 31K IAP Code
// 32K Flash Code
***************************************************************************************************
过去版本: V1.0.1
修改人: 卢明君
修改时间: 2009.09.12
修改原因:
1.为便于阅读修改部分子函数.
2.处理[存储容量]不同的PLC,在回复的过程中略有不同的现象,总结后,统一处理.处理后的效果和FX1N一致.
***************************************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -