⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 升级文档.txt

📁 PLC源代码
💻 TXT
📖 第 1 页 / 共 2 页
字号:
十二、改进型简易计算器  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 + -