【控制要求】 CLINK启动开关 X0为ON时,则不断的让主站( Master PLC)与3台从站( Slave PLC)通过CLINK方式完成PLC之间的数据交换(单笔最多为 64word)。
【PLC参数必要设置】
主从站 |
站号 |
通讯口 |
通讯格式 |
Master PLC |
1 |
Port4 |
波特率:9600 数据位:7 停止位: 1 校验位:偶校验协议:永宏通讯协议 |
Slave PLC 1 |
2 |
Port2 |
Slave PLC 2 |
3 |
Port3 |
Slave PLC 3 |
4 |
Port2 |
- ※
- 在WinProladder界面,点选菜单栏的 “PLC”Æ“设定”Æ“Port#通讯参数 ”,即可对相应的通讯口进行参数设置,前例 12.3已有说明,此处不再赘述。
- ※
- 当出现 PLC因参数设置错乱而导致通讯异常时,可先在 WinProladder编程软件菜单中点选: PLCÆ快捷操作 Æ初始化全部资料,使 PLC 回归出厂值后,再按照上表进行设置。
z操作步骤:
PLC 元件 |
控制说明 |
X0 |
CLINK启动开关 |
M1938 |
Port4工作指示, 0:被占用, 1:Ready状态 |
【控制程序】 只需在站号为 1的MASTER PLC写入如下图的指令,即可实现多台 PLC之间的通讯。
【通讯表格的建立】
如下图所示
- (1) 在“ModBus Master”通讯命令表格中,点击 “新增”按钮,编辑一条通讯命令;
- (2)各参数说明:仆站站号:欲与之交换数据的仆站号;命令:分为 “写入(write)”和“读取(read)”两种;资料长度:******为 64,当然也可以通过变址方式进行设定;主站数据起始位置:分配主站需被读取或被写入的地址段的起始单元;仆站数据起始位置:分配仆站需被读取或被写入的地址段的起始单元;
- (3)此例中共编辑了 8笔通讯命令,如下图所示:
【程序说明】
- (1)该指令只需写入到主站 PLC中,而各仆站 PLC只需设好通讯参数,听从主站指挥即可;
- (2)从上图状态栏可看出,编辑此 8条通讯命令共占用了 57个缓存器R5000~R5056;
- (3) 程序 RUN后,M1938应为Ready状态(即为 ON),当X0一接通,就进入 CLINK通讯,下面说明各 PLC数据区内容的变化情况:
MASTER PLC(1台) |
|
SLAVE PLC(3台) |
D0~D35(内容全为 0) |
读取 |
2号站的 R20~R55(内容全为 1) |
D40~D49(内容全为 100) |
写入 |
2号站的 D100~D109(内容全为 0) |
M50~M65(状态全为 0) |
读取 |
3号站的 X0~X15(状态全为 1) |
D60~D67(内容全为 0) |
读取 |
3号站的 R200~R207(内容全为 2) |
M100~M103(状态全为1) |
写入 |
3号站的 Y0~Y3(状态全为 0) |
D200~D263(内容全为 0) |
读取 |
4号站的 R500~R563(内容全为 3) |
D264~D319(内容全为 0) |
读取 |
4号站的 R564~R619(内容全为 3) |
R0~R5(内容全为 FFFFH) |
写入 |
4号站的 WM8~WM48(状态全为 0) |
通讯成功后各数据区的内容如下:
MASTER PLC(1台) |
SLAVE PLC(3台) |
D0~D35(内容全为 1) |
2号站的 R20~R55(内容全为 1) |
D40~D49(内容全为 100) |
2号站的 D100~D109(内容全为 100) |
M50~M65(状态全为 1) |
3号站的 X0~X15(状态全为 1) |
D60~D67(内容全为 2) |
3号站的 R200~R207(内容全为 2) |
M100~M103(状态全为 1) |
3号站的 Y0~Y3(状态全为 1) |
D200~D263(内容全为 3) |
4号站的 R500~R563(内容全为 3) |
D264~D319(内容全为 3) |
4号站的 R564~R619(内容全为 3) |
R0~R5(内容全为 FFFFH) |
4号站的 WM8~WM48(状态全为 1) |
(4)每次通讯进行中, M1938都会为 0,表示port4被占用;当通讯完成,M1938会重新变回1,触发新的一次通讯。 |