当前位置:
MCGS使用脚本做的上位机数据监测控制非标准485通信协议
回复 | 人气 | 打印
wyc05017 个人主页 给TA发消息 加TA为好友 发表于:2019-11-08 20:08:22 楼主



测试方法

测试使用的虚拟串口创建两个虚拟串口com1与com2相互通信

触摸屏使用串口com1,串口调试助手使用com2 这样仿真后可以通过串口调试助手进行接收和模拟数据发送给触摸屏进行调试

主功能脚本

'消息显示区内容

IF !len(ReadData)=1 OR 系统退出=1 THEN 

消息="系统断开,请点击“系统复位”后,重新尝试系统连接" 

ENDIF

IF !len(ReadData)=2 OR 系统退出=1 THEN 

消息="系统未连接,请点击“系统连接”按钮进行系统连接" 

ENDIF

IF !len(ReadData)=10 AND 系统退出=0 THEN 

消息="系统已连接,请点击“开始采集”按钮进行数据采集"

ENDIF

IF 开始测量=1 and !len(ReadData)=26 THEN 

消息="通信正常,下位机数据采集中..."

ENDIF

IF 下位机控制=1 THEN 

消息="控制权转交给下位机,数据采集模式"

ENDIF

IF 上位机控制=1 THEN 

消息="控制权转交给上位机,请选择“转速控制”或“转矩控制”"

ENDIF

IF 系统复位=1 THEN 

消息="系统已复位,请点击“开始采集”按钮进行数据采集"

ENDIF

IF 转速控制=1 THEN 

消息="转速控制:请选择“手动”或“自动”模式"

ENDIF

IF 转速控制=1 AND 手动=1 THEN 

消息="转速控制“手动”模式,更改转速值后点击“发送”确认"

ENDIF

IF 转速控制=1 AND 自动=1 THEN 

消息="转速控制“自动”模式,可按照步进值增加或减少电机转速"

ENDIF

IF 配置系统=1 THEN 

消息="设置系统参数,可更改电机同步转速"

ENDIF

IF 转速控制=1 AND (手动=1 OR 自动=1) and 发送=1 THEN 

消息="设置电机转速为"+!Str(电机设定转速)+"rpm并测量实时数据值"

ENDIF

IF 转矩控制=1 THEN 

消息="转矩控制:可对电机加载、减载、突减载控制"

ENDIF

if 转矩控制=1 and 加载=1 and 转矩暂停=0 then

消息="转矩控制:电机加载中..."

if 电机设定转矩=4080 then

消息="转矩控制:电机已加载至满载状态,请减载操作运行!"

endif

endif

if 转矩控制=1 and 减载=1 and 转矩暂停=0 then

消息="转矩控制:电机减载中..."

if 电机设定转矩=0 then

消息="转矩控制:电机已减载至空载状态,可加载运行"

endif

endif

if 转矩控制=1 and 转矩暂停=1 then

消息="转矩控制:电机加减载暂停更改"

endif

if 转矩控制=1 and 突减载=1 then

消息="突减载打开,电机处于空载状态"

endif

'转速控制自动模式 发送数据计算

IF 转速+5>=电机设定转速 AND 暂停=0 THEN 

IF 转速控制=1 AND 自动=1 AND 加减=1 AND 发送=1 THEN 

电机设定转速=电机设定转速+步进转速

IF 电机设定转速>1500 THEN 

电机设定转速=1500

ENDIF

ENDIF

ENDIF

IF 转速-5<=电机设定转速 AND 暂停=0 THEN 

IF 转速控制=1 AND 自动=1 AND 加减=0 AND 发送=1 THEN 

电机设定转速=电机设定转速-步进转速

IF 电机设定转速<0 THEN 

电机设定转速=0

ENDIF

ENDIF

ENDIF

'转速控制手动模式 发送数据计算 

STR设定转速=!I2Hex(电机设定转速)

IF !len(STR设定转速)=3 THEN STR设定转速="0"+STR设定转速

IF !len(STR设定转速)=2 THEN STR设定转速="00"+STR设定转速 

IF !len(STR设定转速)=1 THEN STR设定转速="000"+STR设定转速

校验=!right("0"+!I2Hex(!Hex2I("15")+!Hex2I("58")+!Hex2I(!left(STR设定转速,2))+!Hex2I(!right(STR设定转速,2))),2)  '数据和校验

转速设定值="1558"+STR设定转速+校验

'转矩控制 发送数据计算

if 电机设定转矩<=4080 then

if 转矩控制=1 and 加载=1 and 转矩暂停=0 then

电机设定转矩=电机设定转矩+15

if 电机设定转矩>4080 then

电机设定转矩=4080

endif

endif

endif

if 电机设定转矩>=0 then

if 转矩控制=1 and 减载=1 and 转矩暂停=0 then

电机设定转矩=电机设定转矩-15

if 电机设定转矩<0 then

电机设定转矩=0

endif

endif

endif

STR设定转矩=!I2Hex(电机设定转矩)

IF !len(STR设定转矩)=1 THEN STR设定转矩="000"+STR设定转矩

IF !len(STR设定转矩)=2 THEN STR设定转矩="00"+STR设定转矩

IF !len(STR设定转矩)=3 THEN STR设定转矩="0"+STR设定转矩

校验2=!right("0"+!I2Hex(!Hex2I("15")+!Hex2I("57")+!Hex2I(!left(STR设定转矩,2))+!Hex2I(!right(STR设定转矩,2))),2)  '数据和校验

转矩设定值="1557"+STR设定转矩+校验2

'转差率计算  

转差率=(电机同步转速-转速)/电机同步转速

'字符颜色随机值

color=!rand(0,10)


涡流测功机测试系统 通信协议

设备连接     

下发:15 50 00 00 65             

回复:15 15 50 00 7A

下位机控制/复位

下发:15 59 00 00 6E             

单组采集:按下一次按钮采集一次数据

下发:15 52 00 00 67             

回复:15 52 01 14 93 01 10 25 31 16 02 10 9E   13个字节数据

转速:149300正转,01反转,10表示1位小数点

转矩:102530正转,31反转 3表示小数点位数

功率:160210表示小数点位数

多组采集:按下一次采集三组数据

下发:15 53 00 00 68             

回复:

上位机控制

转矩控制             加减载设定                      

下发:15 57 00 10 7C   转矩设定范围:0~4080                       

回复:                          

转速控制             加减速设定:每次100加减

下发:15 58 05 78 EA   1400

回复:

突减载

下发:15 57 00 00 6C  按钮为:开关型取反

回复:15 52 01 14 97 00 10 59 30 16 60 10 32 


正在下载,请等待……
下载附件需2积分!

分享到: 关注收藏 邀请回答 回复 举报

huoshi 个人主页 给TA发消息 加TA为好友 发表于:2019-11-09 10:24:10 1楼
 

谢谢老师分享,学习学习!

  回复 引用 举报
horse01 个人主页 给TA发消息 加TA为好友 发表于:2019-11-15 19:09:03 2楼
 

谢谢老师分享资料,学习了。

  回复 引用 举报

周点击排行
周回复排行
最新求助