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

主题:树莓派自带ttl串口_codesys 通讯,已完成!2楼是方法。修改cfg文件

点击:4340 回复:16

1,从树莓派的相关资料我们可以看到,树莓派有两个串口可以使用,一个是硬件串口(/dev/ttyAMA0),另一个是mini串口(/dev/ttyS0)。硬件串口有单独的波特率时钟源,性能好,稳定性强;mini串口功能简单,稳定性较差,波特率由CPU内核时钟提供,受内核时钟影响。
树莓派(3/4代)板载蓝牙模块,默认的硬件串口是分配给蓝牙模块使用的,而性能较差的mini串口是分配给GPIO串口 TXD0、RXD0。
------
白嫖连接:https://www.yahboom.com/build.html?id=2678&cid=308
2,自己用USB转TTL-与树莓派硬件TTL连接测试正常:
附件 QQ图片20200524213312.jpg
3. 找到 codesys配置文件:树莓派系统的/ETC里面,有2个。参考1,sudo nano /文件地址,修改配置文件,
;Linux.Devicefile=/dev/ttyAMA0 //这个是硬件地址,
[CmpBlkDrvCom]
;Com.0.Name=MyCom
;Com.0.Baudrate=115200
;Com.0.Port=3
;Com.0.EnableAutoAddressing=1
附件 QQ图片20200524213447.jpg
结果:完全通讯不了。
这个图是codesysQQ群,一个管理员的截图,他说说太简单,也没给出具体教程:
附件 QQ图片20200524213341.jpg
待续。期待大家共同研究,
备注:自己完全不会linux,当然,平时用的PLC哪里需要自己研究这些底层啊,RS232 RS485 都是PLC硬件厂商定义好了,自己使用就行。
玩过几天openwrt路由器,好像文件目录差不太多。。
最后修改:2020/5/25 19:07:51
20-05-24 21:37
附上群友发的图.
据说是codesys总部的答复:
附件 QQ图片20200524214803.jpg
附件 QQ图片20200524214808.jpg
20-05-24 21:49
qq群里也看到了,应该是你?
20-05-24 23:29
树莓派自带TTL RS485已完成!
电脑侧 USB_to_TTL----TTL(树莓派),中间没有TTL转RS485。按照2楼操作的。(这里就不具体说明了,自己开通大脑变通下,自带我按照1L的方法,映射成了ttyAMA0)
附件 QQ图片20200525190417.jpg
最后修改:2020/5/25 19:14:41
20-05-25 19:05
树莓派跑的cedesys 做的modbus 从站,电脑端威纶通在线模拟,读写正常。
附件 QQ图片20200525193937.jpg
20-05-25 19:40
刚才逛了他们官网,完全懵逼了,不知道该买什么了!表情
20-05-25 21:41
附件 001.jpg
20-05-25 21:41
树莓派 codesys一个是卖硬件,一个是卖软件(授权),只是最近玩codesys的多了,我也顺带熟悉下。学习的话,win也很方便,也支持各种总线,电脑直接编程,使用,没授权两小时重启下就好了
20-05-25 22:44
With scalar type:
TYPE DUT :
   STRUCT
    a,b,c,d,e,f : INT;
   END_STRUCT
END_TYPE
PROGRAM PLC_PRG
VAR
   pDut : POINTER TO DUT;
   bInit : BOOL := TRUE;
   bDelete : BOOL;
END_VAR
IF (bInit) THEN
   pDut := __NEW(DUT);
   bInit := FALSE;
END_IF
IF (bDelete) THEN
   __DELETE(pDut);
END_IF
With function block
{attribute 'enable_dynamic_creation'}
FUNCTION_BLOCK FBDynamic
VAR_INPUT
   in1, in2 : INT;
END_VAR
VAR_OUTPUT
   out : INT;
END_VAR
VAR
   test1 : INT := 1234;
   _inc : INT := 0;
   _dut : POINTER TO DUT;
   neu : BOOL;
END_VAR
out := in1 + in2;
PROGRAM PLC_PRG
VAR
   pFB : POINTER TO FBDynamic;
   loc : INT;
   bInit : BOOL := TRUE;
   bDelete : BOOL;
END_VAR
IF (bInit) THEN
   pFB := __NEW(FBDynamic);
   bInit := FALSE;
END_IF
With array:
PLC_PRG(PRG)
VAR
   bInit: BOOL := TRUE;
   bDelete : BOOL;
   pArrayBytes : POINTER TO BYTE;
   test : INT;
   parr : POINTER TO BYTE;
END_VAR
IF (bInit) THEN
   pArrayBytes := __NEW(BYTE, 25);
   bInit := FALSE;
END_IF
IF (bDelete) THEN
   __DELETE(pArrayBytes);
END_IF
20-05-26 09:34
--New(DUT)实例化没有分配内存会报错,我在施耐德tm241上动态分配内存是选择不了的,问下怎么事先把DUT分配内存。初学codesys
20-05-26 09:36

上一页下一页

工控新闻

更多新闻资讯