Since you're passing my_binary as an argument to the script, I assume you want the script to (a) set the environment variables and then (b) invoke the command you sent it.
One way to do that is:
#!/bin/bash
ENV_1=firstparam ENV_2=secondparam "$@"
"$@" expands to the list of arguments you passed to the script.
If you set variables like that, they'll be inherited in the environment of any command you run on the same command line, but not by any subsequent commands.
If you wanted to execute more than one command with those environment variables, you could do:
#!/bin/bash
export ENV_1=firstparam
export ENV_2=secondparam
some_command
some_other_command
Then $ENV_1 and $ENV_2 will appear in the environment of some_command and some_other_command -- but not in the environment of your shell after set_params.sh finishes.
If you want a script to set environment variables that will be available in your interactive shell, you'll have to invoke it with . ./set_params.sh or source ./set_params.sh. (And in that case you don't need the #!/bin/bash at the top, since it will execute in your current shell.)
my_binaryas an argument and ignores it, while setting variables that will disappear on exit.ENV_1=firstparam ENV_2=secondparam "$1"."$@"rather than"$1"lets you pass additional arguments to the command.ENV_1=firstparam ENV_2=secondparam my_binarythe variables are passed as environment variables tomy_binary(but they don't persist after that).