Forum Replies Created
-
AuthorPosts
-
manjey73
ParticipantYou need to set the connection driver in the xml file by specifying the bit mask settings.
example ScadaCommSvcConfig.xml
<!--Линия 6--> <CommLine active="true" bind="true" number="6" name="RPi"> <CommChannel type="" /> <LineParams> <Param name="ReqTriesCnt" value="1" descr="Количество попыток перезапроса КП при ошибке" /> <Param name="CycleDelay" value="0" descr="Задержка после цикла опроса, мс" /> <Param name="CmdEnabled" value="true" descr="Команды ТУ разрешены" /> <Param name="ReqAfterCmd" value="false" descr="Опрос КП после команды ТУ" /> <Param name="DetailedLog" value="true" descr="Записывать в журнал подробную информацию" /> </LineParams> <CustomParams /> <ReqSequence> <KP active="true" bind="true" number="52" name="GPIO Raspberry" dll="KpRpi3.dll" address="1" callNum="" timeout="1000" delay="200" time="00:00:00" period="00:00:00" cmdLine="268435439;268435455;268435455;268435455;1;" /> </ReqSequence> </CommLine>
It is also necessary to specify the communication line in the databases of the Scada server using a Windows PC and then transferred to the Raspberry Pi. You can also customize and Communicator
manjey73
ParticipantOn Raspberry Pi2 was not tested work with GPIO, if you have Pi2 B+, then the numbering of GPIO must be the same. You can check it using the utility.
sudo gpio readallThis way you will get a table of outputs and outputs of your version of Raspberry. Then connect the driver to the Windows PC and start the settings. Disable the checkbox in the use GPIO column on unused inputs or outputs, determine the remaining destination input or output as well as power lift.
The driver uses the WiringPi library and does not access GPIO directly.
manjey73
Participantthe easiest way is to install mc, copy by any means to the user’s Downloads folder. Then in root mode run mc and copy anywhere you want. Then change the permissions and the user to the necessary folders using the chmod, chown commands
manjey73
ParticipantChannel number 1000 – evaluation X
Then your formula in the channel 1022 – Val(1001)+Val(1021)*Val(1000)manjey73
ParticipantYou need to channel to find the value of X knowing Val(1001) and Val(1021) ? Then you need to know the answer
Or do you need to find the value of Y given you the formula, where another unknown ? And mathematics can’t do, not what scada
-
This reply was modified 7 years, 11 months ago by
manjey73.
manjey73
ParticipantUnknown number is that you return to a channel after settlement.
Therefore, the formula cannot be an unknown number. It is either the calculation of other formulas (channel) or a known number.
manjey73
ParticipantYou should start from here
There’s much more useful 🙂
Don’t know what is your native language, but I think online translator plus test will help understand how to work with those or other components of the systemmanjey73
Participantmanjey73
ParticipantAnd you think I’m talking to you in plain English ? I just use online translate 🙂
Draw the picture in the scheme of what you should have, without adding what is not and as you did before. As the mention of Arduino in your case just confuses the situation.
I’ll try to do screenshots as it works for me with the Modbus RTU.
manjey73
ParticipantYou are not using Arduino with RapidScada, and use some kind of analog output ?
Well, and send commands directly to the module output with Automatic Control ModulIn the presence of Hysteresis in the module you do not need any formula.
In manual mode you can force to work the module as you want ? Here’s the same commands send through an automatic how to activate or deactivate.
manjey73
ParticipantYou need Automatic Control Modul.
Do I understand correctly that you have a PC with RapidScada and modules input / output and you want to control directly from RapidScada ?
The module serves for automatic control of external devices.
To avoid permanent switching off of the desired additional channel with the formula of Hysteresis and already according of this channel to send a command to the output module.int[] HysNum = new int[1]; bool[] Hys = new bool[1]; public double Hysteresis(double inCnl, double low, double high) { bool q = Val(CnlNum) > 0; int res = Array.IndexOf(HysNum, CnlNum); if (res == -1) { res = HysNum.Length; Array.Resize(ref HysNum, res+1); Array.Resize(ref Hys, res+1); HysNum[res] = CnlNum; Hys[res] = q; } if (inCnl < low) Hys[res] = true; if (inCnl > high) Hys[res] = false; return Convert.ToDouble(Hys[res]); }
example – Hysteresis(Val(414),950,1050) —- Val(414) this sensor channel
The module configures for triggering the channel, with one value you pass to the device value to 5v the other to 0v the value
manjey73
ParticipantYou need a formula for Hysteresis ?
If it is difficult to explain in words, maybe draw a picture of what should be connected and put on the exchanger ?
manjey73
ParticipantIf you already implemented to work on the Arduino for input variable then you only need the Automatic Control Module to send data of temperature change using Modbus just multiplying it by 10
You scetch is compared with the value 1000
Then everything will make your program in ArduinoOr you want to make an analog program the Arduino directly on Rapid Scada ?
-
This reply was modified 8 years ago by
manjey73.
manjey73
ParticipantYou need to do signal scaling from 0-100 to 0-5 ?
Describe the task more preciselyTo scale the signal, I used the formula
double Scaler (double input, double in_min, double in_max, double out_min, double out_max) { double out1 = 0; double out2 = 0; double output = 0; double diff = in_max - in_min; if (diff != 0) { if (input > in_max) out1 = in_max; else out1 = input; if (in_min > out1) out2 = in_min; else out2 = out1; output = (out_max - out_min) / diff * (out2 - in_min) + out_min; } return output; }
Scaler(Val(121), 0, 100, 0, 5)
If the value of the measured signal in channel 121 is higher than 100, the output signal will be equal to 5 in this example, below 0, the output signal will be equal to 0-
This reply was modified 8 years ago by
manjey73.
-
This reply was modified 7 years, 11 months ago by
-
AuthorPosts