我好像是
大波就是我
级别: 家园常客
精华主题: 0
发帖数量: 303 个
工控威望: 603 点
下载积分: 1392 分
在线时间: 490(小时)
注册时间: 2012-12-09
最后登录: 2024-04-12
查看我好像是的 主题 / 回贴
楼主  发表于: 2017-09-18 18:02
现在是这样。有一台上位机。程序是死的,我没有办法修改。上位机通过rs232接口跟下位机(PLC)通讯。
1:PLC发送给上位机的格式跟内容:PLC发送数据 03 13 02 SD 给上位机,  意思是让上位机进行某一个操作  然后上位机返回03 13 01E5  说明操作成功(操作很多,这只是举例子)
2:上位机发送给PLC的格式跟内容:上位机发送数据 03 13 02 GD   意思是让下位机(PLC)进行某一个操作  然后上位机返回03 13 01E8  说明操作成功.(操作很多,这只是举例子)

3:上位机不停发送固定数据给下位机PLC 88 88 88 88,  频率是每秒一次。(作用是判断上位机是否死机)
4:下位机不停发送固定数据给上位机 66 66 66 66,  频率是每秒一次。(作用是判断下位机是否死机)



问题:请问一下这个应该用什么PLC?走自由口通讯协议?可是PLC跟上位机一直在不停发送跟接收数据哎。接收跟发送都是4组十六进制数据。要是有协议的话我还是知道怎么写,不同数据发送给不同寄存器嘛。
可现在没办法指定某一个寄存器哎,都是一股老的发送,接收。发送跟接收就这么四组数据,没有指定寄存器哎。


有成功例子,人家下位机是用STC C52单片机高仿三菱的工控板子。说明这个是可以写出来的嘛。
请各位大神提供一个思路,成功的,我发微信红包哈。上位机发送接收格式内容没有办法修改哎。这是死的。
030403118
自动项目、PLC、视觉、通讯等工控软件开发QQ3515716
级别: 工控侠客

精华主题: 3 篇
发帖数量: 1973 个
工控威望: 2888 点
下载积分: 25125 分
在线时间: 1368(小时)
注册时间: 2014-01-05
最后登录: 2024-04-28
查看030403118的 主题 / 回贴
1楼  发表于: 2017-09-19 09:58
你的上位机如果不是走你的标准协议 而是自由协议
上位机程序是现成的? 固定了发送格式?
首先要知道上位机发送的数据格式 就知道是否走的标准协议  如果是自由协议 只能自己写发送和接收程序了 如果交换数据多的话会累死人
几条建议
如果协议是标准协议 比如 modbus TCPmodbus,canopen等 那么建议你使用一些指令方便的PLC,比如国产的信捷,麦格米特,国外的西门子等。一条指令搞定。
上位机程序自己做,仅是点单的数据交换 可以用VB做,如果数据交换量大,而且除了数据交换外,你的上位机还要进行其他运算的话 ,这就用到多线程,建议使用LBV和c#,否则你会遇到软件假死现象。
项目、视觉、通讯QQ3515716