完整的FX2N监控命令解释
编写PLC例程,下载Oline=>Write to PLC,监控Oline=>Monitor=>Start Monitor;同时监听PC串口数据,把串口数据剪贴到Wordpad,这样得到约264MB的数据。通过大量数据的分析归纳,得出了完整的监控命令解释。
下以其中一例程说明这问题。
左边是梯形图指令,右是下载到PLC的指令码。
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_543723.jpg
(原文件名:完整的监控命令解释01.jpg)
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_543724.jpg
(原文件名:完整的监控命令解释02.jpg)
点选Oline=>Monitor=>Start Monitor,GX先重复读取PLC版本号、PLC参数,然后再发出监控指令。
监控指令格式:
STX E101400 zz nn81 wwww XXXX XXXX ....... ETX CC
字1400是FX2N的上位机命令缓冲区首地址。
字节zz是后续的监控指令字节数,后续的数据是监控指令内容,需监控的寄存器元件和位元件地址,地址数据采小端模式,即字数据低字节在前,高字节在后。
字nn81,表示需监控的寄存器元件数,寄存器元件可为16位或32位。
字wwww表示需监控的位元件元件数。
字XXXX XXXX ....... 表示需监控的寄存器元件和位元件地址,排列是寄存器元件地址在前,位元件地址在后。
CC为校验和。
下表指令码序栏和nn对应;字序栏表示监控元件数据顺序,PLC回发的寄存器元件数据和这里的地址顺序对应;
值得注意的是,位元件栏,即监控指令里位元件地址顺序,表征PLC回发的元件数据从低到高的BIT位排列。
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_543725.jpg
(原文件名:完整的监控命令解释03.jpg)
下图是PC读数据命令和PLC回发的元件数据。
PC读数据命令
STX E00 1790 zz ETX CC
zz是PLC回发的元件数据字节数,1790是读PLC数据首址。
PLC回发的元件数据
STX XXXX XXXX ....... ETX CC
寄存器元件数据顺序监控指令里地址顺序对应,16位占一个字,32位两个字,小端模式。
寄存器元件数据后面是位元件数据,每个位元件占一个BIT,其BIT排列顺序按监控指令里地址顺序从低到高排列,小端模式。
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_543726.jpg
(原文件名:完整的监控命令解释04.jpg)
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_543727.jpg
(原文件名:完整的监控命令解释05.jpg)
下表是据该例程运行时MONITOR,从中选出元件状态变化数据,以验证上面的分析。
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_543728.jpg
(原文件名:完整的监控命令解释06.jpg)
下表是据MONITOR数据,分析出的FX2N监控命令所用的软元件地址,也是FX2N内存映象。
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_543729.jpg
(原文件名:完整的监控命令解释07.jpg)
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_543730.jpg
(原文件名:完整的监控命令解释08.jpg)
监控所用GX版本。
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_543731.jpg
(原文件名:完整的监控命令解释09.jpg)
1、GX Monitor只读取FX2N当前屏障所监控显示软元件相关数据,当翻屏时重新发出写入1400缓冲区的E10指令。
GX Monitor每组监控命令都要读三个寄存器值,但并不显示,它们是D8010当前扫描值(地址0E14),D8012最大扫描时间(地址0E18),D8003内存类型(地址0E06)。
2、在DEVICE BATCH MONITOR,GX读取数据量最大,其STX E10 。。。分两次发出,E10命令写入首址分别为1400、1440。E00命令读取首址也相应为1790、17D0。
3、DEVICE BATCH MONITOR当同时监控寄存器元件和位元件(如TIMER、COUNTER)时,读取相应位元件值,不用E10命令,而是用E00命令直接读取位元件内存数据,不经过1790缓冲区,采用位元件组字节地址。
DEVICE BATCH MONITOR每组监控命令都要读位元件M8000值(位地址0E00),也并不显示。
4、GX Monitor监控E10命令里元件顺序并不安照屏幕显示顺序,PLC回发数据严格按E10命令里元件顺序排列,位元件数据按E10命令里位元件顺序,从低到高BIT位排列,可参见图“完整的监控命令解释04.jpg”、“完整的监控命令解释05.jpg”。 支持. 支持,那是必须地 确实是好东西,厉害! mark 看不到图呀晕 虽然看不到图,但也是很好的资料,学习了,谢谢楼主 bkkman 你好,这个的WORD能不能上传一份 好,辛苦了,要顶 bkkman 你好,这个的Excel能不能上传一份发我一份也行,谢谢了 {:tongue:} 发上来大家参考一下,这个相当有价值。 地址表{:lol:} 好强, 都是自己分析的.
FX2N 和FX1N 有多大区别? 太谢谢楼主了,正在找这个问题的答案。 thanks, mark 楼主强悍啊!!! 这也太强悍了。。 分析代码正好用到这个,非常感谢楼主! MARK 完整的FX2N监控命令解释 再次收藏
页:
[1]