S7200PLC做从站,上位机做主站往PLC写数据开发记录
plc吧
全部回复
仅看楼主
level 9
1:先编写PLC的从站程序---在主程序中编写初始化从站参数。(注意HoldStart地址一般以&VB0开始,不要与库存储区地址冲突,一开始没有了解造成了冲突,会出现提示错误5),还有要记得在主程序中引入SBR0程序,SM0.0----SBR0.
错误5:
在SBR0写入
之后进行下载入PLC即可。
客户端目前使用了模拟主站的软件---Modbus Poll
设置好波特率 校验位等参数即可进行控制PLC了
2016年01月12日 08点01分 1
level 9
子程序内部引入临时变量后,在主程序引入时可以加入参数
2016年01月12日 08点01分 2
level 11
马克,等
2016年01月12日 08点01分 3
level 9
若是使用串口调试软件可以自己计算CRC校验码,进行指令模拟控制。一般低位在前
例如:使得VW0为 1可以写入数03 06 00 00 00 01 49 E8
为0则是03 06 00 00 00 01 88 28
2016年01月12日 08点01分 4
这里有个错误:为0 指令是03 06 00 00 00 00 88 28
2017年06月10日 13点06分
level 9
------写单个保持寄存器06H--------
来说说指令:这个也是上位机编程控制从站的源头。比如使得VW等于100,因为指令是十六进制的100十进制对应的十六进制为64H.则指令为03 06 00 00 00 64 CRCL CRCH。计算出校验码为CRCL=89,CRCH=C3 ........
指令的格式为:从站地址 | 写寄存器的功能 | 起始的地址高字节 | 起始地址低字节 | 设置的数字高字节 | 设置的数字低字节 | CRCL |CRCH
2016年01月12日 09点01分 5
level 9
需要的可以下载来玩玩啊我也是刚学不久,很多需要大家指点的。
[无效] http://pan.baidu.com/s/1eQR3Prc
2016年01月12日 09点01分 6
level 9
MBUS_INIT指令被用于启用和初始化或禁止Modbus通讯。在使用MBUS_SLAVE指令之前,必须正确执行MBUS_INIT指令。指令完成后立即设定"完成"位,才能继续执行下一条指令。
MBUS_INIT指令中:
MaxHold参数设定供Modbus地址4xxxx使用的V存储器中的字保持寄存器数目。例如,为了允许主设备存取2000个字节的V存储器,将MaxHold设为1000个字的数值(保持寄存器)。
HoldStart参数是V存储器中保持寄存器的起始地址。该数值一般被设为VB0,因此HoldStart参数被设为&VB0 (VB0地址)。其它V存储器地址可指定为保持寄存器的起始地址,以便在项目的其它地方使用VB0。Modbus主设备可存取V内存MaxHold个字数,从HoldStart开始。
SLAVE 从站寻址:
Modbus地址 S7-200地址
00001 Q0.0
00002 Q0.1
00003 Q0.2
... ...
00127 Q15.6
00128 Q15.7
10001 I0.0
10002 I0.1
10003 I0.2
... ...
10127 I15.6
10128 I15.7
30001 AIW0
30002 AIW2
30003 AIW4
... ...
30032 AIW62
40001 Hold Start
40002 HoldStart+2
40003 HoldStart+4
... ...
4xxxx HoldStart+2 x (xxxx-1)
2016年01月12日 11点01分 7
level 9
7-200 通过以下方式支持 Modbus RTU 通信协议:
S7-200 CPU 上的通信口 0(Port 0)通过指令库支持 Modbus RTU 从站模式
S7-200 CPU 上的通讯口 0 和 1 (Port 0 和 Port 1)通过指令库支持 Modbus RTU 主站模式
2016年01月12日 12点01分 8
level 13
软件发个给我可以吗
2016年01月12日 12点01分 9
回复 终结者默默 :有关plc资料变频器及祠服系统
2016年01月13日 00点01分
变频器没用过啊,,如果你有硬件提供我也可以啊哈哈
2016年01月13日 00点01分
level 11
Mark [啊]
2016年01月12日 13点01分 10
level 13
有关plc资料变频器及祠服系统
2016年01月13日 00点01分 11
level 6
楼主可以给一段有功能详解的程序吗。我新手,很无助
2016年01月13日 01点01分 13
level 9
功能简单啊,你按我那个步骤,自己做一遍简单的就会啦,主要是配置从站的指令参数。自己串口发个数据看看有啥问题没,硬件要有232的串口,485的转换就连接到PLC的p0口
2016年01月13日 01点01分 14
level 1
请问楼主可以用数据通信来代替按钮实现通断控制吗,想用上位机和西门子plc进行串口通讯,现在我用串口调试软件可以向西门子plc内部变量寄存器发送代码数值了,但是我想给输入输出寄存器i和q发送数值,从而达到控制电机的作用,这种方法能实现吗
2016年01月13日 05点01分 16
我刚试过可以的,看功能码05------写单个线圈。比如我要强制Q0.2就要写入:03 05 00 02 FF 00 2C 18------你可以试试看
2016年01月13日 07点01分
I是数字量输入 只能读取是不能写的 但是你可以写m 一般用v存储区做缓冲区 但是m可以用v来赋值
2016年02月05日 00点02分
回复 彩票买着玩 :当然你直接用v的位也行啦[滑稽][滑稽][滑稽]
2016年02月05日 00点02分
@彩票买着玩 嗯,确实是哦,不愧大神。[大拇指]
2016年02月05日 00点02分
1 2 3 4 尾页