发表于:2003/7/31 17:46:00
#0楼
用FX-PLC编程口通讯电缆遍历读PLC的映象区
FX-PLC的编程口通讯协议只有几个命令,这就是"0,1,7,8"(读/写/强制位ON/强制位OFF),
它以PLC内部映象地址为操作对象,所有元件地址都从一张映象地址表中换算出来,包括用户
程序。
它属于低层操作协议,有最强大的功能,诸如元件读写、强制位元件、程序读写、密码读
写、非连续地址通讯时用的指针队列读写....有厂家编程软件所提供的全部功能(它也是
通过编程口与PLC连接的)。在上位机独占PLC的直连条件下,是一种最得心应手的通讯方
法。
本人尝试在Execl电子表格中编程,遍历读出FX-PLC的全部映象地址里的数据和它的状态
,当然它包含了PLC的全部元件区和用户程序区(PLC密码在程序区内)了。
具体做法:
1. 在新建的XLS文档里,命名一个“遍历读FXPLC”和一个“PLC数据”工作表。
2. VBA程序全部放在与“遍历读FXPLC”工作表对应的代码区内,工作表的第一行放3个控件
,一个MSCOMM通讯控件和两个命令按钮。这里要说明的是,用户在安装了VB6.0后才可使用
MSCOMM控件,当然可以在自有 MSCOMM32.OCX 时自行注册后使用。
MSCOMM控件的引用:
在Exexl的菜单栏中点击: 视图 -> 工具栏 -> 控件工具箱, 将它拖到工具栏上或其它合
适的位置.
点击控件工具箱工具上的"查看代码"按钮,进入代码编辑区,再点击VB编辑器的菜单栏中的:
工具 -> 引用,在"可使用的引用" 区中寻找"MSCOMM32.OCX"控件并选中它。如找不到,点
击"浏览"按钮,在Windows的系统文件区(system/system32)可找到它, 注意在文件类型栏
中应选"ActiveX控件(*.OCX)",找到"MSCOMM32.OCX"文件后点击选择,退出。
3.返回Execl编辑器,点击控件工具箱上的"其它控件"按钮,在它的菜单栏中选中:
Microsoft Chart Control, version 6.0 或:
Microsoft Communications Control, version 6.0
把这个电话机图标安放在"遍历读FXPLC"工作表的第一行上,它的缺省名为MSComm1
再在控件工具箱拖放两个命令按钮放到第一行:CommandButton1和CommandButton2,
给按钮分别命名为"开始测试"和"打断操作"。
4.说明:"遍历读FXPLC"工作表从第二行起由程序自动填写每次操作的状态,如:"0000:OK",
表示读映象地址0000区时得到了正确的数据,而“8000:ERR”则表示在读8000h映象地址
时出错。
"PLC数据"工作表由程序自动填写由PLC返回的对应数据,如"8000:XXXXXXX.....",它表示
PLC返回8000h首地址开始的完整数据(含起始符、结束符和校验码)。
程序开始运行后,整个读入过程大约需时10-15分钟。
5.下面就可以在"遍历读FXPLC"的代码区编制代VB代码了。
(有兴趣者顶一下,我将贴出VB代码...)
FX-PLC的编程口通讯协议只有几个命令,这就是"0,1,7,8"(读/写/强制位ON/强制位OFF),
它以PLC内部映象地址为操作对象,所有元件地址都从一张映象地址表中换算出来,包括用户
程序。
它属于低层操作协议,有最强大的功能,诸如元件读写、强制位元件、程序读写、密码读
写、非连续地址通讯时用的指针队列读写....有厂家编程软件所提供的全部功能(它也是
通过编程口与PLC连接的)。在上位机独占PLC的直连条件下,是一种最得心应手的通讯方
法。
本人尝试在Execl电子表格中编程,遍历读出FX-PLC的全部映象地址里的数据和它的状态
,当然它包含了PLC的全部元件区和用户程序区(PLC密码在程序区内)了。
具体做法:
1. 在新建的XLS文档里,命名一个“遍历读FXPLC”和一个“PLC数据”工作表。
2. VBA程序全部放在与“遍历读FXPLC”工作表对应的代码区内,工作表的第一行放3个控件
,一个MSCOMM通讯控件和两个命令按钮。这里要说明的是,用户在安装了VB6.0后才可使用
MSCOMM控件,当然可以在自有 MSCOMM32.OCX 时自行注册后使用。
MSCOMM控件的引用:
在Exexl的菜单栏中点击: 视图 -> 工具栏 -> 控件工具箱, 将它拖到工具栏上或其它合
适的位置.
点击控件工具箱工具上的"查看代码"按钮,进入代码编辑区,再点击VB编辑器的菜单栏中的:
工具 -> 引用,在"可使用的引用" 区中寻找"MSCOMM32.OCX"控件并选中它。如找不到,点
击"浏览"按钮,在Windows的系统文件区(system/system32)可找到它, 注意在文件类型栏
中应选"ActiveX控件(*.OCX)",找到"MSCOMM32.OCX"文件后点击选择,退出。
3.返回Execl编辑器,点击控件工具箱上的"其它控件"按钮,在它的菜单栏中选中:
Microsoft Chart Control, version 6.0 或:
Microsoft Communications Control, version 6.0
把这个电话机图标安放在"遍历读FXPLC"工作表的第一行上,它的缺省名为MSComm1
再在控件工具箱拖放两个命令按钮放到第一行:CommandButton1和CommandButton2,
给按钮分别命名为"开始测试"和"打断操作"。
4.说明:"遍历读FXPLC"工作表从第二行起由程序自动填写每次操作的状态,如:"0000:OK",
表示读映象地址0000区时得到了正确的数据,而“8000:ERR”则表示在读8000h映象地址
时出错。
"PLC数据"工作表由程序自动填写由PLC返回的对应数据,如"8000:XXXXXXX.....",它表示
PLC返回8000h首地址开始的完整数据(含起始符、结束符和校验码)。
程序开始运行后,整个读入过程大约需时10-15分钟。
5.下面就可以在"遍历读FXPLC"的代码区编制代VB代码了。
(有兴趣者顶一下,我将贴出VB代码...)