如何在codeys中调用gsm调制解调器的“at命令”?不是标准的send_sms和e.t.c

时间:2013-05-07 06:05:28

标签: gsm modem at-command codesys

我有一个gsm-modem和plc,plc看到一个调制解调器(我使用* .lib和功能块“openPort”),但我不明白如何在调制解调器中写入“at命令”,例如, “ATE0”。

1 个答案:

答案 0 :(得分:0)

首先,为了增加您对AT命令的理解,请阅读V. 250 specification。这将使你成为一名AT指挥专家。

然后对于实际的实现,我不知道codesys,所以以下是处理AT命令应该具有的结构的伪代码:

the_modem = openPort();
...
// start sending ATE0
writePort(the_modem, "ATE0\r");
do {
    line = readLinePort(the_modem);
} while (! is_final_result_code(line))
// Sending of ATE0 command finished (successfully or not)
...
closePort(the_modem);

无论你做什么,永远不要使用delaysleep或类似代替等待最终结果代码。您可以查看atinout的代码,了解is_final_result_code函数的示例(您也可以与ST-Ericsson's U300 RIL中的isFinalResponseErrorisFinalResponseSuccess进行比较,但请注意CONNECT不是最终结果代码,它是中间结果代码,因此名称isFinalResponseSuccess不是100%正确的。)