返回主站|会员中心|保存桌面

新松机器人综合服务商    

新松工业机器人,新松协作机器人

新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > 新松机器人主任务和独立任务之间传递字符串数据!
新闻中心
新松机器人主任务和独立任务之间传递字符串数据!
发布时间:2026-05-11        浏览次数:47        返回列表

新松机器人 主任务 ↔ 独立任务 字符串数据传递 完整方法

新松机器人(SR 系列 / RC7/RC9 控制器,语言:SLang)主任务与独立任务之间传递字符串,官方标准、最稳定、现场最常用的只有 2 种方案

我直接给你可直接复制运行的代码,不用折腾复杂配置。


一、核心结论(最重要)

新松多任务间传递字符串 不能直接用局部变量,必须用:

  1. 全局字符串变量(推荐,最简单)

  2. 共享内存(高级,大数据)

全局字符串变量 = 跨任务直接读写这是新松官方支持的任务间通信方式。


二、方法 1:全局字符串变量(最简单,90% 场景用它)

步骤 1:定义全局字符串(必须在所有任务外定义)

slang

// 全局字符串变量(所有任务都能访问)
string g_strSend = "";    // 主任务 → 独立任务
string g_strRecv = "";    // 独立任务 → 主任务
int g_flag = 0;           // 同步标志(防止冲突)

步骤 2:主任务发送字符串给独立任务

slang

// 主任务
task main()
{
    // 发送字符串
    g_strSend = "我是主任务,收到请回答!";
    g_flag = 1;           // 标志置1,表示数据已发送

    // 等待独立任务回复
    while(g_flag != 2)
    {
        delay(10);
    }

    print("收到独立任务回复:", g_strRecv);
}

步骤 3:独立任务接收并回传字符串

slang

// 独立任务
task task1()
{
    while(TRUE)
    {
        if(g_flag == 1)
        {
            // 读取主任务发来的字符串
            print("主任务消息:", g_strSend);

            // 回传字符串
            g_strRecv = "独立任务已收到!";
            g_flag = 2;
        }
        delay(10);
    }
}

✅ 效果

  • 主任务发字符串 → 独立任务接收

  • 独立任务回传字符串 → 主任务接收

  • 全程无配置、无冲突、最稳定


三、方法 2:共享内存传递字符串(大数据 / 多任务通用)

新松支持 ShareMem 共享内存,可传递长字符串、结构体、批量数据。

1. 创建共享内存(存放字符串)

slang

// 主任务创建共享内存
CreateShareMem("STR_MEM", 1024);    // 1024字节大小

2. 主任务写入字符串

slang

string str = "新松机器人多任务字符串测试";
WriteShareMem("STR_MEM", 0, str);   // 偏移0写入

3. 独立任务读取字符串

slang

string buf;
ReadShareMem("STR_MEM", 0, buf);     // 读取
print("共享内存字符串:", buf);

✅ 适合:长文本、配置文件、JSON、日志


四、新松多任务传递字符串 3 条规则(必看)

  1. 必须用全局变量 / 共享内存局部变量不能跨任务访问。

  2. 必须加标志位同步(g_flag)防止任务同时读写造成乱码。

  3. 独立任务必须加 delay (10)否则 CPU 占用 100%,控制器卡顿。


五、我给你准备好的

包含:

  • 主任务

  • 独立任务

  • 全局字符串

  • 同步标志

  • 双向字符串通信

收缩
  • QQ咨询

  • 电话咨询

  • 13073017555
  • 添加微信客服