登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:请教一下,codesys V3可以用 RS无协议通讯吗?

点击:1955 回复:10

适用情景:
扫码枪的RS232和codesys对接,输入条码数据。
例如:条码,6 9 5 6 9 1 4 1 7 5 4 2 3
附件 01.jpg
附件 02.jpg
21-05-26 13:11

引用 bnnyygy 在 2021/5/26 13:11:07 发言【内容省略】

串口调试助手可以收到条码数据,阔以的,可以编程试试。
21-05-26 13:40

引用 bnnyygy 在 2021/5/26 13:11:07 发言【内容省略】

无协议通讯你可以考虑加载CAA SerialCom库。
附件 workpicture1.jpg
Good Luck~
21-05-26 14:01
谢谢,加载上,拉进去就可以用了
最后修改:2021/5/26 15:29:45
21-05-26 15:06
不容易啊,打开,关闭串口测试OK了。
剩下读串口发送的数据了。
有没有大佬有教程啊,ST LD都可以
附件 01.jpg
附件 02.jpg
21-05-26 17:38
更新下,COM写数据测试OK。
附件 00.jpg
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PROGRAM COM1_W
VAR
//实例化
como1 : COM.Open;
       comc1 : COM.Close;
       comw1 : COM.Write;

//com参数,COM1,9600,8 N 1,超时5,000,000us 5S?)
       aParamsB9600 : ARRAY [1..7] OF COM.PARAMETER:=[
(udiParameterId := COM.CAA_Parameter_Constants.udiPort,             udiValue := 1),
  (udiParameterId := COM.CAA_Parameter_Constants.udiBaudrate,         udiValue := 9600),
   (udiParameterId := COM.CAA_Parameter_Constants.udiParity,           udiValue := COM.PARITY.NONE),
    (udiParameterId := COM.CAA_Parameter_Constants.udiStopBits,         udiValue := COM.STOPBIT.ONESTOPBIT),
  (udiParameterId := COM.CAA_Parameter_Constants.udiTimeout,          udiValue := 5000000),
  (udiParameterId := COM.CAA_Parameter_Constants.udiByteSize,         udiValue := 8),
    (udiParameterId := COM.CAA_Parameter_Constants.udiBinary,           udiValue := 1)
];
//打开COM口
COM1_OPEN: BOOL;
//写COM
COM1_W:BOOL;
       sWrite : STRING := '123456789ABCDEF AA';
COMW1_SZDATA: UINT := 10;
//读COM
       sRead : STRING(25);
       szRead : CAA.SIZE;
     

END_VAR
程序部分:
//打开COM口,
       como1(usiListLength := SIZEOF(aparamsb9600)/SIZEOF(COM.PARAMETER), pParameterList := ADR(aparamsb9600), xExecute := COM1_OPEN,);
//写COM
       comw1(hCom := como1.hCom,pBuffer := ADR(sWrite),szSize := COMW1_SZDATA,xExecute := como1.xDone);
//写正常自己关闭串口
       comc1(hCom := como1.hCom,xExecute := comw1.xDone);
//关闭完成以后,清除各种标志
       IF comc1.xDone  THEN
          COM1_OPEN:=FALSE;
       END_IF
读还不知道如何下手呢,PLC我知道的是,串口发送数据到PLC,PLC有个数据准备好标志,PLC程序处理转换就OK了。。CODESYS没有头绪,F1然并卵
21-05-26 19:54
经过群里热心大佬提醒,读取字节长度没有加上,加上以后能读取,至少缓冲区有变化了,改日再战。
没有官方的手册,搞起来太难了。
节选库说明,全英文还好,就是没有例子,搞起来费事。
附件 01.jpg
附件 02.jpg
21-05-26 22:45
配置好自动声明和初始化值还是方便的
附件 111.jpg
最后修改:2021/5/27 15:05:49
21-05-27 11:44
用过施耐德的自由口通讯,有点麻烦
21-05-27 15:10
大佬能否把程序打包,我试试
21-05-27 21:31

上一页下一页

工控新闻

更多新闻资讯