发表于:2007-07-25 10:42:00
楼主
第一次用Citect,要与一款使用MODBUS协议的PLC通讯,该PLC在Citect没有专门的驱动程序,所以不能用“通信/快速IO设备设置”。只能一步一步设置,具体如下:
先将“IO服务器”定了个名称-IOServer;
“通讯板”只设置了板类型为COMX,地址为0,板名称、IO端口、中断号都没有添;
“端口”中只设置了端口号为1(PLC的MODBUS模块经485转232模块连在COM1口),波特率19200,数据位8,停止位1,奇偶位EVEN-P,这些与PLC的设置相同,其余的端口名称、板名称都没有添;
“IO设备”,设备名称自己写成WKQ,设备号设为1(因为就连了1台PLC),地址没写,协议选的MODBUS(因为PLC采用的2线RTU模式),端口名称选的空白。
完成了计算机设置向导,使用的是快速设置。
之后建立了一个变量标签,变量标签名称设为T1,数据类型为LONG,IO设备名称为WKQ,地址为44017,(PLC中有8个供通讯读写的数据寄存器,地址分布是从4001+16到4001+23,PLC说明书里就是这么写的,还有自己的功能码:03-read multiple registers (R) N*16bits(WORD) 06-write singte register(W) 16bits(WORD) 10-write multiple registers(W) N*16BITS(WORD),不知道在CITECT的设置中是否要考虑这些功能码),
编译之后运行,在菜单栏中点击Tools/Tag Debug,选T1,REED显示0,WRITE数字后监控PLC发现没有变化,回到编辑状态下换了很多T1的地址,都不行,PLC在跟计算机交换数据时应该有一个灯闪烁,但在这个项目中就没闪过。
奇怪的是把通信/IO设备/端口名称改为MEMORY后运行,界面报警说没有与PLC连接
而恢复原来的设置后再把通信/端口/端口号设为2(COM2口)时虽然COM2没连任何设备,运行界面都不报警,T1读数还是0,写个数字后再读就是写的那个数。
到底是哪里出问题了?请各位高手帮忙!!多谢了!
硬件连接没有问题,因为同时用力控软件就能通上!