楼主最近还看过
看不到你的程序,我说一下我之前遇到的情况。
我之前做过的项目,使用的是P_TRIG做轮询,会出现轮询卡死的现象。在网上搜索过后,并没有找到确切的原因,有可能是因为PLC的扫描周期与轮询的间隔时间之间出现问题。
解决的方法:可以考虑做一个自动复位的逻辑。
在1200中modbus指令的触发是需要用上升沿,可以对触发上升沿的条件进行判断。当任一条件持续时间达到5秒,即可视为轮询卡死,重置第一条轮询条件。
回复本条
感谢。我试试
2025-03-20 08:13:07回复
TITLE=程序注释
Network 1
// 初始化
LD SM0.1
R M10.0, 32
ED
S M10.0, 1
Network 2
// =重试次数
LD SM0.0
MOVB 1, VB258
Network 3
// 等待时间
//
LD SM0.0
MOVB 5, VB259
Network 4
LD M0.1
RLD MD10, 1
Network 5
LD SM0.0
= L60.0
LD SM0.0
= L63.7
LD L60.0
CALL SBR1, L63.7, 9600, 0, 0, 500, M0.0, VB30
Network 6
// AI01
LD M10.0
= L60.0
LD M10.0
EU
= L63.7
LD L60.0
CALL SBR2, L63.7, 6, 0, 40002, 2, &VB1000, M0.1, VB1
Network 7
LD M0.1
EU
A M10.1
MOVB VB1, VB2
Network 8
// AI02
LD M10.1
= L60.0
LD M10.1
EU
= L63.7
LD L60.0
CALL SBR2, L63.7, 6, 0, 40004, 2, &VB1100, M0.1, VB1
Network 9
LD M0.1
EU
A M10.2
MOVB VB1, VB3
Network 10
// AI03
LD M10.2
= L60.0
LD M10.2
EU
= L63.7
LD L60.0
CALL SBR2, L63.7, 6, 0, 40006, 2, &VB2110, M0.1, VB1
Network 11
LD M0.1
EU
A M10.3
MOVB VB1, VB4
Network 12
// AI04
LD M10.3
= L60.0
LD M10.3
EU
= L63.7
LD L60.0
CALL SBR2, L63.7, 6, 0, 40008, 2, &VB2120, M0.1, VB1
Network 13
LD M0.1
EU
A M10.4
MOVB VB1, VB5
Network 14
// AI05
LD M10.4
= L60.0
LD M10.4
EU
= L63.7
LD L60.0
CALL SBR2, L63.7, 6, 0, 40010, 2, &VB2130, M0.1, VB1
Network 15
LD M0.1
EU
A M10.5
MOVB VB1, VB6
Network 16
// AI06
LD M10.5
= L60.0
LD M10.5
EU
= L63.7
LD L60.0
CALL SBR2, L63.7, 6, 0, 40012, 2, &VB2140, M0.1, VB1
Network 17
LD M0.1
EU
A M10.6
MOVB VB1, VB7
Network 18
// AI07
LD M10.6
= L60.0
LD M10.6
EU
= L63.7
LD L60.0
CALL SBR2, L63.7, 6, 0, 40014, 2, &VB2150, M0.1, VB1
Network 19
LD M0.1
EU
A M10.7
MOVB VB1, VB8
Network 20
// AI08
//
LD M10.7
= L60.0
LD M10.7
EU
= L63.7
LD L60.0
CALL SBR2, L63.7, 6, 0, 40016, 2, &VB2160, M0.1, VB1
Network 21
LD M0.1
EU
A M11.1
MOVB VB1, VB9
Network 22
// AI09
LD M11.1
= L60.0
LD M11.1
EU
= L63.7
LD L60.0
CALL SBR2, L63.7, 6, 0, 40018, 2, &VB2170, M0.1, VB1
Network 23
LD M0.1
EU
A M11.2
MOVB VB1, VB10
Network 24
// AI10
LD M11.2
= L60.0
LD M11.2
EU
= L63.7
LD L60.0
CALL SBR2, L63.7, 6, 0, 40020, 2, &VB2180, M0.1, VB1
Network 25
LD M0.1
EU
A M11.3
MOVB VB1, VB11
Network 26
Network 27
Network 28
// 插入队列,写数据
LD M0.1
EU
A M1.0
S M20.0, 1
R M10.0, 1
R M0.1, 1
Network 29
LD M20.0
= L60.0
LD M20.0
EU
= L63.7
LD L60.0
CALL SBR2, L63.7, 6, 1, 40008, 1, &VB300, M20.1, VB20
Network 30
LD M20.1
EU
R M1.0, 1
R M20.0, 1
R M0.1, 1
Network 31
// 失败定时重启
LDD= MD10, VD300
TON T37, 100
Network 32
LD SM0.0
MOVD MD10, VD300
Network 33
// 将浮点格式为1032的数据转换为可读取浮点数据
LD SM0.0
CALL SBR0
Network 34
LD SM0.0
CALL SBR4
Network 35
Network 36
Network 37
Network 38
Network 39
Network 40
Network 41
Network 42
Network 43
Network 44
Network 45
Network 46
Network 47
回复本条